domingo, 21 de maio de 2017

Quinto encontro - Projeto Semáforo parte 3

Programando botões de comando
Olá turma no encontro do dia 19/05/17  continuamos fazendo melhorias no nosso semáforo, desta vez focamos na programação.
Nossa atividade;
1 Programação
1.1 Criamos mais duas funções para armazenar e executar blocos de código dos LEDs amarelo e vermelho
1.2 Vimos como funciona uma estrutura de decisão, no caso, o comando if.
1.3 Melhoramos as entradas dos botões no arduino habilitando os pull ups internos do arduino, o que garante entradas mais precisas.
            Sem os pull ups podem ocorrer disparos nos botões.
            pinMode(8, INPUT_PULLUP);
                pinMode(7, INPUT_PULLUP);
               
Segue o novo código para vocês analisarem e brincarem.
// os números são os pinos que controlam os leds nas suas respectivas cores
// give it a name:
int ledVermelho = 10;
int ledAmarelo = 11;
int ledVerde = 12;
int tempo = 500;


// the setup routine runs once when you press reset:
//configura os pinos do Arduino como saida(OUTPUT)
void setup() {
  // initialize the digital pin as an output.
  pinMode(ledVermelho, OUTPUT);
  pinMode(ledAmarelo, OUTPUT);
  pinMode(ledVerde, OUTPUT);
 
//configura os pinos 6 e 9 do Arduino como entrada(INPUT)
  pinMode(8, INPUT_PULLUP);
  pinMode(7, INPUT_PULLUP);
      
}

// the loop routine runs over and over again forever:
void loop() {
                verde();
                amarelo();
                vermelho();
            
                //tomar uma decisão quando o botão estiver apertado sinal LOW
                if (digitalRead(8)==LOW){
                tempo=2000;
                }
                 if (digitalRead(7)==LOW){
                 tempo=300;
                 }
 
}

//função verde
void verde() {
  digitalWrite(ledVerde, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // espera 1 segundo
  digitalWrite(ledVerde, LOW);    // turn the LED off by making the voltage LOW - apaga o led
  delay(tempo);
}

void amarelo() {
  digitalWrite(ledAmarelo, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // wait for a second
  digitalWrite(ledAmarelo, LOW);    // turn the LED off by making the voltage LOW
  delay(tempo);
}

//função vermelho
void vermelho(){
  digitalWrite(ledVermelho, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // wait for a second
  digitalWrite(ledVermelho, LOW);    // turn the LED off by making the voltage LOW
  delay(tempo); 
}

Nesta fase do projeto semáforo revimos:
Configurar os pinos digitais do arduino como entrada (INPUT) ou saída (OUTPUT).
Alterar valores de variáveis.
Criação de funções.
Nesta fase do projeto semáforo aprendemos:
Uso de pull ups internos na placa do arduino.
Utilizar estrutura de decisão: comando if.

Como desafio, tentem criar uma função chamada de mudarTempo() para a estrutura de decisão e depois usá-la dentro da função loop!


Abç a todos!

Nenhum comentário:

Postar um comentário