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:

    1. Un led verde, outro amarelo e outro vermello

    2. tres resistencias de 220 ohmnios (vermello|vermello|marrón)

    3. Cable

    4. 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.