Olá pessoal,  estou com uma divida, q p/ min é difícil, mais talvez alguém possa me ajudar. É o Seguinte: Como posso melhorar minha programação de comandos, Ex do jeito que estou fazendo:

Na minha programação, eu mando pela serial, o Nº "1" e a lâmpada é Ligada, e se mando o Nº "0" a lâmpada é Desligada.

Mudança q eu gostaria de fazer:

Gostaria de c/ apenas um comando, eu conseguisse "ligar/Desl.." a lâmpada.

Resumindo: Se eu mandar o comando na serial '1' a lâmpada ligasse, e se eu mandar o comando '1' outra vez, a lâmpada fosse Desligada. Desde já, eu agradeço pela atenção...

Abaixo é um exemplo desta programação...

//__________________________________________________________________________________

int ledPin=9;
char numero;
void setup()
{
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
}
void loop()
{
  if(Serial.available()>=0){
  numero=Serial.read();
}
  if(numero =='1'){
  digitalWrite(ledPin,HIGH);
  Serial.println("Lampada Ligada");
  delay(500);
  }
  else if(numero=='0'){
  digitalWrite(ledPin, LOW);
  Serial.println("Lampada Desl..");
  delay(500);
}
}

//marcusclaudino@hotmail.com

Exibições: 311

Responder esta

Respostas a este tópico

int ledPin=9;
char numero;
boolean valor = false;

void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
void loop()
{
if(Serial.available()>=0){
numero=Serial.read();
}
if(numero =='1'){
valor = !valor;
digitalWrite(ledPin, valor);
}
}

Teste isso, se não der me avise

Nicholas, muito obrigado pela atenção, vou testar aqui, e logo logo t retorno...

Nicholas, vlw mesmo funcionou perfeitamente, do jeito q eu estava tentando, mais uma vez obrigado pela atenção, até mais...

int status = 0;
int ledPin = 9;
char numero;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
void loop()
{
if(Serial.available()>=0){
numero=Serial.read();
}
if(numero =='1'){
status++;
delay(500);
}
else{
}

if(status ==1){
digitalWrite(ledPin, HIGH);
delay(500);
}
else{
}

if(numero ==2){
status=0;
digitalWrite(ledPin, HIGH);
delay(500);
}
else{
}
}

Esse está corrigido:

int status = 0;
int ledPin = 9;
char numero;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
void loop()
{
if(Serial.available()>=0){
numero=Serial.read();
}
if(numero =='1'){
status++;
delay(500);
}
else{
}

if(status ==1){
digitalWrite(ledPin, HIGH);
Serial.println("Lampada Ligada");
delay(500);
}
else{
}

if(numero ==2){
status=0;
digitalWrite(ledPin, LOW);
Serial.println("Lampada Desligada");
delay(500);
}
else{
}
}

Testa aí e veja se funcionou!!!

Deu certo Murilo, Vlw obrigado...

Ok Marcos, é um prazer poder ajudá-lo

RSS

© 2021   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço