Tenho esse Código, mas não consigo entender o motivo de não funcionar(ativar led)

#include <SoftwareSerial.h>
int led = 13;
int caracter;
SoftwareSerial MinhaSerial(6,7);

void setup() {
Serial.begin(19200);
pinMode(led, OUTPUT);
Serial.println("Digite o comando");

}

void loop() {
    if (MinhaSerial.available())
{
        caracter = MinhaSerial.read();
}
   if(caracter == 'a')
{
          Serial.print(caracter);
          digitalWrite(led, HIGH);
          Serial.print("led alto");
} else
      if(caracter == 'b')
{
      digitalWrite(led, LOW);
      Serial.print("led baixo");
}
delay(1000);
}

 

Exibições: 343

Responder esta

Respostas a este tópico

Boa tarde amigo DO, tente o seguinte:

int caracter; // use char em vez de int

Bons projetos!!!

Pelo monitor serial, funciona.

Agora quando eu mando do celular/bluetooth não funciona

Boa tarde amigo DO, tente adicionar isso no setup tbm:

MinhaSerial.begin(9600); // ela define o baud rate da biblioteca softserial

veja se funciona...

Boa tarde, Romario... Alterei ficou dessa forma, mesmo assim não recebe o comando via bluetooth, só recebe via monitor serial.

#include <SoftwareSerial.h>
  int led = 13;
  char caracter;
  SoftwareSerial MinhaSerial(6,7);
      void setup() {  
            Serial.begin(19200);
            pinMode(led, OUTPUT);

            MinhaSerial.begin(9600);

}

            void loop() {
            Serial.println("Digite o comando");
            caracter = Serial.read();

if(caracter == 'a')
{
Serial.print(caracter);
digitalWrite(led, HIGH);
Serial.print("led alto");
} else
if(caracter == 'b')
{
digitalWrite(led, LOW);
Serial.print("led baixo");
}
delay(1000);
}

se seu modulo esta usando as postas 6 e 7 do arduino vc deve usar

caracter = MinhaSerial.read();

em vez de:

caracter = Serial.read();

assim ele vai considerar a leitura da softwareserial em vez do serialmonitor, veja se resolve...

Vlw grande deu certo aqui.

Obrigado pela força ai!

Boa tarde amigo!

Tive esse mesmo problema (só conseguia acionar o LED via serial e não pelo celular) e resolvi colocando apenas o Serial1.begin e assim por diante em todas as "Seriais". No meu caso, eu tive que "falar" pro meu microcontrolador (Teensy 3.1) usar a comunicação RX,TX e não mais a USB.

Abraços,

Lucas.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço