Cajon desastre.
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 varios comandos.
• 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:
Coloca varios diodos leds como aparecen en la foto, utilizando las patillas 2,3,4,5
Copiar y pegar el programa en el entorno de arduino.
Programa
int tiempo=20; //declara una variable como entero y de valor 200
void setup() { //comienza la configuracion
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.
Practica inacabada y con problemas para que el alumno/a encuentre los fallos y consiga que funcione.
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.
Programa:
int leds[]={2,3,4,11,12,13);
int tiempo1=2000;
int tiempo2=400;
int n;
void setup() {
for (n=2;n<13;n++) {
pinMode (leds[n],OUTPUT);
}
}
void loop () {
digitalWrite (leds[13],HIGH);
digitalWrite (leds[2],HIGH);
delay (tiempo1);
digitalWrite (leds[2],LOW);
digitalWrite (leds[3],HIGH);
delay (tiempo2);
difitalWrite[leds[3],LOW);
digitalWrite (leds[4],HIGH);
digitalWrite (leds[13],LOW);
digitalWrite (leds[11],HIGH);
delay (tiempo1);
digitalWrite (leds[11],LOW);
digitalWrite(leds[12],HIGH);
delay (tiempo2);
}
3º Practica: Dos Calles
Se trata de dos calles.
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.
int leds[] = {0,1,2,3,4,5};
int tiempo1=3000;
int tiempo2=500;
int n;
void setup() {
for (n=0;n<6;n++) {
pinMode (leds[n],OUTPUT);
}}
void loop () {
digitalWrite (leds[0],HIGH);
digitalWrite (leds[5],HIGH);
delay (tiempo1);
digitalWrite (leds[5],LOW);
digitalWrite (leds[4],HIGH);
delay (tiempo2);
digitalWrite (leds[0],LOW);
digitalWrite (leds[2],HIGH);
digitalWrite (leds[4],LOW);
digitalWrite (leds[3],HIGH);
delay (tiempo1);
digitalWrite (leds[2],LOW);
digitalWrite(leds[1],HIGH);
delay (tiempo2);
}
4º Practica: Comprobación de salidas.
Programa
int leds[] = {0,1,2,3,4,5,6,7,8,910,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();
}