terça-feira, 13 de junho de 2017

PROGRAMA BOTÃO #MELHORADO 1

Pessoal, este programinha é aquele em que estamos trabalhando em aula. Aqui ele está finalizado.
Como funciona:
Quando ligamos o arduino, inicialmente nada acontece. Ao pressionar o botão uma vez, os três led's piscam segundo o valor da variável tempo, que inicialmente é de meio segundo;
Pressionando o botão novamente, apenas o led vermelho pisca; Pressionando novamente, apenas o led amarelo pisca; Pressionado pela quarta vez, apenas o led verde vai piscar. Na quinta pressionada os led's vão funcionar como um semáforo. Faça a montagem conforme a imagem:

Copie este sketch e cole no arduino:

//Davi R. R.

const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin
int cont = 0;
// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status
int espera = 0;
int tempo = 500;

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
  Serial.begin(9600);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
    cont = cont + 1;
    Serial.println(cont);

    if (cont == 6)
    {
      cont = 0;
    }

  }
  if (cont == 1)
  {
    espera = millis() + tempo;
    while (espera > millis())
    {
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, HIGH);
  }
  espera = millis() + tempo;
  while (espera > millis())
  {
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  }
  }
  if (cont == 2)
  {
    espera = millis() + tempo;
  while (espera > millis())
  {
    digitalWrite(3, HIGH);
  }
   espera = millis() + tempo;
  while (espera > millis())
  {
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
  }
  }
  if (cont == 3)
  {
    espera = millis() + tempo;
  while (espera > millis())
  {
    digitalWrite(4, HIGH);
  }
    espera = millis() + tempo;
  while (espera > millis())
  {
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
  }
  }
   if (cont == 4)
  {
    espera = millis() + tempo;
  while (espera > millis())
  {
    digitalWrite(5, HIGH);
  }
    espera = millis() + tempo;
  while (espera > millis())
  {
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(3, LOW);
  }
  }
   if (cont == 5)
  {
    espera = millis() + 10000;
  while (espera > millis())
  {
    digitalWrite(3, HIGH);
  }
 
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(3, LOW);

  espera = millis() + 3000;
  while (espera > millis())
  {
    digitalWrite(4, HIGH);
  }
 
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(3, LOW);

  espera = millis() + 10000;
  while (espera > millis())
  {
    digitalWrite(5, HIGH);
  }
 
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(3, LOW);
    espera = millis();
  }
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
}


}

Nenhum comentário:

Postar um comentário