Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // http://pastebin.com/dZNK5rXn
- // edisondesouza95@gmail.com
- // Programa : Automação Residencial
- // Autor : Edison
- #include <SPI.h>
- #include <Servo.h> //Biblioteca utilizada
- #define SERVO 6 //Porta utilizada para o motor
- //Explicação sobre bibliotecas e include na legenda do código
- Servo s; //Variável utilizada para o servo motor
- int pos; //Posição para deixar o motor
- int valorSerial=0;
- byte PirFlag = 0;
- unsigned long Tempo = 0;
- //--------------------------------------------------------
- int pinBuzzer = 7;
- int pinSensorPIR = 8;
- int pinLed = 9;
- int valorSensorPIR = 0;
- int portaLed = 3; //Porta a ser utilizada para ligar o led
- int portaLDR = A5; //Porta analógica utilizada pelo LDR
- //--------------------------------------------------------
- void setup()
- {
- Serial.begin(9600); //Inicializa a comunicaçao em serie
- s.attach(SERVO);
- s.write(0); //Começa o motor na posição 0
- //Definido pinos como de entrada ou de saída
- pinMode(pinBuzzer,OUTPUT);
- pinMode(pinSensorPIR,INPUT_PULLUP);
- pinMode(pinLed,OUTPUT);
- pinMode(portaLed, OUTPUT); //Define a porta do Led como saída
- pinMode(A1,OUTPUT); //Define o pino A1 como saida
- pinMode(A2,OUTPUT); //Define o pino A2 como saida
- pinMode(A3,OUTPUT); //Define o pino A3 como saida
- pinMode(A4,OUTPUT); //Define o pino A4 como saida
- pinMode(13,OUTPUT); //Define o pino 13 como saida
- pinMode(12,OUTPUT); //Define o pino 12 como saida
- pinMode(11,OUTPUT); //Define o pino 11 como saida
- pinMode(10,OUTPUT); //Define o pino 10 como saida
- pinMode(4,OUTPUT); //Define o pino 4 como saida
- pinMode(5,OUTPUT); //Define o pino 5 como saida
- pinMode(2,OUTPUT); //Define o pino 2 como saida o ar condicionado
- }
- //--------------------------------------------------------
- void loop(){
- //Lendo o valor do sensor PIR. Este sensor pode assumir 2 valores
- //1 quando detecta algum movimento e 0 quando não detecta.
- valorSensorPIR = digitalRead(pinSensorPIR);
- // Serial.print("Valor do Sensor PIR: ");
- // Serial.println(valorSensorPIR);
- //Verificando se ocorreu detecção de movimentos
- if (valorSensorPIR == 1)
- {
- ligarAlarme();
- }
- else
- {
- desligarAlarme();
- }
- Comandos();
- }
- //--------------------------------------------------------
- void ligarAlarme()
- {
- //Ligando o led
- digitalWrite(pinLed, HIGH);
- //Ligando o buzzer com uma frequencia de 1500 hz.
- tone(pinBuzzer,1500);
- if ((millis()- Tempo) >4000)
- {
- Serial.print("Alarme ligado: Tempo Seg: ");
- Serial.println((millis()- Tempo)/1000);
- PirFlag = 0;
- // delay(4000); //tempo que o led fica acesso e o buzzer toca
- desligarAlarme();
- Tempo = millis();
- }
- }
- //--------------------------------------------------------
- void desligarAlarme()
- {
- if (PirFlag == 0)
- Serial.println("Alarme desligado");
- PirFlag = 1;
- //Desligando o led
- digitalWrite(pinLed, LOW);
- //Desligando o buzzer
- noTone(pinBuzzer);
- }
- // --------------------------- Comandos
- void Comandos ()
- {
- char ler = 0;
- if(Serial.available())
- {
- ler = Serial.read();
- Serial.println(ler);
- }
- int estado = analogRead(portaLDR); //Lê o valor fornecido pelo LDR
- // Caso o valor lido na porta analógica seja maior do que
- // 800, acende o LED
- // Ajuste o valor abaixo de acordo com o seu circuito
- if (estado > 800)
- {
- digitalWrite(portaLed, HIGH);
- }
- else //Caso contrário, apaga o led
- {
- digitalWrite(portaLed, LOW);
- }
- if(ler == 'a') //Se a variavel ler for igual a 1
- digitalWrite(A1,HIGH); //Ativa a porta A1
- else if(ler == 'b') //Se a variavel ler for igual a 2
- digitalWrite(A2,HIGH); //Ativa a porta A2
- else if(ler == 'c') //Se a variavel ler for igual a 3
- digitalWrite(A3,HIGH); //Ativa a porta A3
- else if(ler == 'e') //Se a variavel ler for igual a 4
- digitalWrite(A4,HIGH); //Ativa a porta A4
- else if(ler == 'f') //Se a variavel ler for igual a 13
- digitalWrite(13,HIGH); //Ativa a porta 13
- else if(ler == 'g') //Se a variavel ler for igual a 12
- digitalWrite(12,HIGH); //Ativa a porta 12
- else if(ler == 'h') //Se a variavel ler for igual a 11
- digitalWrite(11,HIGH); //Ativa a porta 11
- else if(ler == 'i') //Se a variavel ler for igual a 10
- digitalWrite(10,HIGH); //Ativa a porta 10
- else if(ler == 'j') //Se a variavel ler for igual a 4
- digitalWrite(4,HIGH); //Ativa a porta 4
- else if(ler == 'k') //Se a variavel ler for igual a 5
- digitalWrite(5,HIGH); //Ativa a porta 5
- else if(ler == 'l') //Se a variavel ler for igual a 2
- digitalWrite(2,HIGH); //Ativa a porta 2 ar condicionado
- //--------DESLIGAR RELES---------------------
- else if(ler == 'A') //Se a variavel ler for igual a 1
- digitalWrite(A1,LOW); //Desliga a porta A1
- else if(ler == 'B') //Se a variavel ler for igual a 2
- digitalWrite(A2,LOW); //Desliga a porta A2
- else if(ler == 'C') //Se a variavel ler for igual a 3
- digitalWrite(A3,LOW); //Desliga a porta A3
- else if(ler == 'E') //Se a variavel ler for igual a 4
- digitalWrite(A4,LOW); //Desliga a porta A4
- else if(ler == 'F') //Se a variavel ler for igual a 13
- digitalWrite(13,LOW); //Desliga a porta 13
- else if(ler == 'G') //Se a variavel ler for igual a 12
- digitalWrite(12,LOW); //Desliga a porta 12
- else if(ler == 'H') //Se a variavel ler for igual a 11
- digitalWrite(11,LOW); //Desliga a porta 11
- else if(ler == 'I') //Se a variavel ler for igual a 10
- digitalWrite(10,LOW); //Desliga a porta 10
- else if(ler == 'J') //Se a variavel ler for igual a 4
- digitalWrite(4,LOW); //Desliga a porta 4
- else if(ler == 'K') //Se a variavel ler for igual a 5
- digitalWrite(5,LOW); //Desliga a porta 5
- else if(ler == 'L') //Se a variavel ler for igual a 2
- digitalWrite(2,LOW); //Desliga a porta 2 ar condicionado
- if (ler == 'D') // D Maiusculo liga o portão
- {
- Serial.println("Abrindo");
- delay(100);
- for(pos = 0; pos < 90; pos++)
- {
- s.write(pos);
- delay(35); // <<----------- valor alto?
- }
- Serial.println("Aberto");
- }
- if (ler == 'd') // d Minusculo desliga
- {
- Serial.println("Fechando");
- for(pos = 90; pos > 0; pos--)
- {
- s.write(pos);
- delay(35); // <<----------- valor alto?
- }
- Serial.println("Fechado");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement