Eu Inclui o pinMode (sensorPin,INPUT_PULLUP) , e mudei a entrada digital do sensor , uma coisa que reparei foi que quando aproximo a mão ou algum objeto do sensor as saídas, digitais ficam acionando e desacionando até eu colocar a mão ou outro objeto próximo do sensor, ai essas saídas ficam acionadas e não desacionam,será que tem algum erro no código.?
#include <Crescer.h>
int sensorPin = 3;
int rele1 = 30;
int rele2 = 23;
int rele3 = 24;
int rele4 = 25;
int rele5 = 26;
unsigned long tempo = 0; // variável para receber valores do millis()
unsigned long temp1 = 0;
unsigned long temp2 = 0;
unsigned long temp3 = 0;
unsigned long temp4 = 0;
int temporizador = 0;// variável para indicar quando o temporizador está operando
int tempor1 = 0;
int tempor2 = 0;
int tempor3 = 0;
int tempor4 = 0;
int sensorState = 0;
void setup() {
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
pinMode(rele5, OUTPUT);
pinMode(sensorPin,INPUT_PULLUP);
}
void loop(){
sensorState = digitalRead(sensorPin); // lê o estado do botão
if (sensorState == HIGH && temporizador == 0) { // se botão acionado
temporizador = 1; // inicia o temporizador
tempo = millis(); // passa à variável o valor de millis()
}
if (sensorState == HIGH && tempor1 == 0) { // se botão acionado
tempor1 = 1; // inicia o temporizador
temp1 = millis(); // passa à variável o valor de millis()
}
if (sensorState == HIGH && tempor2 == 0) { // se botão acionado
tempor2 = 1; // inicia o temporizador
temp2 = millis(); // passa à variável o valor de millis()
}
if (sensorState == HIGH && tempor3 == 0) { // se botão acionado
tempor3 = 1; // inicia o temporizador
temp3 = millis(); // passa à variável o valor de millis()
}
if (sensorState == HIGH && tempor4 == 0) { // se botão acionado
tempor4 = 1; // inicia o temporizador
temp4 = millis(); // passa à variável o valor de millis()
}
if (millis() - tempo >= 1000 && temporizador == 1){ // após 1 segundo e temporizador
// ligado
digitalWrite(rele1, HIGH); // aciona o LED
}
if (millis() - temp1 >= 1200 && tempor1 == 1){ // após 1 segundo e temporizador
// ligado
digitalWrite(rele2, HIGH); // aciona o LED
}
if (millis() - temp2 >= 1400 && tempor2 == 1){ // após 1 segundo e temporizador
// ligado
digitalWrite(rele3, HIGH); // aciona o LED
}
if (millis() - temp3 >= 1600 && tempor3 == 1){ // após 1 segundo e temporizador
// ligado
digitalWrite(rele4, HIGH); // aciona o LED
}
if (millis() - temp4 >= 1800 && tempor4 == 1){ // após 1 segundo e temporizador
// ligado
digitalWrite(rele5, HIGH); // aciona o LED
}
if (millis() - tempo >= 2000 && temporizador == 1){ // após 2 seg. e temporizador
//desligado
digitalWrite(rele1, LOW); // apaga o LED
temporizador = 0; // desliga o temporizador
}
if (millis() - temp1 >= 2200 && tempor1 == 1){ // após 2 seg. e temporizador
//desligado
digitalWrite(rele2, LOW); // apaga o LED
tempor1 = 0; // desliga o temporizador
}
if (millis() - temp2 >= 2400 && tempor2 == 1){ // após 2 seg. e temporizador
//desligado
digitalWrite(rele3, LOW); // apaga o LED
tempor2 = 0; // desliga o temporizador
}
if (millis() - temp3 >= 2600 && tempor3 == 1){ // após 2 seg. e temporizador
//desligado
digitalWrite(rele4, LOW); // apaga o LED
tempor3 = 0; // desliga o temporizador
}
if (millis() - temp4 >= 2800 && tempor4 == 1){ // após 2 seg. e temporizador
//desligado
digitalWrite(rele5, LOW); // apaga o LED
tempor4 = 0; // desliga o temporizador
}
}