Boa tarde pessoal, estou usando um modulo bluetooth para acionar dois ledes o codigo está funcionando
normal com 2 botoes do tipo retentivo, porem gostaria de deixar um botão para pulsar dar um pulso de 3 segundos
mas não ta dando certo, estou usando a seginte logica
//BOTÃO DE RETENÇÃO

if( val == '1' ) {
digitalWrite(Lamp1,HIGH); }
else if( val == 'A' ) {
digitalWrite(Lamp1,LOW);
}
//BOTÃO PULSADOR
if( val == '2' ) {
digitalWrite(Lamp2,HIGH);
delay(3000);
digitalWrite(Lamp2,LOW);}
else if( val == 'B' ) {
digitalWrite(Lamp2,LOW);
}

Estou usando esse app
https://play.google.com/store/apps/details?id=dev.merahkemarun.ardu...

Exibições: 1123

Responder esta

Respostas a este tópico

poderia explicar melhor o que você quer fazer?

eu to fazendo um aqui pra você, me explica uma coisa, não entendi aquele "A" e "B" que tem ali.

ok ja te passo um codigo aki e vc da uma olhada.

quando você aperta um dos botões, o resultado é um numero ou uma letra? não entendi esta parte.

Nesse código que você colocou não há definição de botão ou leitura de pinos, você deve usar a função digitalRead().

Os botões com retenção, são obrigatórios ou você pode trocar?

É um botão virtual ou físico?

ve se funciona. eu levei em conta que quando ao pressionar o botao do app o resultado seja "1" ou "2" . não sei se vai funcionar

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); //Pin10 RX , Pin 11 TX connected to--> Bluetooth TX,RX

unsigned long comparativo1 = 0;
unsigned long comparativo2 = 0;
unsigned long intervalo = 3L * 1000L;

#define Lamp1 2
#define Lamp2 3

char val;
void setup() {
pinMode(Lamp1,OUTPUT);
pinMode(Lamp2,OUTPUT);

mySerial.begin(9600);
Serial.begin(9600);
}

void loop() {
  unsigned long tempo = millis();
//cek data serial from bluetooth android App
if( mySerial.available() >0 ) {
val = mySerial.read();
Serial.println(val);
}


if( val == '1' ) {
  comparativo1=tempo;
  digitalWrite(Lamp1,HIGH);}

if( val == '2' ) {
  comparativo2=tempo;
digitalWrite(Lamp2,HIGH);}

if (tempo - comparativo1 > intervalo){
  digitalWrite(Lamp1,LOW);
  }

if (tempo - comparativo2 > intervalo){
  digitalWrite(Lamp2,LOW);}
 
}

/*

if( val == '1' ) {
digitalWrite(Lamp1,HIGH); }
else if( val == 'A' ) {
digitalWrite(Lamp1,LOW);
}

 if( val == '2' ) {
digitalWrite(Lamp2,HIGH);}
else if( val == 'B' ) {
digitalWrite(Lamp2,LOW);
}
*/





Segue minha colaboração:

#include <SoftwareSerial.h>

SoftwareSerial bluetooth(10, 11);

#define Lamp1 2
#define Lamp2 3

char comando;

void setup() {
pinMode(Lamp1, OUTPUT);
pinMode(Lamp2, OUTPUT);

bluetooth.begin(9600);
Serial.begin(9600);
}

void loop() {

if ( bluetooth.available()) {
comando = bluetooth.read();

Serial.println(comando);

if (comando == '1' ) {
digitalWrite(Lamp1, !digitalRead(Lamp1));
}

if (comando == '2' ) {
digitalWrite(Lamp2, HIGH);
delay(3000);
digitalWrite(Lamp2, LOW);
}

}
}

// Deixei tbm no pastebin

http://pastebin.com/hCiinbup

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço