jueves, 20 de septiembre de 2012

Simulación de un Semáforo

A continuación se mostrará cómo podemos utilizar el Arduino para poder simular un semáforo. Usando 3 pines de forma de salida conectado cada uno a un LED correspondientes a los colores de los semáforos.
Tal y cómo se muestra a continuación:

Y el esquema del circuito que diseñamos es el siguiente:

Y a continuación se mostrará el código del circuito que desarrollamos:

//
//
//

int rojo=12,amarillo=11,verde=10; //Hacemos variables con los pines a utilizar

void setup () //Inicia la función setup
{
  pinMode(rojo, OUTPUT);
  pinMode(amarillo, OUTPUT);  //declaramos el uso de los pines
  pinMode(verde,OUTPUT);
}

void loop () //inicio de función loop
{
  digitalWrite(rojo,HIGH);  //Por medio de delays programamos el retardo de las luces
  delay(15000);
  digitalWrite(rojo,LOW);
  digitalWrite(verde,HIGH);
  delay(10000);
  digitalWrite(verde,LOW);
  delay(300);
  digitalWrite(verde,HIGH);
  delay(300);
  digitalWrite(verde,LOW);
  delay(300);
  digitalWrite(verde,HIGH);
  delay(300);
  digitalWrite(verde,LOW);
  delay(300);
  digitalWrite(verde,HIGH);
  delay(300);
  digitalWrite(verde,LOW);
  delay(300);
  digitalWrite(amarillo,HIGH);
  delay(5000);
  digitalWrite(amarillo,LOW); //termino de la funcion
}


Compilamos nuestro código y lo subimos a la placa de arduino, y veremos cómo hace la simulación de un semáforo común.

miércoles, 29 de agosto de 2012

Empezar con Arduino

Hoy les dejaré la para todos aquellos que quieran empezar a trabajar con el entorno Arduino, les dejaré el siguiente libro realizado por el Co-Fundador de Arduino. Para todos los principiantes en el tema:

Getting Started With Arduino


martes, 28 de agosto de 2012

Blinking a LED

Bueno el día de hoy pasaremos a otro entorno de programación. Ahora veremos la programación en el entorno Arduino.


Lo más básico más básico de la programación en éste entorno se explica en la presentación adjunta en el blog o pueden dar click aquí.

Hoy veremos como hacer parpadear un LED durante intervalos de medio segundo.


Materiales


  • Una placa de desarrollo Arduino
  • Cable de conexión para Arduino
  • Un led
  • Una resistencia de 220 ohms
  • Un protoboard
  • Cables para protoboard
  • Computadora con software Arduino

Procedimiento

Armamos un el circuito que se muestra a continuación:
O más gráficamente como se muestra a continuación:

Conectamos el Arduino a la computadora por medio del cable de conexión, y subimos el siguiente código:


int Led = 9; //Asignamos el valor de 9 a una variable llamada Led

void setup(){ //Inicio de la función setup
  pinMode(Led,OUTPUT); //Indicamos que nuestro pin del Led será de salida
}

void loop(){ //Inicio de la funcion loop
  digitalWrite(Led,HIGH); //El led encendera
  delay(500);  //Tardara 500 milisegundos encendido
  digitalWrite(Led,LOW); //El led se apagará
  delay(500); //Tardará 500 milisegundos apagado
} //La función loop se repetirá de nuevo

Una vez terminado el código la subimos a la placa de Arduino haciendo click al botón


Así podemos "jugar" con más leds y más pines o incluso con el tiempo de parpadeo entre uno y otro led, según la imaginación del usuario.

viernes, 3 de agosto de 2012

Timer 555

El día de hoy nuestra tecnología nos abruma con tantos avances día a día, y hay un punto donde podemos encontrar que la programación se llega a combinar un poco con la electrónica. Así que nos saldremos un poco del tema y hoy compartiré información acerca de un Circuito Integrado (C.I.) muy popular y barato y que además es muy utilizado para varios fines. Hoy les presentaré el 555 o mejor conocido como el Timer 555.

Historia

Jack Kilby ingeniero de Texas Instrument en el año de 1950 se las ingenió para darle vida al primer circuito integrado, una compuerta lógica, desde entonces y hasta nuestros tiempos han aparecido innumerables circuitos integrados, en Julio de 1972, apareció en la fabrica de circuitos integrados SIGNETICS CORP., un microcircuito de tiempo el Timer 555, inventado por el grupo que dirigió el Jefe de Producción en ese tiempo, Gene Hanateck, este integrado se puede aplicar a diversas aplicaciones, tales como;
· Control de sistemas secuenciales, · Generación de tiempos de retraso, · Divisor de frecuencias, · Modulación por anchura de pulsos, · Repetición de pulsos, · Generación de pulsos controlados por tensión, etc.
Además de ser tan versátil contiene una precisión aceptable para la mayoría de los circuitos que requieren controlar el tiempo, su funcionamiento depende únicamente de los componentes pasivos externos que se le interconectan al microcircuito 555.

