Controle de bomba e sensores de nível com Arduino
Автор: Gustavo Cunha da Silva
Загружено: 2017-02-10
Просмотров: 20028
Vejam também a evolução do projeto.
Com tela de lcd e botão de partida manual.
• Controle de bomba e sensores de nível com ...
E agora com transmissão sem fio entre sensores e central que comanda tela botão manual e relé. Utilizei tela de lcd com módulo I2C utilizando apenas duas portas do Arduino, botão para partida manual e transmissor e receptor 433 mhz.
• Controle de bomba e sensores de nível com ...
Segue abaixo o Código Fonte:
const int SNA = 7; // SENSOR DE NIVEL ALTO
const int SNB = 6; // SENSOR DE NIVEL BAIXO
const int ledSNA = 5; // LED DE NIVEL ALTO
const int ledSNM = 4; // LED DE NIVEL INTERMEDIÁRIO
const int ledSNB = 3; // LED DE NIVEL BAIXO
const int ledBomba = 8; // LED DE INDICAÇÃO DE BOMBA LIGADA
const int releBomba = 2; // RELE QUE LIGA A BOMBA
int estadoSNA = 0; //VARIÁVEL QUE ARMAZENA O VALOR LIDO NA PORTA DIGITAL ( 0 = desligado 1 = ligado)
int estadoSNB = 0; //VARIÁVEL QUE ARMAZENA O VALOR LIDO NA PORTA DIGITAL
int estadoRele = 0; //VARIÁVEL QUE ARMAZENA O VALOR LIDO NA PORTA DIGITAL
// OBS: ( 0 = desligado 1 = ligado) Sensor Alto = 0 e baixo = 1;
void setup()
{
pinMode(SNA, INPUT); //DEFINE A PORTA COMO ENTRADA
pinMode(SNB, INPUT); //DEFINE A PORTA COMO ENTRADA
pinMode(releBomba, OUTPUT); //DEFINE A PORTA COMO SAÍDA
pinMode(ledSNA, OUTPUT); //DEFINE A PORTA COMO SAÍDA
pinMode(ledSNM, OUTPUT); //DEFINE A PORTA COMO SAÍDA
pinMode(ledSNB, OUTPUT); //DEFINE A PORTA COMO SAÍDA
pinMode(ledBomba, OUTPUT); //DEFINE A PORTA COMO SAÍDA
}
void loop(){
estadoSNA = digitalRead(SNA); // LÊ O VALOR NA PORTA DIGITAL
estadoSNB = digitalRead(SNB);
if((estadoSNA == 1) && (estadoSNB == 1) && (estadoRele == 0)){ //SE O VALOR LIDO FOR IGUAL A 0, FAZ
digitalWrite(releBomba, LOW); // liga a bomba (está invertido o estado)
digitalWrite(ledSNA, LOW); // desliga o led
digitalWrite(ledSNM, LOW); // desliga o led
digitalWrite(ledSNB, HIGH); // liga o led
digitalWrite(ledBomba, HIGH); // liga o led
estadoRele = 1; // relé ligado
delay(200);
}
if ((estadoSNA == 1) && (estadoSNB == 0) && (estadoRele == 1)){ //SE O VALOR LIDO FOR IGUAL A 0, FAZ
digitalWrite(releBomba, LOW); // liga a bomba (está invertido o estado)
digitalWrite(ledSNA, LOW); // desliga o led
digitalWrite(ledSNM, HIGH); // liga o led
digitalWrite(ledSNB, LOW); // desliga o led
digitalWrite(ledBomba, HIGH); // liga o led
estadoRele = 1; // relé ligado
delay(200);
}
if((estadoSNA == 0) && (estadoSNB == 0) && (estadoRele == 1)){ //SE O VALOR LIDO FOR IGUAL A 0, FAZ
digitalWrite(releBomba, HIGH); // desliga a bomba (está invertido o estado)
digitalWrite(ledSNA, HIGH); // liga o led
digitalWrite(ledSNM, LOW); // desliga o led
digitalWrite(ledSNB, LOW); // desliga o led
digitalWrite(ledBomba, LOW); // desliga o led
estadoRele = 0; // relé desligado
delay(200);
}
if((estadoSNA == 1) && (estadoSNB == 0) && (estadoRele == 0)){ //SE O VALOR LIDO FOR IGUAL A 0, FAZ
digitalWrite(releBomba, HIGH); // desliga a bomba (está invertido o estado)
digitalWrite(ledSNA, LOW); // desliga o led
digitalWrite(ledSNM, HIGH); // liga o led
digitalWrite(ledSNB, LOW); // desliga o led
digitalWrite(ledBomba, LOW); // desliga o led
estadoRele = 0; // relé desligado
delay(200);
}
if((estadoSNA == 0) && (estadoSNB == 1) && (estadoRele == 0 || estadoRele == 1)){ //SE O VALOR LIDO FOR IGUAL A 0, FAZ
digitalWrite(releBomba, HIGH); // desliga a bomba (está invertido o estado)
digitalWrite(ledSNA, HIGH); // liga o led
digitalWrite(ledSNM, HIGH); // liga o led
digitalWrite(ledSNB, HIGH); // liga o led
digitalWrite(ledBomba, HIGH); // liga o led
estadoRele = 0; // relé desligado
delay(200);
}
}
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: