Boa tarde pessoal, estou com o seguinte problema no Projeto de TCC!

Detalhar ao máximo para tentar ficar mais claro o entendimento!

Componentes do projeto.:

1 Potênciometro 10k

1 LCD 16x2

1 Módulo 8 relés

1 Lâmpada 220v

5 leds 

2 Coolers exaustores de gabinete

1 Teclado Matricial 12 teclas

1 Sensor MQ2 de Gás e Fumaça

1 Servo motor 9g

1 Arduino Mega Rev3

A ideia do projeto é criar um dispositivo de segurança para ambientes fechados!

Pois bem...

Entro com a senha correta no dispositivo, então liga lâmpada 220v indicando que status e ambiente seguro! Caso o valor de leitura do sensor mq2 seja maior que um nível determinado, será acionados os exaustores, leds de emergência e o servo.

Para voltar ao estado inicial tenho q resetar o arduino. 

Meu problema está em acionar o módulo de relés, onde está ligado a lâmpada e os coolers, ele simplesmente não aciona nada, mas testo com o blink ele está normal!

Segue o código:

#include <Keypad.h>
#include <LiquidCrystal.h>
#include <Servo.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {8, 7, 6, 5}; //em ordem: linha1, linha2, linha3, linha4
byte colPins[COLS] = {4, 3, 2}; //em ordem: coluna 1, coluna 2, coluna 3,

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
LiquidCrystal lcd(53, 51, 49, 47, 45, 43);
int contador = 0;
int sensorValue;
int leitura,stats=0;

Servo servo;
int lampada = 12;
int exaustor1 = 11;
int exaustor2 = 10;
int led1 = 30;
int led2 = 31;
int led3 = 32;
int led4 = 33;
int led5 = 34;
char senha [] = {'2','5','4','3','\0'};
char teste[] = {'0','0','0','0','\0'};

void setup()
{
lcd.begin(16, 2);

Serial.begin(9600);
servo.attach(13);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(lampada,OUTPUT);
pinMode(lampada,LOW);
pinMode(exaustor1,OUTPUT);
pinMode(exaustor1,LOW);
pinMode(exaustor2,OUTPUT);
pinMode(exaustor2,LOW);
sys_on();
}
void loop()
{
char key = keypad.getKey();
if(key == '*')
{
limpaLinha(1);
contador=0;
}
else if(key)
{
lcd.setCursor(0,0);
lcd.print("DIGITE A SENHA:");
lcd.setCursor(contador,1);
lcd.print('*');
delay(500);
teste[contador] = key;
contador++;

}

if(contador == 4)
{
teste[contador] = '\0';
if ((teste[1]== senha[1]) && (teste[2] == senha[2]) && (teste[3] == senha[3]) && (teste[4] == senha[4]))
{
lcd.clear();
lcd.print(" SENHA CORRETA!");
delay(2000);
contador = 0;
digitalWrite(lampada,HIGH);
sensor_read();
stats ++;

}
else
{

lcd.clear();
lcd.print("SENHA INCORRETA");
delay(2000);
contador = 0;
lcd.clear();
lcd.print("DIGITE A SENHA:");
}
}
if(stats == 1)
{
digitalWrite(lampada,HIGH);
sensor_read();
while(sensorValue >= 300)
{
lcd.setCursor(0,0);
lcd.clear();
lcd.print("MEDIDA PREVENCAO");
sensor_read();
digitalWrite(lampada,LOW);
digitalWrite(exaustor1,HIGH);
digitalWrite(exaustor2,HIGH);

ledemergencia();

abreporta();

ledemergencia();
}

if(sensorValue < 300)
{
lcd.setCursor(0,0);
lcd.clear();
lcd.print("AMBIENTE SEGURO!");

digitalWrite(lampada,HIGH);
digitalWrite(exaustor1,LOW);
digitalWrite(exaustor2,LOW);

ledsoff();

sensor_read();
}
}
}

Exibições: 683

Responder esta

Respostas a este tópico

Talvez o arduino não tem energia suficiente para sustentar todo o circuito, por isso, aconselho usar alimentação externa para os reles. 

Posta a foto do projeto para analisarmos o erro

é, problema de alimentação de energia mesmo! Valeu Murilo Nogueira!

Que belaza, fico muito feliz em ter te ajudado

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço