Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /************************** Marlon Nardi ******************************
- Projeto: Janela automática com sensor de chuva
- Site: http://www.marlonnardi.com
- Youtube: https://www.youtube.com/marlonnardiw
- Facebook: https://www.facebook.com/professormarlonnardi
- ************************************************************************/
- // Biblioteca IR Remote///
- int RECV_PIN = 2;
- #include <IRremote.h>
- IRrecv irrecv(RECV_PIN);
- decode_results results;
- // ----------- Nomenclatura das entradas e saídas ------------//
- #define FimdeCursoJanelaFechada 3
- #define FimdeCursoJanelaAberta 4
- #define BotaoFechaManual 6
- #define BotaoAbreManual 7
- #define FechaJanela 10
- #define AbreJanela 11
- // ----------- Declaração de variáveis ------------//
- //short PARA = 0;
- //short CLIQUES = 0 ;
- short EstadoJanela = 0;
- short FechandoaJanela = 0;
- short AbrindoaJanela = 0;
- void setup() {
- // ----------- Definições de entradas e saídas ------------//
- pinMode(FimdeCursoJanelaFechada, INPUT);
- pinMode(FimdeCursoJanelaAberta, INPUT);
- pinMode(BotaoFechaManual, INPUT);
- pinMode(BotaoAbreManual, INPUT);
- pinMode(FechaJanela, OUTPUT);
- pinMode(AbreJanela, OUTPUT);
- // ----------- Iniciando a comunicação serial com velocidade de 9600 bits/segundo ------------//
- Serial.begin(9600);
- // Controle remoto inicia//
- irrecv.enableIRIn();// inicializar receptor
- }
- void loop() {
- // ----------- Escrevendo no monitor serial ------------//
- Serial.print(" Estado da Janela: ");
- Serial.print(EstadoJanela);
- Serial.print(" Fechado a Janela: ");
- Serial.print(FechandoaJanela);
- Serial.print(" Abrindo a Janela: ");
- Serial.println(AbrindoaJanela);
- if(digitalRead(BotaoAbreManual) == HIGH){ // Se o botão para abrir a janela for precionado
- // Manda abrir a janela
- digitalWrite( FechaJanela, LOW);
- digitalWrite( AbreJanela, HIGH);
- }
- if(digitalRead(BotaoFechaManual) == HIGH ){ // Se o botão para fechar a janela for precionado
- // Manda fechar a janela
- digitalWrite( FechaJanela, HIGH);
- digitalWrite( AbreJanela, LOW);
- }
- if(digitalRead(BotaoAbreManual) == LOW && digitalRead(BotaoFechaManual) == LOW ){// Se os dois botões estiverem solto
- // Desliga o motor
- digitalWrite( FechaJanela, LOW);
- digitalWrite( AbreJanela, LOW);
- }
- if (digitalRead(BotaoFechaManual) == LOW && EstadoJanela == 1){// Se a janela chegar no fim de curso da janela aberta
- // Desliga o motor
- digitalWrite( FechaJanela, LOW);
- digitalWrite( AbreJanela, LOW);
- }
- if (digitalRead(BotaoAbreManual) == LOW && EstadoJanela == 0){// Se a janela chegar no fim de curso da janela fechada
- // Desliga o motor
- digitalWrite( FechaJanela, LOW);
- digitalWrite( AbreJanela, LOW);
- }
- ////// controles ir ////
- if (irrecv.decode(&results)) {
- ///Incio Abrindo
- if (results.value == 0x41BED02F){
- AbrindoaJanela = 1;
- // Manda abrir a janela
- digitalWrite( AbreJanela, HIGH);
- digitalWrite( FechaJanela, LOW);
- }
- if (digitalRead(results.value == 0x41BED02F) == LOW && EstadoJanela == 1){// Se a janela chegar no fim de curso da janela aberta
- // Desliga o motor
- digitalWrite( FechaJanela, LOW);
- digitalWrite( AbreJanela, LOW);
- }
- ///final abrindo
- //// Inicio Fechando
- if(results.value == 0x41BE30CF){
- FechandoaJanela = 1;
- // Manda fechar a janela
- digitalWrite( FechaJanela, HIGH);
- digitalWrite( AbreJanela, LOW);
- }
- if (digitalRead(results.value == 0x41BE30CF) == LOW && EstadoJanela == 0){// Se a janela chegar no fim de curso da janela fechada
- // Desliga o motor
- digitalWrite( FechaJanela, LOW);
- digitalWrite( AbreJanela, LOW);
- }
- ///Final Fechando
- irrecv.resume();
- }
- delay(100);
- // ----------- Mapeando estados dos fim de cursos ------------//
- if( digitalRead(FimdeCursoJanelaFechada) == HIGH && digitalRead(FimdeCursoJanelaAberta) == LOW){
- EstadoJanela = 0; // 0 Fechada 1 Aberta 2 Em movimento
- }
- if( digitalRead(FimdeCursoJanelaFechada) == LOW && digitalRead(FimdeCursoJanelaAberta) == HIGH){
- EstadoJanela = 1; // 0 Fechada 1 Aberta 2 Em movimento
- }
- if( digitalRead(FimdeCursoJanelaFechada) == LOW && digitalRead(FimdeCursoJanelaAberta) == LOW){
- EstadoJanela = 2; // 0 Fechada 1 Aberta 2 Em movimento
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement