Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Projeto: Automação de Ar condicionado, utilizando sensor eletrônico de Temperatura LM35 e um Emissor de Infra-Vermelho.
- * Garante que Ar condicionado retorne ligar após uma queda de força elétrica, através do controle de Temperatura do ambiente.
- *
- * Bibliotecas utilizadas: 1)para envio do código RAW: IRemote encontrada no site: https://github.com/shirriff/Arduino-IRremote
- * 2)para leitura do sinal: Fora utilizado o Algoritmo encontrado no site abaixo:
- * http://www.analysir.com/blog/wp-content/uploads/2014/03/Arduino_Record_Long_AirConditioner_Infrared_Signals_10.txt
- *
- *
- *
- */
- #include <IRremote.h>
- IRsend irsend;
- //Padrao sinal RAW Ligar Ar Condicionado SAMSUNG
- unsigned int S_pwr[73]={8976, 4432, 596, 516, 12, 8, 580, 516, 608, 516, 596, 528, 588, 516, 608, 516, 596, 532, 584, 520, 604, 1640, 588, 1640, 596, 1632, 608, 1644, 584, 1640, 600, 1632, 604, 516, 600, 1632, 604, 1644, 584, 1644, 596, 528, 584, 520, 604, 516, 600, 528, 584, 520, 608, 516, 596, 528, 588, 516, 608, 1640, 584, 1644, 596, 1632, 608, 1640, 588, 1640, 596, 1632, 608, 40740, 8980, 2200, 588};
- int pinoSensorTemp = 1;
- int valorLido = 0;
- unsigned long tempoAnterior = 0;
- unsigned long tempoIntervalo = 120000; //Tempo de intervalo para leitura da temperatura, em milisegundos.
- int enviou = 0;
- //#######################IMPORTANTE#######################
- //Porta de envio padrao de sinal: PWM 9(MEGA) e 3(PROMINI)
- void setup(){
- // Serial.begin(9600);
- pinMode(13, OUTPUT);
- }
- void loop() {
- //Serial.println(getTemperatura());
- if ((millis() - tempoAnterior) > tempoIntervalo && enviou == 0){
- if (getTemperatura() > 26){
- Serial.println("Enviando Sinal Ligar...");
- ligarAr();
- enviou = 1;
- }
- tempoAnterior = millis();
- }
- if ((enviou == 1) && ((millis() - tempoAnterior) > 240000)){ //4min.
- enviou = 0;
- Serial.println("Passaram-se 4 minutos... Retornando ao tempo de intervalo normal!");
- }
- }
- float getTemperatura(){
- valorLido = analogRead(pinoSensorTemp);
- float temperatura = (valorLido * 0.00488);
- temperatura = temperatura * 100;
- return temperatura;
- }
- void ligarAr(){
- Serial.println("Ligando...");
- irsend.sendRaw(S_pwr, 73, 38);
- Serial.println("Executando a 38 Hz");
- }
Add Comment
Please, Sign In to add comment