Descripción del Timer 555

Se alimenta de una fuente externa conectada entre sus terminales (8) positiva y (1) tierra; el valor de la fuente de alimentación se extiende desde 4.5 Volts hasta 18.0 Volts de corriente continua, la misma fuente exterior se conecta a un circuito pasivo RC exterior, que proporciona por medio de la descarga de su Capacitor una señal de voltaje que esta en función del tiempo, esta señal de tensión es de 1/3 de Vcc y se compara contra el voltaje aplicado externamente sobre la terminal (2) que es la entrada de un comparador como se puede apreciar en la gráfica anterior.
La terminal (6) se ofrece como la entrada de otro comparador, en la cual se compara a 2/3 de la Vcc contra la amplitud de señal externa que le sirve de disparo.
La terminal (5) se dispone para producir (PAM) modulación por anchura de pulsos, la descarga del condensador exterior se hace por medio de la terminal (7), se descarga cuando el transistor (NPN) T1, se encuentra en saturación, se puede descargar prematuramente el Capacitor por medio de la polarización del transistor (PNP) T2.
Se dispone de la base de T2 en la terminal (4) del circuito integrado 555, si no se desea descargar antes de que se termine el periodo, esta terminal debe conectarse directamente a Vcc, con esto se logra mantener cortado al transistor T2 de otro modo se puede poner a cero la salida involuntariamente, aun cuando no se desee.
La salida esta provista en la terminal (3) del microcircuito y es además la salida de un amplificador de corriente (buffer), este hecho le da más versatilidad al circuito de tiempo 555, ya que la corriente máxima que se puede obtener cuando la terminal (3) sea conecta directamente al nivel de tierra es de 200 mA.
La salida del comparador "A" y la salida del comparador "B" están conectadas al Reset y Set del FF tipo SR respectivamente, la salida del FF-SR actúa como señal de entrada para el amplificador de corriente (Buffer), mientras que en la terminal (6) el nivel de tensión sea más pequeño que el nivel de voltaje contra el que se compara la entrada reset del FF-SR no se activará, por otra parte mientras que el nivel de tensión presente en la terminal 2 sea más grande que el nivel de tensión contra el que se compara la entrada Set del FF-SR no se activará.
El microcircuito 555 es un circuito de tiempo que tiene las siguientes características:
  • La corriente máxima de salida es de 200 mA cuando la terminal (3) de salida se encuentra conectada directamente a tierra.
  • Los retardos de tiempo de ascenso y descenso son idénticos y tienen un valor de 100 nseg.
  • La fuente de alimentación puede tener un rango que va desde 4.5 Volts hasta 16 Volts de CD.
  • Los valores de las resistencias R1 y R2 conectadas exteriormente van desde 1 ohm hasta 100 kohms para obtener una corrimiento de temperatura de 0.5% a 1% de error en la precisión, el valor máximo a utilizarse en la suma de las dos resistencias es de 20 Mohms.
  • El valor del Capacitor externo contiene únicamente las limitaciones proporcionadas por su fabricante.
  • La temperatura máxima que soporta cuando se están soldando sus terminales es de 330 centígrados durante 19 segundos.
  • La disipación de potencia o transferencia de energía que se pierde en la terminal de salida por medio de calor es de 600 mW.
  • El dispositivo 555 es un circuito integrado muy estable cuya función primordial es la de producir pulsos de temporización con una gran precisión y que, además, puede funcionar como oscilador.

Descripción de los pines del 555





  • GND: es el polo negativo de la alimentación, generalmente tierra.
  • Disparo: Es en esta patilla, donde se establece el inicio del tiempo de retardo, si el 555 es configurado como monostable. Este proceso de disparo ocurre cuando este pin va por debajo del nivel de 1/3 del voltaje de alimentación. Este pulso debe ser de corta duración, pues si se mantiene bajo por mucho tiempo la salida se quedará en alto hasta que la entrada de disparo pase a alto otra vez.
  • Salida: Aquí veremos el resultado de la operación del temporizador, ya sea que esté conectado como monostable, astable u otro. Cuando la salida es alta, el voltaje será el voltaje de alimentación (Vcc) menos 1.7 Voltios. Esta salida se puede obligar a estar en casi 0 voltios con la ayuda de la patilla de reset (normalmente la 4).
  • Reset: Si se pone a un nivel por debajo de 0.7 Voltios, pone la patilla de salida a nivel bajo. Si por algún motivo esta patilla no se utiliza hay que conectarla a Vcc para evitar que el 555 se "resetee".
  • Control de voltaje: Cuando el temporizador se utiliza en el modo de controlador de voltaje, el voltaje en esta patilla puede variar casi desde Vcc (en la práctica como Vcc -1 voltio) hasta casi 0 V (aprox. 2 Voltios). Así es posible modificar los tiempos en que la salida está en alto o en bajo independiente del diseño (establecido por las resistencias y condensadores conectados externamente al 555). El voltaje aplicado a la patilla de control de voltaje puede variar entre un 45 y un 90 % de Vcc en la configuración monostable. Cuando se utiliza la configuración astable, el voltaje puede variar desde 1.7 voltios hasta Vcc. Modificando el voltaje en esta patilla en la configuración astable causará la frecuencia original del astable sea modulada en frecuencia (FM). Si esta patilla no se utiliza, se recomienda ponerle un condensador de 0.01μF para evitar las interferencias.
  • Umbral: Es una entrada a un comparador interno que tiene el 555 y se utiliza para poner la salida a nivel bajo.
  • Descarga: Utilizado para descargar con efectividad el condensador externo utilizado por el temporizador para su funcionamiento.
  • V+: También llamado Vcc, alimentación, es el pin donde se conecta el voltaje de alimentación que va de 4.5 voltios hasta 18 voltios (máximo)

  • Se añade a continuación el link del datasheet del circuito para saber más a fondo su funcionamiento:


    Funcionamiento del Circuito Integrado 555

    El temporizador 555 se puede conectar para que funcione de diferentes maneras, entre los más importantes están: como multivibrador astable y como multivibrador monoestable.

    Multivibrador Astable

    Este tipo de funcionamiento se caracteriza por una salida con forma de onda cuadrada continua de ancho predefinido por el diseñador del circuito. La señal de salida tiene un nivel alto por un tiempo t1 y un nivel bajo por un tiempo t2 en segundos. La duración de estos tiempos depende de los valores de R1, R2 y C, según las fórmulas siguientes:
    Donde R1 y R2 son el valor de las resistencias a usar en el circuito y C es la capacitancia que usaremos


    Multivibrador monoestable

    En este caso el circuito entrega a su salida un solo pulso de un ancho establecido por el diseñador. 
    La fórmula para calcular el tiempo de duración (T) (tiempo en el que la salida está en nivel alto dada en segundos) es: 

    Aquí se mostró una descripción general del circuito NE555, más adelante veremos algunos proyectos que se pueden realizar con éste circuito.

    domingo, 15 de julio de 2012

    Serie de Fibonacci



    Bienvenidos, éste es un blog destinado para estudiantes que requieran siempre un poco de programación. Aquí se mostrarán de los más básicos programas en diferentes tipos de lenguajes y compiladores.

    Para empezar a continuación se muestra un programa basado en C++ que nos permitirá calcular un número específico de la serie de Fibonacci.

    La serie de Fibonacci es una sucesión infinita de números. Para calcular el número siguiente a otro en la serie de fibonacci se suman los dos números inmediatos anteriores a éste. La sucesión de Fibonacci inicia con los números: 1 y 1. Ejemplo:

    El número 8 correspondiente a la serie de Fibonacci es: 21 

    1, 1, 2, 3, 5, 8, 13, 21

    El código correspondiente a ésta sucesión se muestra a continuación:

    // Fibonacci.cpp : Defines the entry point for the console application.//

    #include "stdafx.h" 

    #include <iostream>
    using namespace std;
    int aux, f1=1,f2=0,n;
    int _tmain(int argc, _TCHAR* argv[])
    {
     cout<<"Ingrese el numero de la sucesion de Fibonacci que desea calcular"<<endl;
     cin>>n;
     system("cls");
     for(int i=0;i<n;i++) //Inicia el algoritmo de Fibonacci
     {

      aux=f2;
      f2=f1+f2;
      f1=aux;
      cout<<"F["<<i+1<<"]= "<<f2<<endl;
     }
     system("pause"); //Pausamos el programa
     return 0;
    }


    La programa solo necesita de 4 variables de tipo entero, y usando éste algoritmo puede calcular los números correspondientes a la serie de Fibonacci, y desplegar los resultados en forma de función.