PROGRAMANDO EL ARDUINO

En esta práctica vamos a empezar a programar el Arduino para poder controlar una serie de ledes. La mayor parte de la explicación está dentro del código (en cursiva) que debes copiar y pegar.

CIRCUITO 1

//Zona declaraciones: En esta parte se declaran variables, funciones, objetos, y estructuras.
 // vamos a dar un nombre a cada led indicando a que pin esta conectado
 int rojo1 = 7; //el primer led rojo esta conectado al pin 7...
 int rojo2 = 6; //el segundo led rojo al pin 6 y asi...
 int rojo3 = 5;
 int ambar = 4;
 int verde1 = 3;
 int verde2 = 2;

//////////////////////////////////////////////////////////////////////////

//Funcion setup: Esta función se ejecuta cada vez que se enciende la placa de Arduino, o se pulsa la tecla Reset.
 //Realiza funciones de inicialización de periféricos, comunicaciones, variables, etc.
 void setup() { 
  // todo lo que este entre las llaves pertenece al setup
  pinMode(rojo1, OUTPUT); //Vamos a establecer que todos los pines con led son pines de salida: "OUTPUT".
  pinMode(rojo2, OUTPUT); //Esto significa que vamos a poder usarlos para emitir una senal
  pinMode(rojo3, OUTPUT);
  pinMode(ambar, OUTPUT); 
  pinMode(verde1, OUTPUT);
  pinMode(verde2, OUTPUT);
 }

///////////////////////////////////////////////////////////////////////////

//Funcion loop: Esta función se ejecuta contínuamente. Realiza el grueso de tareas del autómata.
 //Es circular, al acabar se vuelve a ejecutar desde el comienzo.
 void loop() {
  //empiezo definiendo los led para cuando el semaforo esta cerrado
  digitalWrite(rojo1, HIGH); // con digitalWrite voy a encender ledes con la instruccion HIGH...
  digitalWrite(rojo2, HIGH); 
  digitalWrite(rojo3, HIGH);
  digitalWrite(ambar, LOW); // ... y apagar con la instruccion LOW
  digitalWrite(verde1, LOW);
  digitalWrite(verde2, LOW);
  //ahora voy a ir apagando las luces rojas una detras de otra esperando tres segundos despues de cada una.
  //para eso uso delay con la cantidad de microsegundos a esperar
  delay(3000);
  digitalWrite(rojo1, LOW);
  delay(3000);
  digitalWrite(rojo2, LOW);
  delay(3000);
  digitalWrite(rojo3, LOW);
  //y al mismo tiempo que apago la ultima roja enciendo las dos verdes
  digitalWrite(verde1, HIGH);
  digitalWrite(verde2, HIGH);
  //dejo las luces verdes encendidas 10 segundos
  delay(10000);
  //apago las luces verdes y enciendo la luz ambar
  digitalWrite(verde1, LOW);
  digitalWrite(verde2, LOW);
  digitalWrite(ambar, HIGH);
  //espero 2 seg con el ambar y volvera a empezar el ciclo
  delay(2000);
}

CIRCUITO 2

INTENTA CAMBIAR LOS RITMOS Y TIEMPOS DE LOS LED MODIFICANDO EL CÓDIGO PARA CONSEGUIR QUE:

1 ) La luces rojas se apaguen en el orden inverso
2 ) La luz ámbar parpadee 4 veces antes de pasar a verde
3) La luces verdes parpadeen alternativamente (una encendida, otra apagada y luego viceversa, siempre hay sólo una encendida)

 

MÁS TEORÍA

Si quieres ampliar acerca de la teoría relativa a LEDs es muy recomendable el tutorial de Luis Llama

Encender un LED con Arduino

PREGUNTAS OPCIONALES

Responde dentro del mismo documento que los obligatorios. Suman hasta un 20%.

a) ¿Por qué en la imagen del ejemplo hay dos tipos de resistencias con dos códigos de colores distintos?

b) En el esquema adjunto de fritzing sobra un cable: ¿Cuál?

 

Práctica 3 – Semáforo (control de ledes) int, pinMode y digitalWrite

Un pensamiento en “Práctica 3 – Semáforo (control de ledes) int, pinMode y digitalWrite

  • abril 3, 2017 a las 7:20 am
    Enlace permanente

    Esto no era aquí. Había que mandar un email. De todas formas no respondes.

    Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada.