sou leigo nessa área podem me informar o q esta errado nesse diagrama? não conciso programar para ligar e desligar + d um Led, já modifiquei ela varias x e não conciso encontrar o problema...

#include <SoftwareSerial.h>

SoftwareSerial bt(53 , 52); // TX  RX
int led = 13;
 int caractere1;
int rele = 12;
 int caractere2;

void setup() {
  bt.begin(9600);
  pinMode(led, OUTPUT);
  bt.begin(9600);
  pinMode(rele, OUTPUT);
}

void loop() {
  if (bt.available()) {
    caractere1 = bt.read();
    if (caractere1 == '1') {
      digitalWrite(led, HIGH);
      bt.println("OK, led ligado."); // led 13
  if (bt.available()) {    
    caractere2 = bt.read();
    if (caractere2 == '3'){
      digitalWrite(rele, HIGH);
      bt.println("OK, rele ligado."); // rele 12
    }
   }
    }
    if (caractere1 == '2') {
      digitalWrite(led, LOW);
      bt.println("OK, led desligado."); // led 13
    if (caractere2 == '4'){
      digitalWrite(rele, LOW);
      bt.println("OK, rele desligado."); // rele 12
    }
    }
  }
 delay(100);
  }

Exibições: 220

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

Respostas a este tópico

A questao é que vc precisa ver se vem algum caracter e ler ESSE caractere, no singular. 2 pontos de entrada da serial não fazem sentido, só um pode funcionar de cada vez. Ainda, vc fez uma confusão danada como os colchetes. Eh preciso entender a função deles. Para facilitar vc pode usar o comando de Ferramentas/Autoformataçao e depois parar o cursos logo depois de um, aih vc ve qual outro fica com um segundo cursor, assim vc entende os loops melhor.


#include <SoftwareSerial.h>

SoftwareSerial bt(53 , 52); // TX RX
byte led = 13;
byte caractere;
byte rele = 12;

void setup() {
bt.begin(9600);
pinMode(led, OUTPUT);
bt.begin(9600);
pinMode(rele, OUTPUT);
}

void loop() {
if (bt.available()) {
caractere = bt.read();
if (caractere == '1') {
digitalWrite(led, HIGH);
bt.println("OK, led ligado.");
} // led 13
if (caractere == '2') {
digitalWrite(led, LOW);
bt.println("OK, led desligado.");
} // led 13
if (caractere == '3'){
digitalWrite(rele, HIGH);
bt.println("OK, rele ligado."); // rele 12
}
if (caractere == '4'){
digitalWrite(rele, LOW);
bt.println("OK, rele desligado."); // rele 12
}
}
}

 

Vlw, muito obrigado, bom realmente e como vc disse, mas expliquei de forma errada, o q eu quis dizer, e que eu gostaria de acionar varias portas através do Bluetooth, sendo uma de cada vez, tmb agradeço sobre o toque de funcionamento dos colchetes e sobre a auto formatação. Obrigado mesmo....!!!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço