01.Jugando con Leds

Practicas Con Arduino

1.-Practica.

Encendido consecutivo de diodos definiendo una temporización.

Objetivos:

• Conocer el entorno de programación.

• Aprender a utilizar varios comandos básicos.

• Utilización de una tarjeta de adquisición de datos y componentes electrónicos de salida.

Comandos utilizados:

    • Int: Define una variable.

    • pinMode(2,OUTPUT);: Le decimos a Arduino que la patilla 2 actué como salida.

    • Delay(): Tiempo en espera.

    • digitalWrite(2,HIGH):: Le decimos a Arduino que escriba en la patilla 2 un valor alto (5 voltios)

    • Low: Bajo ("0" Lógico o 0V)

    • High: Alto ("1" Lógico o 5V)

Operaciones a realizar:

Empezamos dibujando en Fritzing el circuito a montar, tal como vemos en la siguiente imagen :

Posteriormente seguimos estos sencillos pasos de montaje :

    1. Coloca varios diodos leds como aparecen en la foto, utilizando las patillas 2,3,4,5

    2. Copiar y pegar el programa en el entorno de arduino.

Ejemplo 1 .. con 4 diodos

Ejemplo 2 .. con 5 diodos

Programa para seis diodos

int tiempo=150; //declara una variable como entero y de valor 150

void setup() { //comienza la configuracion de la placa, pines digitales de salida.

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

}

void loop() { //comienza el bucle principal del programa

digitalWrite(2,HIGH);

delay(tiempo);

digitalWrite(2,LOW);

delay(tiempo);

digitalWrite(3,HIGH);

delay(tiempo);

digitalWrite(3,LOW);

delay(tiempo);

digitalWrite(4,HIGH);

delay(tiempo);

digitalWrite(4,LOW);

delay(tiempo);

digitalWrite(5,HIGH);

delay(tiempo);

digitalWrite(5,LOW);

delay(tiempo);

digitalWrite(6,HIGH);

delay(tiempo);

digitalWrite(6,LOW);

delay(tiempo);

digitalWrite(7,HIGH);

delay(tiempo);

digitalWrite(7,LOW);

delay(tiempo);}

Programa para cuatro diodos

int tiempo=150; //declara una variable como entero y de valor 150

void setup() { //comienza la configuracion de la placa, pines digitales de salida.

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

}

void loop() { //comienza el bucle principal del programa

digitalWrite(2,HIGH);

delay(tiempo);

digitalWrite(2,LOW);

delay(tiempo);

digitalWrite(3,HIGH);

delay(tiempo);

digitalWrite(3,LOW);

delay(tiempo);

digitalWrite(4,HIGH);

delay(tiempo);

digitalWrite(4,LOW);

delay(tiempo);

digitalWrite(5,HIGH);

delay(tiempo);

digitalWrite(5,LOW);

delay(tiempo);

}

Otra posible solución

Programa

int tiempo=300;

int n;

void setup() { //comienza la configuracion

for (n=2;n<6;n++) {

pinMode (n, OUTPUT);

}

}

void secuencia() {

for (n=2;n<6;n++) {

digitalWrite (n, HIGH);

delay (tiempo);

digitalWrite (n, LOW);

delay (tiempo);

}

}

void loop() {

secuencia();

}

2º- Practica.

Semáforos.

Hecho con Fritzing

Descripción.

Vamos a realizar con diodos la simulación de un semáforo de verdad controlado por arduino, para ello utilizaremos el montaje anterior y algo mas.

Recorrido

Rojo (pin 0)

Objetivos:

    • Familiarizarse con el entorno de programación.

    • Aprender a declarar variables tipo lista de valores.

Solución Clasica

Programa

// Variables del programa

int pin0 = 0; // Rojo

int pin1 = 1; // Amarillo

int pin2 = 2; // Verde

int pin3 = 3; // Rojo

int pin4 = 4; // Amarillo

int pin5 = 5; // Verde

int timer1 = 2500;// Tiempo 1

int timer2 = 1500; // Tiempo 2

void setup(){

pinMode(pin0, OUTPUT); // Configuración de la placa, pines de salida.

pinMode(pin1, OUTPUT);

pinMode(pin2, OUTPUT);

pinMode(pin3, OUTPUT);

pinMode(pin4, OUTPUT);

pinMode(pin5, OUTPUT);

}

void loop() {

digitalWrite(pin0, HIGH); // Rojo 1º Semaforo y Verde 2º Semaforo

digitalWrite(pin5, HIGH);

delay(timer1);

digitalWrite(pin5, LOW); // 2º Semaforo Amarillo encendido y Verde apagado

digitalWrite(pin4, HIGH);

delay(timer2);

digitalWrite(pin4, LOW); // 2º Semaforo Amarillo apagado y Rojo

digitalWrite(pin3, HIGH);

digitalWrite(pin0, LOW); // 1º semaforo Rojo apagado y Verde encendido

digitalWrite(pin2, HIGH);

delay(timer1);

digitalWrite(pin2, LOW); // 1º semaforo Verde apagado y Amarillo encendido

digitalWrite(pin1, HIGH);

delay(timer2);

digitalWrite(pin1, LOW); // 1º semaforo Amarillo apagado y 2º Semaforo Rojo apagado

digitalWrite(pin3, LOW);

}

Otra solución

Programa:

int leds[]={0,1,2,3,4,5);

int tiempo1=2000;

int tiempo2=400;

int n;

void setup() {

for (n=0;n<5;n++) {

pinMode (leds[n],OUTPUT);

}

}

void loop () {

digitalWrite(pin0, HIGH); // Rojo 1º Semaforo y Verde 2º Semaforo

digitalWrite(pin5, HIGH);

delay(timer1);

digitalWrite(pin5, LOW); // 2º Semaforo Amarillo encendido y Verde apagado

digitalWrite(pin4, HIGH);

delay(timer2);

digitalWrite(pin4, LOW); // 2º Semaforo Amarillo apagado y Rojo

digitalWrite(pin3, HIGH);

digitalWrite(pin0, LOW); // 1º semaforo Rojo apagado y Verde encendido

digitalWrite(pin2, HIGH);

delay(timer1);

digitalWrite(pin2, LOW); // 1º semaforo Verde apagado y Amarillo encendido

digitalWrite(pin1, HIGH);

delay(timer2);

digitalWrite(pin1, LOW); // 1º semaforo Amarillo apagado y 2º Semaforo Rojo apagado

digitalWrite(pin3, LOW);

}

4º Practica:

Comprobación de salidas.

Con este programa podemos comprobar si todos los componentes electronicos de la placa estan perfectamente conectados. Cuando no nos funciona una practica, o no realiza la funcion deseada, pudemos utilizar este progrma que pone todas las salidas digitales en un valor alto, en caso de utilizar diodos veremos como todos se encienden y podremos descartar que el fallo se encuentre en las conexiones.

Programa

int leds[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13};

int n;

void setup() {

for (n=0;n<13;n++) {

pinMode (leds[n],OUTPUT);

}}

void secuencia() {

for (n=0;n<13;n++) {

digitalWrite (n, HIGH);

}

}

void loop() {

secuencia();

}