Projeto 15

Relé

Projeto 15 - Relé

Código (download)

// Projeto 15 - Relé

// O relé abre o circuito ao fim de "duracao" milissegundos

#define botao 5

#define rele 6

int estado;

unsigned long duracao = 4000;


void setup()

{

  Serial.begin(9600);

  pinMode(botao, INPUT);

  pinMode(rele, OUTPUT);

}


void loop()

{

  estado = 0;

  digitalWrite(rele, LOW);

  Serial.println("O circuito está aberto.");

  Serial.println("Pressione o botão para fechar o circuito.");

  while(estado == 0)

  {

    estado = digitalRead(botao);

  }

  Serial.println("O circuito está fechado.");

  digitalWrite(rele, HIGH);

  delay(duracao);

}

Código (download)

// Projeto 15 - Relé com a função millis()

// O relé abre o circuito ao fim de "duracao" milissegundos ou quando se pressiona o botão

#define botao 5

#define rele 6

int estado;

unsigned long t_inicial;

unsigned long delta; // Intervalo de tempo que será comparado à "duracao"

unsigned long duracao = 4000;


void setup()

{

  Serial.begin(9600);

  pinMode(botao, INPUT);

  pinMode(rele, OUTPUT);

  digitalWrite(rele, LOW);

}


void loop()

{

  estado = 0;

  delta = 0;

  Serial.println("O circuito está aberto.");

  Serial.println("Pressione o botão para fechar o circuito.");

  while(estado == 0)

  {

    estado = digitalRead(botao);

  }

  Serial.println("O circuito está fechado.");

  Serial.println("Pressione o botão para abrir o circuito ou aguarde!...");

  delay(500);

  t_inicial = millis();

  estado = 0;

  while(estado == 0 && delta < duracao)

  {

    digitalWrite(rele, HIGH);

    estado = digitalRead(botao);

    delta = millis() - t_inicial;

  }

  Serial.println(delta);

  Serial.println(estado);

  digitalWrite(rele, LOW);

  delay(500);

}