Semáforo estropeado: arranxa o código
Saídas:
Xa fixemos parpadear o LED que o Arduino leva incorporado, pero se só puideramos facer iso o único que teriamos sería unha máquina moi cara para acender e apagar un LED. Imos saír do propio Arduino, e empregalo para controlar cousas que están fóra del e conectadas ás súas saídas. Neste caso, imos regular o encendido de tres LEDs para facer unha simulación dun semáforo. Ademais, imos facer unha montaxe xa máis complexa na nosa breadboard.
Preparación
Precisas:
Un led verde, outro amarelo e outro vermello
tres resistencias de 220 ohmnios (vermello|vermello|marrón)
Cable
Breadboard
Este é o esquema de montaxe:
A Breadboard:
Lembrámosche como eran as conexións da breadboard, por se aínda non as tes ben aprendidas.
Código:
Este é o código que lle tes que cargar ao Arduino, pero antes terás que completar as liñas nas que hai 'xxxxx' para que funcione.
/*
Semaforo: programacion dun semaforo temporizado
Subsitúe as xxxx polo comando apropiado.
*/
//Definimos un pin para cada led, 8 para o verde, 9 amarelo e 10 vermello
//isto define o pin para o led Verde
int ledVerde = 8;
//define o pin para o led Amarelo
xxx xxxxxx=x;
//define o pin para o led Vermello
xxx xxxxxx=x;
// o que hai no lese unha soa vez
void setup() {
// inicia os pines dos leds como saídas (OUTPUT)
pinMode(ledVerde, OUTPUT);
pinMode(xxxxx, OUTPUT);
pinMode(ledAmarelo,xxxxx);
}
// o que hai dentro de void loop se executa unha e outra vez
void loop() {
//Encende o led Verde
digitalWrite(ledVerde,HIGH);
//Espero un pouco co led encendido
delay(3000);
//Encendo o led amarelo
digitalWrite(ledAmarelo,xxxxx);
//Espero un pouco
delay(xxxx);
//apago os leds verde e amarelo e encendo o vermello
digitalWrite(xxxxx,LOW);
xxxxxxx(ledAmarelo,LOW);
digitalWrite(ledVermello,xxxxx);
//espero un pouco co vermello aceso
xxxxxx(3000);
//apago o led vermello
xxxxx(xxxx,xxx);
}
Esta vez non te vou dar solución ningunha, estou seguro de que, exprimindo o miolo, podes conseguir arranxar este código ti soliño/a, e non te quero privar da sensación tan bonita que un experimenta cando consigue resolver un programa por si mesmo/a, non me deas as grazas :)
Reto:
- Tal e como está o código, verás que cando a luz amarela se encende a verde non se apaga, isto non soe ser así nos semáforos, así que tenta facer que sempre haxa unha única luz acesa, e que nunca estean todas apagadas.
- Conseguir que o tempo que está en vermello sexa o doble do que está en verde, e o que estea en ámbar a décima parte.