Aula 10/15
Sistema de controle Residencial 1.0
/**** Sistema de controle Residencial 1.0 ****/ #include "DHT.h" #include
#define DHTPIN A0 //Pino de dados do sensor DHT-11 #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); int h; int t; //Carrega a biblioteca LiquidCrystal #include
//Define os pinos que serão utilizados para ligação ao display LiquidCrystal lcd(3, 2, 7, 6, 5, 4); #define Rele1 13 #define Rele2 12 #define Rele3 11 #define Tranca 10 Servo myservo; int AnguloServo = 0; //------------------------------------------------------ Variáveis para a leitura dos botões --------------------------------------------------// int LeituraBotoes = 0; //--------------------------------------------------------- Variáveis para a leitura do LDR ---------------------------------------------------// int LeituraLDR = 0; //-----------------------------------------------------Variáveis para a condição do Botão SELECT ---------------------------------------------// int Para = 0; int CliquesBotaoSelect = 0; //-----------------------------------------------------Variáveis para a condição do Botão LEFT -----------------------------------------------// int Para2 = 0; int CliquesBotaoLEFT = 0; //------------------------------------------------------Variáveis para a condição do Botão UP ------------------------------------------------// int Para3 = 0; int CliquesBotaoUP = 0; int CliquesBotaoUPAuxiliar = 0; //-----------------------------------------------------Variáveis para a condição do Botão Down -----------------------------------------------// int Para4 = 0; int CliquesBotaoDown = 0; int CliquesBotaoDownAuxiliar = 0; int Para5 = 0; int Para6 = 0; void setup() { pinMode(Rele1, OUTPUT); pinMode(Rele2, OUTPUT); pinMode(Rele3, OUTPUT); pinMode(Tranca, OUTPUT); digitalWrite(Rele1,HIGH); digitalWrite(Rele2,HIGH); digitalWrite(Rele3,HIGH); myservo.attach(Tranca); Serial.begin(9600); dht.begin(); //Define o número de colunas e linhas do LCD lcd.begin(16, 2); } void loop() { // A leitura da temperatura e umidade pode levar 250ms! // O atraso do sensor pode chegar a 2 segundos. h = dht.readHumidity(); t = dht.readTemperature(); //---------------------------------------------------------- Para a leitura dos botões ------------------------------------------------------// LeituraBotoes = analogRead(A2); Serial.println(LeituraBotoes); Serial.println(CliquesBotaoSelect); //--------------------------------------------------------- Variáveis para a leitura do LDR --------------------------------------------------// LeituraLDR = analogRead(A1); //-------------------------------------------- Incremento de variáveis a cada clique do botão SELECT -----------------------------------------// if(LeituraBotoes >= 714 && LeituraBotoes <= 722 && Para == 0){ Para = 1; } if(LeituraBotoes >= 1000 && Para == 1){ CliquesBotaoSelect++; Para = 0; } //------------------------------------------------------------------ Primeira Tela ------------------------------------------------------------// if (CliquesBotaoSelect == 0){ //Limpa a tela lcd.clear(); // C L lcd.setCursor(0, 0); lcd.print("L1"); // C L lcd.setCursor(7, 0); lcd.print("L2"); // C L lcd.setCursor(14, 0); lcd.print("L3"); // C L lcd.setCursor(0, 1); lcd.print("D"); // C L lcd.setCursor(7, 1); lcd.print("D"); // C L lcd.setCursor(14, 1); lcd.print("D"); //-------------------------------------------- Incremento de variáveis a cada clique do botão LEFT -----------------------------------------// if(LeituraBotoes >= 474 && LeituraBotoes <= 482 && Para2 == 0){ Para2 = 1; } if(LeituraBotoes >= 1000 && Para2 == 1){ CliquesBotaoLEFT++; Para2 = 0; } //-------------------------------------------- Incremento de variáveis a cada clique do botão UP -----------------------------------------// if(LeituraBotoes >= 127 && LeituraBotoes <= 135 && Para3 == 0){ Para3 = 1; } if(LeituraBotoes >= 1000 && Para3 == 1){ CliquesBotaoUP++; Para3 = 0; } //-------------------------------------------- Incremento de variáveis a cada clique do botão Down -----------------------------------------// if(LeituraBotoes >= 302 && LeituraBotoes <= 310 && Para4 == 0){ Para4 = 1; } if(LeituraBotoes >= 1000 && Para4 == 1){ CliquesBotaoDown++; Para4 = 0; } if (CliquesBotaoLEFT == 1 ){ digitalWrite(Rele1,LOW ); // C L lcd.setCursor(0, 1); lcd.print("L"); } if (CliquesBotaoLEFT == 2 ){ digitalWrite(Rele1,HIGH ); // C L lcd.setCursor(0, 1); lcd.print("D"); CliquesBotaoLEFT = 0; } if (CliquesBotaoUP == 1 ){ digitalWrite(Rele2,LOW ); // C L lcd.setCursor(7, 1); lcd.print("L"); } if (CliquesBotaoUP == 2 ){ digitalWrite(Rele2,HIGH ); CliquesBotaoUP = 0; } if (CliquesBotaoDown == 1 ){ digitalWrite(Rele3,LOW ); // C L lcd.setCursor(14, 1); lcd.print("L"); } if (CliquesBotaoDown == 2 ){ digitalWrite(Rele3,HIGH ); CliquesBotaoDown = 0; } delay(50);//Tempo para a exibição no display não ficar falhada. } //------------------------------------------------------------------ Segunda Tela------------------------------------------------------------// if (CliquesBotaoSelect == 1){ //Limpa a tela lcd.clear(); //Posiciona o cursor na coluna 3, linha 0; lcd.setCursor(0, 0); //Envia o texto entre aspas para o LCD lcd.print("Temp.:"); lcd.setCursor(1, 1); lcd.print(h); lcd.setCursor(4, 1); lcd.print("C"); lcd.setCursor(8, 0); lcd.print("Umidade:"); lcd.setCursor(10, 1); lcd.print(t); lcd.setCursor(13, 1); lcd.print("%"); delay(50); } //------------------------------------------------------------------ Terceira Tela------------------------------------------------------------// if (CliquesBotaoSelect == 2){ //-------------------------------------------- Incremento de variáveis a cada clique do botão UP para o Auxiliar de Down -----------------------------------------// if(LeituraBotoes >= 127 && LeituraBotoes <= 135 && Para5 == 0){ Para5 = 1; } if(LeituraBotoes >= 1000 && Para5 == 1){ CliquesBotaoUPAuxiliar++; Para5 = 0; } //-------------------------------------------- Incremento de variáveis a cada clique do botão Down para o Auxiliar de Down -----------------------------------------// if(LeituraBotoes >= 302 && LeituraBotoes <= 310 && Para6 == 0){ Para6 = 1; } if(LeituraBotoes >= 1000 && Para6 == 1){ CliquesBotaoDownAuxiliar++; Para6 = 0; } //Limpa a tela lcd.clear(); // C L lcd.setCursor(0, 0); lcd.print("Fechadura"); if( LeituraBotoes >= 127 && LeituraBotoes <= 135){ CliquesBotaoDownAuxiliar = 0; } if (AnguloServo == 0){ // C L lcd.setCursor(0, 1); lcd.print("FECHADA"); } if (AnguloServo == 180){ // C L lcd.setCursor(0, 1); lcd.print("ABERTA"); } if (CliquesBotaoUPAuxiliar == 1 ){ AnguloServo = 180; myservo.write(AnguloServo); CliquesBotaoUPAuxiliar = 0; } if( LeituraBotoes >= 302 && LeituraBotoes <= 310){ CliquesBotaoUPAuxiliar = 0; } if (CliquesBotaoDownAuxiliar == 1 ){ AnguloServo = 0; myservo.write(AnguloServo); CliquesBotaoDownAuxiliar = 0; } delay(50); } //------------------------------------------------------------------ Quarta Tela------------------------------------------------------------// if (CliquesBotaoSelect == 3){ //Limpa a tela lcd.clear(); // C L lcd.setCursor(0, 0); lcd.print("Nivel U.V"); if (LeituraLDR < 666){ // C L lcd.setCursor(0, 1); lcd.print("Baixo"); } if (LeituraLDR >= 666 && LeituraLDR < 999){ // C L lcd.setCursor(0, 1); lcd.print("Medio"); } if (LeituraLDR >= 999){ // C L lcd.setCursor(0, 1); lcd.print("Alto"); } delay(50); } if (CliquesBotaoSelect == 4){ CliquesBotaoSelect = 0; } }
//***** Display LCD e Arduino *****// //Carrega a biblioteca LiquidCrystal #include
//Define os pinos que serão utilizados para ligação ao display LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { //Define o número de colunas e linhas do LCD lcd.begin(16, 2); } void loop() { //Limpa a tela lcd.clear(); //Posiciona o cursor na coluna 3, linha 0; lcd.setCursor(3, 0); //Envia o texto entre aspas para o LCD lcd.print("Arduino LCD"); lcd.setCursor(3, 1); lcd.print(" LCD 16x2"); delay(5000); //Rolagem para a esquerda for (int posicao = 0; posicao < 3; posicao++) { lcd.scrollDisplayLeft(); delay(300); } //Rolagem para a direita for (int posicao = 0; posicao < 6; posicao++) { lcd.scrollDisplayRight(); delay(300); } }
//***** Leitura Analógica display LCD, Potenciomentro e Arduino *****// //Carrega a biblioteca LiquidCrystal #include
//Define os pinos que serão utilizados para ligação ao display LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int LeituraAnalogica = 0; void setup() { //Define o número de colunas e linhas do LCD lcd.begin(16, 2); } void loop() { LeituraAnalogica = analogRead(A0); //Limpa a tela lcd.clear(); //Posiciona o cursor na coluna 3, linha 0; lcd.setCursor(0, 0); //Envia o texto entre aspas para o LCD lcd.print("Valor Pot:"); lcd.setCursor(0, 1); lcd.print(LeituraAnalogica); delay(10); }
/**** Trena ultrassonica com display lcd Arduino****/ //Carrega a biblioteca LiquidCrystal #include
//Incluindo biblioteca Ultrasonic.h #include "Ultrasonic.h" //criando objeto ultrasonic e definindo as portas digitais //do Trigger - 6 - e Echo - 7 Ultrasonic ultrasonic(6,7); long microsec = 0; float distanciaCM = 0; //Define os pinos que serão utilizados para ligação ao display LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { //Define o número de colunas e linhas do LCD lcd.begin(16, 2); } void loop() { //Lendo o sensor microsec = ultrasonic.timing(); //Convertendo a distância em CM distanciaCM = ultrasonic.convert(microsec, Ultrasonic::CM); //Limpa a tela lcd.clear(); //Posiciona o cursor na coluna 3, linha 0; lcd.setCursor(0, 0); //Envia o texto entre aspas para o LCD lcd.print("Trena Ultasom:"); lcd.setCursor(3, 1); lcd.print(distanciaCM); lcd.setCursor(12, 1); lcd.print("CM"); delay(500); }
/**** Medidor de temperatura e umidade sensor DHT-11 LCD Arduino****/ #include "DHT.h" #define DHTPIN A1 // pino que estamos conectado #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); //Carrega a biblioteca LiquidCrystal #include
//Define os pinos que serão utilizados para ligação ao display LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { dht.begin(); //Define o número de colunas e linhas do LCD lcd.begin(16, 2); } void loop() { // A leitura da temperatura e umidade pode levar 250ms! // O atraso do sensor pode chegar a 2 segundos. int h = dht.readHumidity(); int t = dht.readTemperature(); // testa se retorno é valido, caso contrário algo está errado. if (isnan(t) || isnan(h)) { lcd.setCursor(0, 0); lcd.print("Failed to read from DHT"); } else { //Limpa a tela lcd.clear(); //Posiciona o cursor na coluna 3, linha 0; lcd.setCursor(0, 0); //Envia o texto entre aspas para o LCD lcd.print("Temp.:"); lcd.setCursor(1, 1); lcd.print(h); lcd.setCursor(4, 1); lcd.print("C"); lcd.setCursor(8, 0); lcd.print("Umidade:"); lcd.setCursor(10, 1); lcd.print(t); lcd.setCursor(13, 1); lcd.print("%"); delay(10); } }
Página inicial
Assinar:
Postagens (Atom)