15 jul 2014

CONTANDO PULSOS POR COMUNICACIÓN SERIAL

En esta práctica de ARDUINO vamos a aprender a contar pulsos a partir de una entrada digital. Para ello utilizaremos un pulsador, y señalizaremos cada pulsación encendiendo un LED rojo (a través de una salida digital) e iremos mostrando el número de pulsaciones hechas a través del "Monitor Serial".

A partir de esta sencilla práctica podéis pensar en alguna aplicación y mejora....como por ejemplo:

  • un sistema de parking de coches que llegado a un determinado número encienda un luminoso de "completo".
  • un sistema que controle la densidad de tráfico (coches por hora) de una autopista o vía.
  • un contador de aforo en cines, estadios, etc..

Además, con prácticas sencillas como ésta, nos irán saliendo pequeños problemas técnicos, como el de los rebotes de los pulsadores, que iremos dando solución.

MATERIAL NECESARIO


1 – Tarjeta ARDUINO UNO
1 – Cable USB para Arduino
1 – Placa Protoboard
1 – Pulsador
1 – Resistencia de 10kΩ
1 – Diodo LED
1 – Resistencia de 220Ω

CONEXIONADO EN PLACA PROTOBOARD


ESQUEMA ELÉCTRICO


En la siguiente figura se muestran los circuitos correspondientes a la entrada (PULSADOR) y a la salida (LED), para su mejor comprensión.



CÓDIGO

/* Cuenta los pulsos introducidos por un pulsador y los señaliza con
un LED y muestra la cuenta a través del Monitor Serial */

const int PulsadorPin = 2; //Pin donde se conecta el pulsador
const int LedPin = 10;  //Pin donde se conecta el LED
int LecturaBoton = 0; //Variable que contiene el valor del pulsador
int ContPulso=0; //Variable para conteo de numero de pulsos

void setup() 
{
Serial.begin(9600);
pinMode(PulsadorPin, INPUT);  //configuramos el pin 2 como entrada
pinMode(LedPin, OUTPUT);  //configuramos el pin 10 como salida
}

void loop()
{
LecturaBoton = digitalRead(PulsadorPin);
//Lee la entrada del pulsador y lo almacena en la variable
if(LecturaBoton == HIGH) //si se presiona el pulsador
   { 
   digitalWrite(LedPin, HIGH); // enciende el LED
   ContPulso++;  //incrementa el número de pulsos
   Serial.println(ContPulso);  //lo muestra por el Monitor Serial
   delay(300);  
   /*este retraso es para evitar los posibles rebotes del pulsador.
   El valor tiene que ser no muy pequeño (porque si no contaría más
   de una pulsación al pulsar), ni muy grande (porque si no podría 
   no detectar pulsaciones en esos tiempos de espera)
   */
   } 
else
   {
   digitalWrite(LedPin, LOW); // apaga el LED
   }

}


13 jul 2014

RESUMEN SINTAXIS ARDUINO


DISPLAY 7 SEGMENTOS

El display de 7 segmentos es un componente que se utiliza para la representación de números, es muy común encontrarlos en dispositivos electrónicos debido a su simplicidad. Está compuesto internamente por una serie de LEDS estratégicamente ubicados de tal forma que forme un número 8.


A cada uno de los segmentos que forman el display se les denomina a, b, c, d, e, f y g y están ensamblados de forma que se permita activar cada segmento por separado consiguiendo formar cualquier dígito numérico. Muchas veces aparece un octavo segmento denominado p.d. (punto decimal).


Existen dos tipos de display de 7 segmentos:

               - Ánodo común

               - Cátodo común

Estructura de los dos tipos de display:



En los displays de tipo ánodo común, todos los ánodos de los LEDS están unidos internamente a una pata común que debe ser conectada a potencial positivo. Encenderemos cada uno de los segmentos de forma independiente aplicando 0 voltios (LOW).

En los displays de tipo cátodo común, todos los cátodos de los LEDS están unidos internamente a una pata común que debe ser conectada a potencial negativo. Encenderemos cada uno de los segmentos de forma independiente aplicando tensión (HIGH).

VENTILADOR AUTOMÁTICO CON SENSOR DE TEMPERATURA

Con esta práctica vamos a implementar un sistema de ventilación automático donde activaremos el motor de un supuesto ventilador cuando la temperatura medida por un sensor (en este caso el TMP36) supere una determinada temperatura, y todo ello lo monitorizaremos a través del "Monitor Serial".
Vamos a trabajar cuatro bloques que son muy importantes y típicos en un sistema de control automático, como son:
1. Un sensor o transductor con la circuitería necesaria, que será la entrada del sistema.
2. Un actuador o dispositivo de salida, con la circuitería necesaria.
3. El procesamiento o lógica de control que ejecutará la placa ARDUINO.
4. La monitorización de la información.


MATERIAL NECESARIO

1 – Tarjeta ARDUINO UNO
1 – Cable USB para Arduino
1 – Placa Protoboard
1 – Sensor de temperatura TMP36 (ver datasheet)
1 – Transistor MOSFET IRF520 (ver datasheet)
1 – Diodo 1N4007
1 – Motor DC

Para conectar los dispositivos de entrada o salida  a la placa existen unas configuraciones típicas según el dispositivo y la placa. En nuestro caso hemos utilizado para el sensor la propuesta por el fabricante:


y para el actuador:



CONEXIONADO EN PLACA PROTOBOARD


ESQUEMA ELÉCTRICO


CÓDIGO

/*
  En esta práctica vamos a implementar un sistema automático de
  ventilación que active un motor (ventilador) cuando lleguemos 
  a una determinada temperatura (ésta la mediremos con un sensor
  de temperatura, en este caso el TMP36
 */


const int sensorPin = A0; //conectamos el sensor a la entrada analógica A0
const int motorPin = 9; //conectamos el motor a la salida PWM 9

void setup()
  {
  // abre la comunicación serial para mostrarla por el monitor
  Serial.begin(9600);
  pinMode(motorPin,OUTPUT); //definimos el pin 9 como SALIDA
  digitalWrite(motorPin,LOW); //hacemos que el motor este apagado por defecto
  }

void loop(){
  // leemos el valor del sensor en la entrada analógica A0 
  // y lo almacenamos en la variable sensorVal
  int sensorVal = analogRead(sensorPin);

  // Muestra el valor del sensor por el monitor
  Serial.print("Valor sensor: ");
  Serial.print(sensorVal); 

  // convertimos la señal del sensor con el DAC interno de cada entrada analógica
  float voltage = (sensorVal/1024.0) * 5.0;
  // 1024 porque es la resolución de la entrada del DAC
  // 5 porque es la tensión a la que está alimentado el sensor
  // Muestra la medida en voltios por el monitor
  Serial.print(", Voltios: ");
  Serial.print(voltage);

  // convierte el voltaje a temperatura en ºC
  // el sensor da 10 mV por grado
  // el datasheet dice que hay 500 mV de offset en la lectura (a corregir)
  // Muestra la medida en ºC
  Serial.print(", grados C: "); 
  float temperature = (voltage - .5) * 100;
  Serial.println(temperature);
  if(temperature>30)//comparamos la Tª con la de referencia
  {
    digitalWrite(motorPin,HIGH);//enciende ventilador
  }
  else
  {
    digitalWrite(motorPin,LOW);//apaga ventilador
  }
  delay(1000);//hace una lectura del sensor cada segundo
}

VÍDEOS DEMOSTRATIVOS

En el siguiente vídeo se puede observar cómo funciona el sistema Al tocar el sensor de temperatura con fuerza, su temperatura se eleva con nuestra temperatura corporal, y el motor (ventilador) se activa. Éste se desactiva al retirar los dedos y empezar a enfriarse el sensor.



Por otra parte, a través del "Monitor Serial" podemos ir visualizando en tiempo real el valor del sensor, los voltios correspondientes y la temperatura (como se aprecia en la siguiente figura):


En el siguiente vídeo se aprecia como van variando los parámetros que se visualizan en el "Monitor Serial" cuando tocamos el sensor con los dedos, y cómo vuelve a estabilizarse al dejar de tocarlo.













11 jul 2014

PRÁCTICA 5: CONTROL LUMINOSIDAD LED

Con esta práctica controlaremos la intensidad del brillo de un LED mediante un potenciómetro.
Aprenderemos a usar los pines analógicos de Arduino y las salidas analógicas o PWM.

MATERIAL NECESARIO

1 – Tarjeta ARDUINO UNO
1 – Cable USB para Arduino
1 – Placa Protoboard
1 – Software IDE de Arduino
1- Diodo Led de cualquier color (Común)
1- Resistencia de 220 / 330 Ohms
1- Potenciómetro de conexión a Protoboard, de 10 Kiloohmios.

CONEXIONADO


ESQUEMA ELÉCTRICO



CÓDIGO

/* Ajusta el brillo de un led dependiendo
del voltaje de un potenciometro.*/

int ledPin = 11; // salida analógica PWM (LED conectado a PIN 11)
//recordad que esta salida debe ser de las PWM (11,10,9,6,5 o 3)
int potPin = 0; // entrada analógica (POT conectado a A0)


void setup()
{
pinMode(ledPin, OUTPUT); //configuramos el PIN 11 como de salida
//las entradas analógicas no son necesario configurarlas
}


void loop()
{
analogWrite(ledPin,analogRead(potPin)/4);
//escribe en el pin del LED
//con el valor leido del potenciómetro
//Importante: se divide entre 4 porque el rango de trabajo de
//analogRead() es de 0 a 1023, pero el de analogWrite() es de
//0 a 255.
delay(100);
}


VÍDEO DEMOSTRATIVO


10 jul 2014

PRÁCTICA 4: FRECUENCIA DE PARPADEO DE LED VARIABLE

En esta práctica vamos a trabajar con un potenciómetro como dispositivo de entrada analógico para controlar la frecuencia de flasheo de un LED conectado a una salida digital.

Para ello utilizaremos la función analogRead(pin). Lee el valor de tensión en el pin analógico especificado. La placa Arduino posee 6 canales (8 canales en el Mini y Nano y 16 en el Mega) conectados a un conversor analógico digital de 10 bits. Esto significa que convertirá tensiones entre 0 y 5 voltios a un número entero entre 0 y 1023. Esto proporciona una resolución en la lectura de: 5 voltios / 1024 unidades, es decir, 0.0049 voltios (4.9 mV) por unidad. El rango de entrada puede ser cambiado usando la función analogReference().

El conversor tarda aproximadamente 100 microsegundos (0.0001 segundos) en leer una entrada analógica por lo que se puede llevar una tasa de lectura máxima aproximada de 10.000 lecturas por segundo.

Mientras que el uso principal de estos pines por los usuarios de Arduino es para la lectura de sensores analógicos, estos pines tienen también toda la funcionalidad de los pines de entrada-salida de propósito general (GPIO) (al igual que los pines 0 - 13).

Consecuentemente, si un usuario necesita más pines de propósito general de entrada-salida, y no se está usando ningún pin analógico, estos pines pueden usarse como GPIO.

MATERIAL NECESARIO

1 – Tarjeta ARDUINO UNO
1 – Cable USB para Arduino
1 – Placa Protoboard
1 – Software IDE de Arduino
1- Diodo Led de cualquier color (Común)
1- Resistencia de 220 / 330 Ohms
1- Potenciómetro de conexión a Protoboard, de 10 Kiloohmios.

CONEXIONADO DE LOS COMPONENTES


CIRCUITO ESQUEMÁTICO


CÓDIGO

/* VARIANDO LA FRECUENCIA DE FLASH DE UN LED MEDIANTE UN POTENCIÓMETRO
En esta práctica utilizaremos una entrada analógica (mediante un
potenciómetro) para variar la frecuencia de flasheo de un LED
(conectado en una salida digital)
*/
int potPin = 0; //pin de entrada para el potenciómetro
int ledPin = 13; //pin de salida para el LED

void setup()
{
pinMode(ledPin, OUTPUT); //declara ledPin como salida
//los pines de entrada analógica no es necesario configurarlos
}

void loop()
{
digitalWrite(ledPin, HIGH);              //activa el LED
delay(analogRead(potPin));      /*provoca un retraso según valor de la
lectura de la entrada analógica (potenciómetro). analogRead()
devuelve un valor entre 0 y 1023*/
digitalWrite(ledPin, LOW);              //desactiva el LED
delay(analogRead(potPin));      /*provoca un retraso según valor de la
lectura de la entrada analógica (potenciómetro). analogRead()
devuelve un valor entre 0 y 1023*/
}



VÍDEO DEMOSTRATIVO


DEFINICIÓN DE SISTEMA ELECTRÓNICO

Un sistema electrónico es un conjunto de circuitos que interactúan entre sí para obtener un resultado. Una forma de entender los sistemas electrónicos consiste en dividirlos en las siguientes partes:
  • ENTRADAS O INPUTS – Sensores (o transductores) electrónicos o mecánicos que toman las señales (en forma de temperatura, presión, etc.) del mundo físico y las convierten en señales de corriente o voltaje. Ejemplo: El termopar, la foto resistencia para medir la intensidad de la luz, etc.
  • CIRCUITOS DE PROCESAMIENTO DE SEÑALES – Consisten en artefactos electrónicos conectados juntos para manipular, interpretar y transformar las señales de voltaje y corriente provenientes de los transductores.
  • SALIDAS U OUTPUTS – Actuadores u otros dispositivos (también transductores) que convierten las señales de corriente o voltaje en señales físicamente útiles. Por ejemplo: un display que nos registre la temperatura, un foco o sistema de luces que se encienda automáticamente cuando esté oscureciendo.
Básicamente son tres etapas: La primera (transductor), la segunda (circuito procesador) y la tercera (circuito actuador).


Como ejemplo supongamos un televisor. Su entrada es una señal de difusión recibida por una antena o por un cable. Los circuitos de procesado de señales del interior del televisor extraen la información sobre el brillo, el color y el sonido de esta señal. Los dispositivos de salida son un tubo de rayos catódicos o monitor LCD que convierte las señales electrónicas en imágenes visibles en una pantalla y unos altavoces. Otro ejemplo puede ser el de un circuito que ponga de manifiesto la temperatura de un proceso, el transductor puede ser un termocouple, el circuito de procesamiento se encarga de convertir la señal de entrada en un nivel de voltaje (comparador de voltaje o de ventana) en un nivel apropiado y mandar la información decodificándola a un display donde nos dé la temperatura real y si esta excede un límite preprogramado activar un sistema de alarma (circuito actuador) para tomar las medida pertinentes.


Las entradas y salidas de un sistema electrónico serán consideradas como las señales variables. En electrónica se trabaja con variables que se toman en forma de voltaje o corriente, éstas se pueden denominar comúnmente señales.
Las señales primordialmente pueden ser de dos tipos descritos a continuación: DIGITAL Y ANALÓGICAS.

VARIABLE DIGITAL

También llamadas variables discretas. Se caracterizan por tener dos estados diferenciados y por lo tanto se pueden llamar binarias. Siendo estas variables más fáciles de tratar (en lógica serían los valores Verdadero (V) y Falso (F) o podrían ser 1 ó 0 respectivamente).


Un ejemplo de una señal digital es el interruptor del timbre de tu casa, porque este interruptor tiene dos estados pulsado y sin pulsar.


VARIABLE ANALÓGICA

Son aquellas que pueden tomar un número infinito de valores comprendidos entre dos límites. La mayoría de los fenómenos de la vida real son señales de este tipo. (sonido, temperatura, voz, video, etc.)
Un ejemplo de sistema electrónico analógico es un altavoz, que se emplea para amplificar el sonido de forma que éste sea oído por una gran audiencia. Las ondas de sonido que son analógicas en su origen, son capturadas por un micrófono y convertidas en una pequeña variación analógica de tensión denominada señal de audio.



                                      FUENTE: http://es.wikipedia.org/wiki/Electr%C3%B3nica




9 jul 2014

QUÉ ES LA PWM

La Modulación por Ancho de Pulso (PWM = Pulse Width Modulation) es una técnica para simular una salida analógica con una salida digital. El control digital se usa para crear una onda cuadrada, una señal que conmuta constantemente entre encendido y apagado. Este patrón de encendido-apagado puede simular voltajes entre 0 (siempre apagado) y 5 voltios (siempre encendido) simplemente variando la proporción de tiempo entre encendido y apagado. A la duración del tiempo de encendido (ON) se le llama Ancho de Pulso (pulse width). Para variar el valor analógico cambiamos, o modulamos, ese ancho de pulso. Si repetimos este patrón de encendido-apagado lo suficientemente rapido por ejemplo con un LED el resultado es como si la señal variara entre 0 y 5 voltios controlando el brillo del LED.

En el gráfico de abajo las lineas verdes representan un periodo regular. Esta duración o periodo es la inversa de la frecuencia del PWM. En otras palabras, con la Arduino la frecuencia PWM es bastante próxima a 500Hz lo que equivale a periodos de 2 milisegundos cada uno. La llamada a la función analogWrite() debe ser en la escala desde 0 a 255, siendo 255 el 100% de ciclo (siempre encendido), el valor 127 será el 50% del ciclo (la mitad del tiempo encendido), etc.






CONTROL DE LED RGB

En esta práctica vamos a familiarizarnos con el funcionamiento de un LED RGB, su patillaje o pinuot, y lo vamos a hacer lucir con sus diferentes colores de forma aleatoria utilizando la función random(min,max).

MATERIAL NECESARIO

1 – Tarjeta ARDUINO UNO
1 – Cable USB para Arduino
1 – Placa Protoboard
1 – Software IDE de Arduino
1- Diodo Led RGB
3- Resistencia de 220 / 330 Ohms
MONTAJE EN PLACA PROTOBOARD


CIRCUITO ESQUEMÁTICO


CÓDIGO

/*
  CONTROL DE UN LED RGB

 En esta práctica vamos a aprender a controlar un LED RGB.
 Lucirá en verde, rojo o azul de forma aleatoria durante un
 determinado tiempo, y para ello utilizaremos la función que
 nos proporciona números aleatorios random(min,max)

 Componentes necesarios:
 1 LED RGB
 3 Resistencias de 220 ohmios
 cable para conexiones

*/

const int greenLEDPin = 10; // PIN verde del LED RGB se conecta a la salida 10
const int blueLEDPin = 11;  // PIN azul del LED RGB se conecta a la salida 11
const int redLEDPin = 9;    // PIN rojo del LED RGB se conecta a la salida 9    

int randomNum = 0;  //variable que va a almacenar el número aleatorio

void setup() {
  // se configuran los pines 9, 10 y 11 como salidas
  pinMode(greenLEDPin,OUTPUT);
  pinMode(redLEDPin,OUTPUT);
  pinMode(blueLEDPin,OUTPUT);
}

void loop() 
{
randomNum = random(2,5); //se genera un número aleatorio entre el 2 y el 4
// la funcion random(min,max) nos devuelve un valor entre min y max-1

//se evalua el número aleatorio y en función de eso se enciende de un color u otro
if(randomNum == 2)
{
  digitalWrite(9,HIGH); //luce el LED en ROJO
  digitalWrite(10,LOW);
  digitalWrite(11,LOW); 
  delay(500);
}
else if(randomNum == 3)
{
  digitalWrite(9,LOW); 
  digitalWrite(10,HIGH); //luce el LED en VERDE
  digitalWrite(11,LOW); 
  delay(500);
}
else if(randomNum == 4)
{
  digitalWrite(9,LOW); 
  digitalWrite(10,LOW); 
  digitalWrite(11,HIGH); //luce el LED en AZUL
  delay(500);
}
}

RESISTENCIAS DE PULL-UP Y PULL-DOWN


La configuración Pull-Up y Pull-Down son resistencias colocadas en una forma determinada que establecen un estado lógico a la entrada de un circuito, siendo para Pull-Up un estado lógico alto y para Pull-Down bajo. De esta forma se evita falsos estados producidos por ruido eléctrico si dejáramos una entrada con un valor indeterminado.

Veamos las configuraciones, donde (Vout) se conectaría a la entrada de un circuito lógico:



En la configuración Pull-Up, cuando el botón no está pulsado (Vout) será prácticamente igual a (Vcc) pudiéndose considerar como nivel lógico alto. Ahora bien, cuando se pulsa SW1 se deriva toda la corriente a GND por tanto (Vout) será 0v y por lo mismo tendremos un valor lógico bajo. Esto mismo ocurre con la configuración Pull-Down pero a la inversa, cuando el circuito esta en reposo la caída de tensión en R1 es prácticamente 0v en ese momento tendremos un nivel lógico bajo y al pulsar SW1 la caída de tensión en R1 ahora será igual a (Vcc) y (Vout) tendrá un nivel lógico alto. Generalmente se suele usar valores de 1KΩ o 10KΩ para estas resistencias.

8 jul 2014

EL DIODO LED

Un LED (Diodo emisor de luz, también "diodo luminoso") es un diodo semiconductor que emite luz. Se usan como indicadores en muchos dispositivos, y cada vez con mucha más frecuencia en iluminación. Los LEDs presentan muchas ventajas sobre las fuentes de luz incandescente como un consumo de energía mucho menor, mayor tiempo de vida, menor tamaño, gran durabilidad y fiabilidad.


Al igual que los diodos normales, tiene su ánodo (+) y su cátodo (-), y debemos polarizarlo en directa para que luzca. Con ayuda de la siguiente figura, podemos aprender a identificar cada una de las patillas del LED. Por ejemplo, ¿cuál sería el cátodo (-)? Pues...:
  • La patilla más corta.
  • La patilla del lado que tiene la muesca "visto en planta", o
  • La patilla que tiene la parte más ancha dentro de la cápsula.


Los LED´s son muy sensibles a la corriente eléctrica, y debemos limitarla siempre con una resistencia en serie para evitar que se quemen, tal como en la figura siguiente:


El valor de la resistencia suele ser de pocas centenas de ohmios (normalmente entre 100 y 500 ohmios)

Decir como curiosidad que si utilizamos la salida digital D13 de la placa de ARDUINO UNO para activar un LED, no es necesario poner la resistencia en serie ya que la tiene internamente. Esto no es así en el resto de pines (D12......D2).

EL DIODO LED RGB


Un LED RGB es un LED que incorpora en su mismo encapsulado tres LEDs, es RGB porque R (red, rojo), G (green, verde) y B (blue, azul) así se pueden formar miles de colores ajustando de manera individual cada color. Los tres LEDs están unidos por el negativo o cátodo.
En la siguiente figura se muestra cómo identificar sus pines:





EL DIODO

Un diodo es un componente electrónico de dos terminales que permite la circulación de la corriente eléctrica a través de él en un solo sentido. Tiene dos partes: el cátodo y el ánodo.

Su aspecto real, su símbolo y el sentido de la corriente se muestran en la figura siguiente:

Para que un diodo conduzca la corriente eléctrica debe estar polarizado de una determinada manera, y esa es haciéndole llegar la tensión positiva (+) al ánodo y la tensión negativa (-) al cátodo (a ésto se le conoce como "polarización directa"), comportándose el diodo como un interruptor cerrado. Si lo conectamos al revés (polarización inversa), el diodo no deja pasar la corriente eléctrica a su través, comportándose como un interruptor abierto.

Los formatos comerciales más usuales que nos podemos encontrar en el mercado son los siguientes:




PRÁCTICA 2:SECUENCIA DE LEDS

En esta práctica vamos a generar un programa que nos encienda un grupo de LED´s de forma secuencial y de forma indefinida.

MATERIAL NECESARIO

1 – Tarjeta ARDUINO UNO
1 – Cable USB para Arduino
1 – Placa Protoboard
1 – Software IDE de Arduino
4- Diodo Led de cualquier color (Común)
4- Resistencia de 220 / 330 Ohms
Para ello abordaremos siempre la práctica desde sus dos aspectos:
  • El hardware (cómo conectar la placa ARDUINO a los diferentes componentes electrónicos necesarios)
  • El software (escribir el código necesario para conseguir nuestro propósito)
En cuanto al hardware o conexionado físico de los componentes sería el siguiente:

MONTAJE EN PLACA PROTOBOARD

ESQUEMÁTICO


Y en cuanto al código, sería el siguiente:

CÓDIGO

// Encendido secuencial de 4 LEDs
int ledPin1 = 2; // Define las salidas de los LED´s
int ledPin2 = 3;
int ledPin3 = 4;
int ledPin4 = 5;
void setup() 
{        // Configura las SALIDAS
pinMode(ledPin1, OUTPUT); // declarar LEDs como SALIDAS
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
digitalWrite(ledPin1, LOW); // Apaga los LEDs
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
}
void loop()
{          //Bucle de Funcionamiento
digitalWrite(ledPin1, HIGH); // Apaga y enciende los leds cada 200 ms
delay(200);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(200);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
delay(200);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
delay(200);
digitalWrite(ledPin4, LOW);
}



7 jul 2014

DESCRIPCIÓN DEL ARDUINO UNO

Vamos a conocer cómo es el hardware de la placa de ARDUINO UNO con la que vamos a trabajar en estas prácticas:


1. Cable USB para conectar a PC.
2. Botón de RESET.
3. Pines de Entrada/Salida digital y PWM.
4. Mini LED verde de ON (placa alimentada o encendida).
5. Mini LED naranja conectado al PIN 13.
6. ATmega 16U2, responsable de las comunicaciones con el PC.
7. LED TX (transmisor) y LED RX (receptor) de la comunicación serial.
8. Puerto ICSP para programación serial.
9. Microcontrolador ATmega 328 (el cerebro de ARDUINO)
10. Cristal de cuarzo de 16 MHz.
11. Regulador de voltaje.
12. Conector para alimentación.
13. Pines de voltaje y tierra.
14. Entradas analógicas.

ESPECIFICACIONES TÉCNICAS


Vamos a explicar con un mayor detalle los tres bloques de pines más importantes de la placa:

13. Pines de alimentación


Bien alimentemos al arduino mediante la conexión USB o mediante una fuente externa (recomendada de 7-12V), vamos a tener unas salidas de tensión continua debido a unos reguladores de tensión y condensadores de estabilización.
Estos pines son:
  • VIN: se trata de la fuente tensión de entrada que contendrá la tensión a la que estamos alimentando al Arduino mediante la fuente externa.
  • 5V: fuente de tensión regulada de 5V, esta tensión puede venir ya sea de pin VIN a través de un regulador interno, o se suministra a través de USB o de otra fuente de 5V regulada.
  • 3.3V: fuente de 3.3 voltios generados por el regulador interno con un consumo máximo de corriente de 50mA.
  • GND: pines de tierra.
3. Entradas/salidas digitales


Cada uno de los 14 pines digitales se puede utilizar como una entrada o salida. Cada pin puede proporcionar o recibir un máximo de 40 mA y tiene una resistencia de pull-up (desconectado por defecto) de 20 a 50 kOhm. Además, algunos pines tienen funciones especializadas como:
  • Pin 0 (RX) y 1 (TX). Se utiliza para recibir (RX) y la transmisión (TX) de datos serie TTL.
  • Pin 2 y 3. Interrupciones externas. Se trata de pines encargados de interrumpir el programa secuencial establecido por el usuario.
  • Pin 3, 5, 6, 9, 10 y 11. PWM (modulación por ancho de pulso). Constituyen 8 bits de salida PWM con la función analogWrite ().
  • Pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos pines son de apoyo a la comunicación SPI.
  • Pin 13. LED. Hay un LED conectado al pin digital 13. Cuando el pin es de alto valor, el LED está encendido, cuando el valor está bajo, es apagado.
14. Entradas analógicas.


El Arduino posee 6 entradas analógicas, etiquetadas desde la A0 a A5, cada una de las cuales ofrecen 10 bits de resolución (es decir, 1024 estados). Por defecto, tenemos una tensión de 5V, pero podemos cambiar este rango utilizando el pin de AREF y utilizando la función analogReference(), donde le introducimos una señal externa de continua que la utilizara como referencia.

TIPOS DE PLACAS ARDUINO

ARDUINO UNO

Perfecta para iniciarse. Cuenta con 14 pines digitales y 6 analógicos para conectarle todo tipo de módulos. + INFO

ARDUINO MEGA2560

Es la versión avanzada del Arduino Uno. Se caracteriza principalmente porque tiene mucha más memoria FLASH, ROM y RAM en su microcontrolador. También tiene muchísimos más pines de entrada y salida digitales y analógicos. + INFO

ARDUINO LEONARDO

Es la nueva versión que terminara sustituyendo a la anterior (Arduino Uno). Como ventaja el microcontrolador usado, el ATmega32u4, tiene soporte nativo para USB, eso quiere decir que no es necesario un chip intermediario (y lento) para convertir la señal USB a Serial. Además este Arduino puede funcionar como teclado, ratón, gamepad, etc. También se puede usar para programar con el IDE de AVR sin necesidad de cargar el bootloader de Arduino.
Hay que tener cuidado al comprarlo porque hay dos versiones, con conectores o sin ellos. + INFO


ARDUINO DUE

Primera tarjeta de arduino basada en ARM. Con controlador de 32bit CortexM3 ARM programable a través de Arduino IDE. Con 54 pines digitales entrada/salida. + INFO


ARDUINO YÚN

El Arduino Yún es una tarjeta con un microcontrolador basado en un Atmega32u4 y Atheros AR9331. El procesador Atheros soporta Linux basado en OpenWRT llamado Linino. La tarjeta tiene integrada comunicación Ethernet y Wifi, incluye puerto USB-A, ranura para micro-SD, 20 pines digitales configurables como entradas o salidas, de las cuales 7 pueden ser utilizadas como salidas moduladas (PWM) y 12 como entradas analógicas, un cristal de 16 MHz, conexión micro USB, headers para ICSP y 3 botones de Reset. +INFO


ARDUINO TRE


