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
}
Tags:
As respostas para este tópico estão encerradas.
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
}
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por