Arduino Self Timer
O projeto “Arduino Self-Timer” apresentado aqui é um temporizador de contagem regressiva de 60 segundos com baixa contagem de componentes. Ele pode ser alimentado por uma bateria compacta de 9 V ou adaptador de corrente Arduino AC adequado. O funcionamento do circuito é simples!
Esquema do circuito do temporizador Arduino
Quando você pressiona o botão RESET na placa Arduino, o cronômetro fará uma contagem regressiva de 60 segundos, conforme programado. Assim que a contagem regressiva do cronômetro chegar a 0 segundos, o PIEZO-BUZZER (BZ1) irá acender e o display LCD piscará “TIMER ALERT!”. Uma saída de driver RELAY opcional está disponível no pino 4 da placa Arduino. Se desejar adicionar um relé eletromagnético para desligar/ligar qualquer carga elétrica externa, basta usar esta saída para acionar o relé eletromagnético com a ajuda de um circuito acionador de relé baseado em transistor adequado. Observe que o programa do cronômetro é zerado toda vez que você pressiona o botão RESET e a contagem regressiva do cronômetro começa novamente.
Fotos
Arduino Sketch
//Arduino Self-Timer #include <LiquidCrystal.h> LiquidCrystal lcd(7,8,9,10,11,12); int runTimer = 1; int runFor = 60; // tempo em segundos int buzzerPin = 13; int relayPin=4; int data = 0; void setup() { pinMode(buzzerPin, OUTPUT); pinMode(relayPin,OUTPUT); lcd.begin(16, 2); } void loop() { if(runTimer == 1){ digitalWrite(relayPin,LOW); // relé está DESLIGADO durante a contagem regressiva /* mude para ALTO se quiser que o relé esteja LIGADO durante a contagem regressiva */ lcd.clear(); lcd.print("TIMER="); //Iniciar cronômetro timer(); } else { digitalWrite(relayPin,HIGH); // relé está LIGADO quando o tempo expirou /* mude para BAIXO se quiser que o relé esteja DESLIGADO quando o tempo expirar */ } runTimer = 0; lcd.noDisplay(); delay(250); for(int duration = 0; duration < 100; duration ++){ digitalWrite(buzzerPin, HIGH); delayMicroseconds(500); digitalWrite(buzzerPin, LOW); delayMicroseconds(500); } lcd.display(); delay(250); } void timer() { for(int timer = runFor;timer > 0; --timer){ if(timer >= 10) { lcd.setCursor(6,0); } else { lcd.setCursor(6,0); lcd.print("0"); lcd.setCursor(7,0); } lcd.print(timer); lcd.print(" SECOND!"); delay(1000); } lcd.setCursor(0,0); lcd.clear(); lcd.print(" TIMER ALERT!"); }