El Arduino TRE (por si acaso UNO, DUE, TRE en italiano se traduce al español como UNO, DOS, TRES) será en realidad dos Arduinos en uno; por una parte contendrá el mismo controlador que potencia a la placa Arduino Leonardo y por otra parte contendrá el procesador de 32 bits Sitara AM335x ARM Cortex-A8 de la compañía Texas Instruments, la cual corre a 1GHz y cuenta con una gama variada de periféricos y E/S de propósito general. Un aspecto destacable de este procesador (que es el mismo procesador usado en la placa Beaglebone Black) es el hecho de que cuenta con dos microcontroladores PRU (Programmable Real-time Unit) de 32 bits que corren a 200MHz y que están incluidos en el mismo chip que contiene el núcleo principal ARM Cortex, los cuales están pensados para su uso en innumerables aplicaciones de tiempo real (control de motores, PWM, etc.)

El nuevo Arduino TRE será efectivamente como tener un Arduino Leonardo combinado con una placa BeagleBone Black en un solo sistema. Correrá el sistema operativo Linux y permitirá compilar y correr sketches de Arduino sin necesidad de una PC adicional. La placa será compatible con la gran mayoría de los shields ya disponibles e incorporará ademas conectividad mediante Ethernet, XBee, USB y CAN entre otros. +INFO


ARDUINO MINI

Es la versión mas barata de todas porque tiene los componentes mínimos para funcionar. No tiene el chip USB > Serial por lo que hace falta otro arduino o un programador externo para cargar el programa. Una vez cargado es ideal para dejarlo incrustado en algún proyecto. Hay disponible con microcontrolador 168, 328 y a 5V o a 3.3V. +INFO


ARDUINO MICRO


El Arduino Micro es una evolución de su hermano mayor Arduino Leonardo ya que utiliza el mismo chip ATmega32u4pero en un formato mucho más pequeño de tan solo 48x18mm. Una de las mayores ventajas de este chip es que dispone de un puerto USB nativo que permite entre otras cosas de evitar tener un conversor serie/USB y además de poder programar la placa como un dispositivo USB cliente como un teclado o un ratón por ejemplo.

La placa incluye un conector micro USB, un puerto ICSP, un botón de reset y algunos diodos LED de estado. Todos los pines de entrada y salida son los mismo que el modelo Leonardo. +INFO

ARDUINO NANO

Como el anterior salvo porque este si que tiene el chip USB > Serial y conector USB. Pequeño pero con todo lo necesario para funcionar. + INFO

ARDUINO PRO

Esta placa esta diseñada para aquellos que quien dejar la placa incrustada en el proyecto: es mas barata que la Diecimila y se puede alimentar fácilmente con baterías. pero requiere de componentes extra y montaje. + INFO

ARDUINO FIO

Diseñada para aplicaciones inalámbricas. Incluye un zócalo para XBee, un conector para baterías LiPo y electrónica para cargar baterías. + INFO



ARDUINO BLUETOOTH

El Arduino BT contiene un modulo bluetooth que permite comunicarse y programarse sin cables. Es compatible con los shields de Arduino. + INFO

ARDUINO MEGA ADK

Esta versión especial llamada Arduino Mega ADK es compatible con Android y tiene un USB host. +INFO


ARDUINO ROBOT

El robot Arduino es, básicamente, un Arduino sobre ruedas que incluye un procesador en la placa de motor y otro en la placa de control. Ambas placas son totalmente programables con Arduino IDE. +INFO


ARDUINO ESPLORA

La Arduino Esplora es una placa microntroladora derivada de la Arduino Leonardo. La Esplora difiere de todas las placas Arduino predecesoras en que lleva incorporados un número de dispositivos sensores listos para usar. Está diseñada para gente que quiere entrar en el mundo de Arduino sin tener que aprender antes electrónica. Para una introducción paso a paso mirad en la guía de introducción a la Esplora.

La Esplora lleva montadas salidas de sonido y luz, además de varios sensores, incluyendo un joystick, un potenciómetro lineal, un sensor de temperatura, un acelerómetro de tres ejes, un micrófono y un sensor de luz. También cuenta con todo el potencial de expandir sus capacidades con 2 entradas y 2 salidas Tinkerkit, y un zócalo para la conexión a una pantalla TFT LCD en color. +INFO


ARDUINO LYLIPAD

Diseñado para aplicaciones sobre prendas, esta placa puede ser cosida a la ropa y es de color purpura y con un diseño con estilo. + INFO


TABLA COMPARATIVA

Tabla de especificaciones de los Arduinos y otras placas de desarrollo: