Public Domain
/* Projeto: João Abadia v.2.0 Nesse projeto, pode-se controlar duas lâmpada (corredor e banheiro, por exemplo) com temporização. Usa-se botões tipo campainha, sem retenção. Um clique acende a lâmpada e outro desliga. Caso a lâmpada não seja desligada, o temporizador segue contando, dando uma "piscada", avisando o final do tempo, desligando-as no tempo determinado nas linhas "unsigned long", respectivamente "tempo corredor" e "tempo banheiro" (intervalo e intervalo11) utilizando a fórmula "=====Configurações de tempo=====". Minha sugestão é 40 minutos para o banheiro e 10 minutos para o corredor. Os tempos para "intervaloa3" e "intervalob3" devem ser de 30000, o que dará um tempo de 30 segundos para o desligamento total das lâmpadas após essas piscarem. "intervaloa2 e intervalob2" determinam o tempo que as lâmpadas piscam. (led3) é usado para acionar um odorizador de ambiente enquanto que (led4) é ligado ao botão de acionamento manual do mesmo.
Esse projeto usa o arduino nano.
https://www.tinkercad.com/things/1WdxveF9ExR-luz-temporizada-2-lampadas-attiny/editel https://easyeda.com/editor#id=2f48eb16f74e438297778abc398bbdb0 https://create.arduino.cc/editor/abadia50/9c8c7054-488b-4a24-9dbd-a4834cc00120 */
int x1 = 0; int x2 = 0; int x3 = 0; //odorizador
unsigned long tempoa1; //tempo led1 unsigned long tempoa2; //tempo led2 unsigned long tempoa3; //tempo odorizador
/ =====Configurações de tempo===== 1 minuto = 60000 ms (60000minutos) 1 segundo = 1000 ms; 30 segundos = 30000 ms (1000segundos) / unsigned long intervaloa1 = 5000; // Tempo banheiro unsigned long intervaloa2 = (intervaloa1 + 150); unsigned long intervaloa3 = (intervaloa2 + 1500);
unsigned long intervalob1 = 5000; // Tempo corredor unsigned long intervalob2 = (intervalob1 + 150); unsigned long intervalob3 = (intervalob2 + 1500);
int tempoDelay = 500; //tempo de delay
void setup() {
pinMode(botao1, INPUT); pinMode(botao2, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); //odorizador pinMode(led4, OUTPUT); }
void loop() {
//========== lampada1 ==========
if (x1 == 1 and digitalRead(botao1) == 1) { x1 = 0; digitalWrite (led1, LOW); delay(tempoDelay); }
if (x1 == 1) { if (millis() - tempoa1 > intervaloa1 and millis() - tempoa1 < intervaloa2) { digitalWrite(led1, LOW); }
if (millis() - tempoa1 > intervaloa2 and (millis() - tempoa1) < intervaloa3) {
digitalWrite(led1, HIGH);
}
if (millis() - tempoa1 > intervaloa3) {
digitalWrite(led1, LOW);
x1 = 0;
}
}
if (x1 == 0 and digitalRead(botao1) == 1) { x1 = 1; digitalWrite(led1, HIGH); tempoa1 = millis(); delay(tempoDelay); }
//========== Lampada 2 ==========
if (x2 == 1 and digitalRead(botao2) == 1) { x2 = 0; digitalWrite (led2, LOW); delay(tempoDelay); }
if (x2 == 1) { if (millis() - tempoa2 > intervalob1 and millis() - tempoa2 < intervalob2) { digitalWrite(led2, LOW); }
if (millis() - tempoa2 > intervalob2 and millis() - tempoa2 < intervalob3) {
digitalWrite(led2, HIGH);
}
if (millis() - tempoa2 > intervalob3) {
digitalWrite(led2, LOW);
x2 = 0;
}
}
if (x2 == 0 and digitalRead(botao2) == 1) { x2 = 1; digitalWrite(led2, HIGH); tempoa2 = millis(); delay(tempoDelay); }
//========== odorizador ==========
if (x3 == 1) { if (millis() - tempoa3 > 1500 and millis() - tempoa3 < 2000) { digitalWrite(led4, HIGH); } else { digitalWrite(led4, LOW); } }
if (x1 == 1 and x3 == 0) { digitalWrite(led3, HIGH); tempoa3 = millis(); x3 = 1; }
if (x1 == 0) { digitalWrite(led3, LOW); x3 = 0; }
}
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | disparo odorizador | P7 | HDR-1X2/2.54 | 1 |
2 | odorizador | P6 | HDR-1X2/2.54 | 1 |
3 | ARDUINO_NANO | U3 | ARDUINO_NANO | 1 |
4 | HILINK 5v | U2 | HILINK_5V | 1 |
5 | BC817-40Q-7-F | Q1,Q2 | SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR | 2 |
6 | botao1 | P4 | WJ2EDGVC-5.08-2P | 1 |
7 | lampada2 | P3 | WJ2EDGVC-5.08-2P | 1 |
8 | lampada1 | P2 | WJ2EDGVC-5.08-2P | 1 |
9 | botao2 | P5 | WJ2EDGVC-5.08-2P | 1 |
10 | rede | P1 | WJ2EDGVC-5.08-2P | 1 |
11 | G3MB-202PL | K1,K2 | G3MB-202P | 2 |
Comments (0)