Olá galera, preciso de ajuda para terminar este projeto. Gostaria que 6 relés sejam ligados e desligados sozinho, conforme abaixo:

relé 1 - ligar e desligar sozinho após 15 segundos (baixar os vidros)

relé 2 - ligar e desligar sozinho após 15 segundos (levantar os vidros)

relé 3 - ligar e desligar sozinho após 2 segundos (ligar o motor)

relé 4 - ligar e desligar sozinho após 1 segundo (abrir a porta)

relé 5 - ligar e desligar sozinho após 1 segundo (fechar a porta)

relé 6 - ligar e desligar sozinho  após 1 segundo (abrir a mala)

relé 7 - liga e desliga normalmente (ON/OFF) alimenta a ignição (painel)

relé 8 - liga e desliga normalmente (ON/OFF) - alimenta o rádio

Nota: Só consegui temporizar o último relé, como fazer com os demais?

Segue abaixo o projeto para alteração:

====================================================================

#include <SoftwareSerial.h> //Inlcui a biblioteca SoftwareSerial.h


#define RxD 0 //Define RxD como 0
#define TxD 1 //Define TxD como 1


#define RELE 1 2
#define RELE 2 3
#define RELE 4 4
#define RELE 5 5
#define RELE 6 6
#define RELE 7 7
#define RELE 8 8
#define RELE 9 9


SoftwareSerial blueToothSerial(RxD,TxD); //Instância a biblioteca SoftwareSerial.h


void setup()
{

pinMode(2, OUTPUT); //Configura o pino 2 como saída
pinMode(3, OUTPUT); //Configura o pino 3 como saída
pinMode(4, OUTPUT); //Configura o pino 4 como saída
pinMode(5, OUTPUT);//Configura o pino 5 como saída
pinMode(6, OUTPUT);//Configura o pino 6 como saída
pinMode(7, OUTPUT);//Configura o pino 7 como saída
pinMode(8, OUTPUT);//Configura o pino 8 como saída
pinMode(9, OUTPUT);//Configura o pino 9 como saída

parear_dispositivo(); //Executa a função para parear o dispositivo
}

void loop()
{
char letra; //Variável char para armazenar o caractere recebido

if(blueToothSerial.available()) //Se algo for recebido pela serial do módulo bluetooth
{
letra = blueToothSerial.read(); 

if(letra == 'A') digitalWrite(2, HIGH); 
else if(letra == 'a') digitalWrite(2, LOW); 
else if(letra == 'B') digitalWrite(3, HIGH);
else if(letra == 'b') digitalWrite(3, LOW); 
else if(letra == 'C') digitalWrite(4, HIGH); 
else if(letra == 'c') digitalWrite(4, LOW); 
else if(letra == 'D') digitalWrite(5, HIGH);
else if(letra == 'd') digitalWrite(5, LOW);
else if(letra == 'E') digitalWrite(6, HIGH);
else if(letra == 'e') digitalWrite(6, LOW);
else if(letra == 'F') digitalWrite(7, HIGH);
else if(letra == 'f') digitalWrite(7, LOW);
else if(letra == 'G') digitalWrite(8, HIGH);
else if(letra == 'g') digitalWrite(8, LOW);
else if(letra == 'H') digitalWrite(9, HIGH);
delay(2000);
digitalWrite(9, LOW);
}
}


void parear_dispositivo()
{
blueToothSerial.begin(9600); // Configura o baud rate do bluetooth como 9600
blueToothSerial.print("\r\n+STWMOD=0\r\n"); // Configura o módulo bluetooth para trabalhar como slave
blueToothSerial.print("\r\n+STNA=SeedBTShield\r\n"); // Configura o nome do disopsitivo bluetooth
blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permite que outros dispositivos encontrem o módulo bluetooth
blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Desabilita a auto conexão
delay(2000); // Aguarda 2 segundos
blueToothSerial.print("\r\n+INQ=1\r\n"); // Habilita modo de paridade
delay(2000); // Aguarda 2 segundos
blueToothSerial.flush(); // Dá um flush na serial do módulo bluetooth
}

Exibições: 563

As respostas para este tópico estão encerradas.

Respostas a este tópico

vc tem q fazer o delay pra cada um assim

if(letra == 'A') digitalWrite(2, HIGH); 

{

delay(2000);

}

e assim tb para todos

Obrigado amigo, mas havia tentado assim e ficou lento as respostas, poderia me dizer como ficar mais rápido.

#include <SoftwareSerial.h> //Inlcui a biblioteca SoftwareSerial.h


#define RxD 0 //Define RxD como 0
#define TxD 1 //Define TxD como 1


#define RELE 1 4
#define RELE 2 5
#define RELE 3 6
#define RELE 4 7

SoftwareSerial blueToothSerial(RxD,TxD); //Instância a biblioteca SoftwareSerial.h


void setup()
{

pinMode(4, OUTPUT); //Configura o pino 4 como saída
pinMode(5, OUTPUT);//Configura o pino 5 como saída
pinMode(6, OUTPUT);//Configura o pino 6 como saída
pinMode(7, OUTPUT);//Configura o pino 7 como saída

parear_dispositivo(); //Executa a função para parear o dispositivo
}
void loop()
{
char letra; //Variável char para armazenar o caractere recebido
if(blueToothSerial.available()) //Se algo for recebido pela serial do módulo bluetooth
{
letra = blueToothSerial.read(); //Armazena o caractere recebido na variável letra
if(letra == 'A') digitalWrite(4, HIGH); //Se o caractere recebido for a letra A, liga o LED Amarelo
if(letra == 'a') digitalWrite(4, LOW); //Senão se o caractere recebido for a letra a, desliga o LED Amarelo
{
delay(2000);
digitalWrite(4, LOW);
}
if(letra == 'B') digitalWrite(5, HIGH);//Senão se o caractere recebido for a letra B, liga o LED Vermelho
if(letra == 'b') digitalWrite(5, LOW); //Senão se o caractere recebido for a letra b, delisga o LED Vermelho
{
delay(2000);
digitalWrite(5, LOW);
}
if(letra == 'C') digitalWrite(6, HIGH); //Senão se o caractere recebido for a letra C, liga a Lâmpada
if(letra == 'c') digitalWrite(6, LOW); //Senão se o caractere recebido for a letra c, desliga a Lâmpada
if(letra == 'D') digitalWrite(7, HIGH);
if(letra == 'd') digitalWrite(7, LOW);
delay(2000);
digitalWrite(7, LOW);
}
}

void parear_dispositivo()
{
blueToothSerial.begin(9600); // Configura o baud rate do bluetooth como 9600
blueToothSerial.print("\r\n+STWMOD=0\r\n"); // Configura o módulo bluetooth para trabalhar como slave
blueToothSerial.print("\r\n+STNA=SeedBTShield\r\n"); // Configura o nome do disopsitivo bluetooth
blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permite que outros dispositivos encontrem o módulo bluetooth
blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Desabilita a auto conexão
delay(2000); // Aguarda 2 segundos
blueToothSerial.print("\r\n+INQ=1\r\n"); // Habilita modo de paridade
delay(2000); // Aguarda 2 segundos
blueToothSerial.flush(); // Dá um flush na serial do módulo bluetooth
}

amigo seu codigo ta tudo errado

vc entendeu realmente o sentido do delay e como aplica-lo? 

se nao incentivo q vc estude um pouco mais a linguagem de programaçao para entender 

mas todo caso vai ai o programa corrigido mas com delay de 2 segundos em todas as funçoes caso queira mudar eh so mudar o valor dentro dos ( ) 

#include <SoftwareSerial.h> //Inlcui a biblioteca SoftwareSerial.h

#define RxD 0 //Define RxD como 0
#define TxD 1 //Define TxD como 1

#define RELE 1 4
#define RELE 2 5
#define RELE 3 6
#define RELE 4 7

SoftwareSerial blueToothSerial(RxD,TxD); //Instância a biblioteca SoftwareSerial.h

void setup()
{
pinMode(4, OUTPUT); //Configura o pino 4 como saída
pinMode(5, OUTPUT);//Configura o pino 5 como saída
pinMode(6, OUTPUT);//Configura o pino 6 como saída
pinMode(7, OUTPUT);//Configura o pino 7 como saída

parear_dispositivo(); //Executa a função para parear o dispositivo
}
void loop()
{
char letra; //Variável char para armazenar o caractere recebido
if(blueToothSerial.available()) //Se algo for recebido pela serial do módulo bluetooth
{
letra = blueToothSerial.read(); //Armazena o caractere recebido na variável letra
if(letra == 'A')
{
delay(2000);
digitalWrite(4, HIGH); //Se o caractere recebido for a letra A, liga o LED Amarelo
}
if(letra == 'a')
{
digitalWrite(4, LOW); //Senão se o caractere recebido for a letra a, desliga o LED Amarelo
}
if(letra == 'B')
{
delay (2000);
digitalWrite(5, HIGH);//Senão se o caractere recebido for a letra B, liga o LED Vermelho
}
if(letra == 'b')
{
digitalWrite(5, LOW); //Senão se o caractere recebido for a letra b, delisga o LED Vermelho
}
if(letra == 'C')
{
delay(2000);
digitalWrite(6, HIGH); //Senão se o caractere recebido for a letra C, liga a Lâmpada
}
if(letra == 'c')
{
digitalWrite(6, LOW); //Senão se o caractere recebido for a letra c, desliga a Lâmpada
}
if(letra == 'D')
{
delay(2000);
digitalWrite(7, HIGH);
}
if(letra == 'd')
{
digitalWrite(7, LOW);
}
}
}
void parear_dispositivo()
{
blueToothSerial.begin(9600); // Configura o baud rate do bluetooth como 9600
blueToothSerial.print("\r\n+STWMOD=0\r\n"); // Configura o módulo bluetooth para trabalhar como slave
blueToothSerial.print("\r\n+STNA=SeedBTShield\r\n"); // Configura o nome do disopsitivo bluetooth
blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permite que outros dispositivos encontrem o módulo bluetooth
blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Desabilita a auto conexão
delay(2000); // Aguarda 2 segundos
blueToothSerial.print("\r\n+INQ=1\r\n"); // Habilita modo de paridade
delay(2000); // Aguarda 2 segundos
blueToothSerial.flush(); // Dá um flush na serial do módulo bluetooth
}

Obrigado José pela ajuda, realmente estou iniciando no assunto, mas vou testar esse enviado por vc.

blz vendo agr eu q escrevi errado la em cima kkkkk

so uma pergunta o rele do vidro vc colocou 15s pq vc acha q precisa ficar em nivel logico alto por esse tempo para temporizar o vidro?

pq se vc der um pulso rapido no fio do modulo de vidro ele ja temporiza sozinho

e vendo agr entendi o q vc precisa com relaçao ao tempo seria assim

#include <SoftwareSerial.h> //Inlcui a biblioteca SoftwareSerial.h

#define RxD 0 //Define RxD como 0
#define TxD 1 //Define TxD como 1

#define RELE 1 4
#define RELE 2 5
#define RELE 3 6
#define RELE 4 7

SoftwareSerial blueToothSerial(RxD,TxD); //Instância a biblioteca SoftwareSerial.h

void setup()
{
pinMode(4, OUTPUT); //Configura o pino 4 como saída
pinMode(5, OUTPUT);//Configura o pino 5 como saída
pinMode(6, OUTPUT);//Configura o pino 6 como saída
pinMode(7, OUTPUT);//Configura o pino 7 como saída

parear_dispositivo(); //Executa a função para parear o dispositivo
}
void loop()
{
char letra; //Variável char para armazenar o caractere recebido
if(blueToothSerial.available()) //Se algo for recebido pela serial do módulo bluetooth
{
letra = blueToothSerial.read(); //Armazena o caractere recebido na variável letra
if(letra == 'A')
{
digitalWrite(4, HIGH); //Se o caractere recebido for a letra A, liga o LED Amarelo
delay(2000);
digitalWrite(4, LOW); //Senão se o caractere recebido for a letra a, desliga o LED Amarelo
}
if(letra == 'B')
{
digitalWrite(5, HIGH);//Senão se o caractere recebido for a letra B, liga o LED Vermelho
delay (2000);
digitalWrite(5, LOW); //Senão se o caractere recebido for a letra b, delisga o LED Vermelho
}
if(letra == 'C')
{
digitalWrite(6, HIGH); //Senão se o caractere recebido for a letra C, liga a Lâmpada
delay (2000);
digitalWrite(6, LOW); //Senão se o caractere recebido for a letra c, desliga a Lâmpada
}
if(letra == 'D')
{
digitalWrite(7, HIGH);
delay (2000);
digitalWrite(7, LOW);
}
}
}
void parear_dispositivo()
{
blueToothSerial.begin(9600); // Configura o baud rate do bluetooth como 9600
blueToothSerial.print("\r\n+STWMOD=0\r\n"); // Configura o módulo bluetooth para trabalhar como slave
blueToothSerial.print("\r\n+STNA=SeedBTShield\r\n"); // Configura o nome do disopsitivo bluetooth
blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permite que outros dispositivos encontrem o módulo bluetooth
blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Desabilita a auto conexão
delay(2000); // Aguarda 2 segundos
blueToothSerial.print("\r\n+INQ=1\r\n"); // Habilita modo de paridade
delay(2000); // Aguarda 2 segundos
blueToothSerial.flush(); // Dá um flush na serial do módulo bluetooth
}

quando recebido o caracter ele temporiza por 2 segundos e dps muda o nivel logico

se tiver duvidas sou eletricista de autos tb

abraço!

Isso mesmo, agora ficou show. muito obrigado, como estou começando espero contar com vc nas dúvidas. abs

Prezado José, muito obrigado pela ajuda, pois consegui resolver meu problema, com a lógica que vc me passou eu consegui resolver tudo. Um forte abraço e obrigado, quando eu puder  retribuí-lo terei o maior  prazer.  Segue abaixo como ficou:

#include <SoftwareSerial.h> //Inlcui a biblioteca SoftwareSerial.h

#define RxD 0 //Define RxD como 0
#define TxD 1 //Define TxD como 1

#define RELE 1 4
#define RELE 2 5
#define RELE 3 6
#define RELE 4 7

SoftwareSerial blueToothSerial(RxD,TxD); //Instância a biblioteca SoftwareSerial.h

void setup()
{
pinMode(4, OUTPUT); //Configura o pino 4 como saída
pinMode(5, OUTPUT);//Configura o pino 5 como saída
pinMode(6, OUTPUT);//Configura o pino 6 como saída
pinMode(7, OUTPUT);//Configura o pino 7 como saída

parear_dispositivo(); //Executa a função para parear o dispositivo
}
void loop()
{
char letra; //Variável char para armazenar o caractere recebido
if(blueToothSerial.available()) //Se algo for recebido pela serial do módulo bluetooth
{
letra = blueToothSerial.read(); //Armazena o caractere recebido na variável letra
if(letra == 'A')
{
digitalWrite(4, HIGH); //Se o caractere recebido for a letra A, liga o LED Amarelo
delay(2000);
digitalWrite(4, LOW);
}
// if(letra == 'a') // não vou usar
{
digitalWrite(4, LOW); //Senão se o caractere recebido for a letra a, desliga o LED Amarelo
}
if(letra == 'B')
{
digitalWrite(5, HIGH);//Senão se o caractere recebido for a letra B, liga o LED Vermelho
delay (2000);
digitalWrite(5, LOW);
}
//if(letra == 'b')//não vou usar
{
// digitalWrite(5, LOW); //Senão se o caractere recebido for a letra b, delisga o LED Vermelho
}
if(letra == 'C')
{
digitalWrite(6, HIGH); //Senão se o caractere recebido for a letra C, liga a Lâmpada
}
if(letra == 'c')
{
digitalWrite(6, LOW); //Senão se o caractere recebido for a letra c, desliga a Lâmpada
}
if(letra == 'D')
{

digitalWrite(7, HIGH);
delay(2000);
digitalWrite(7, LOW);
}
// if(letra == 'd')
{
//digitalWrite(7, LOW); //(não vou usar
}
}
}
void parear_dispositivo()
{
blueToothSerial.begin(9600); // Configura o baud rate do bluetooth como 9600
blueToothSerial.print("\r\n+STWMOD=0\r\n"); // Configura o módulo bluetooth para trabalhar como slave
blueToothSerial.print("\r\n+STNA=SeedBTShield\r\n"); // Configura o nome do disopsitivo bluetooth
blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permite que outros dispositivos encontrem o módulo bluetooth
blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Desabilita a auto conexão
delay(2000); // Aguarda 2 segundos
blueToothSerial.print("\r\n+INQ=1\r\n"); // Habilita modo de paridade
delay(2000); // Aguarda 2 segundos
blueToothSerial.flush(); // Dá um flush na serial do módulo bluetooth
}

Vc vai controlar através do que ? Pela rede , Internet? Bluetooth nao entendi para que ele serve
Mole eu por coincidência tenho o programa de casa inteligente queprovavelmente vai servir só vc fazer o delay correto, seu código ta mto grande e embolado vou te passar um código amanhã moleza, já tem o modulo para transformar em 12v e acionar os relés? Se não tiver eu te passo o circuito sou projetista eletrônico tbm

Valeu meu amigo. Abraço e boa noite. Se puder hoje, te agradeço.

Leonardo, assim que puder me passe os códigos por favor por e-mail:

rodney_hertz@hotmail.com

abs

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço