Why does my code not work and how can i make it work?
const int ledPIN = 12;
char data;
void setup() {
Serial.begin(9600);
pinMode(ledPIN , OUTPUT);
}
void loop(){
data = Serial.read();
switch (data)
{
case '0': // LED OFF
digitalWrite(ledPIN, LOW);
break;
case '1': //LED ON
digitalWrite(ledPIN, HIGH);
break;
case '2': // LED BLINK
digitalWrite(ledPIN , HIGH);
delay(200);
digitalWrite(ledPIN, LOW);
delay(200);
break;
}
}
but i also have tried this...
const int ledPIN = 12;
char data;
void setup() {
Serial.begin(9600);
pinMode(ledPIN , OUTPUT);
}
void loop(){
data = Serial.read();
switch (data)
{
case '0': // LED OFF
digitalWrite(ledPIN, LOW);
break;
case '1': //LED ON
digitalWrite(ledPIN, HIGH);
break;
case '2': // LED BLINK
do
{
digitalWrite(ledPIN , HIGH);
delay(200);
digitalWrite(ledPIN, LOW);
delay(200);
}while(data == '2')
break;
}
}
We have to guess what it does?
aarg:
We have to guess what it does?
LED changes depending on what you write to serial, 0 is for it to be OFF, 1 is for it be ON, and 2 is for BLINK
CodingCarnage:
LED changes depending on what you write to serial, 0 is for it to be OFF, 1 is for it be ON, and 2 is for BLINK
That is only what you think it should do. What does it do now?
aarg:
How does that differ from what you want it to do?
I cant get the LED to stay Blinking when it's on option 2 (Blink)... that's what i want to do but i cant get it to work
Your case statement is executed each time through loop() and you get a new character each time. So it's only the value '2' for one pass. You have to set some kind of flag (boolean variable) to enable the blink.
I can see more problems coming, but let's have you deal with that first.
1 Like
aarg:
Your case statement is executed each time through loop() and you get a new character each time. So it's only the value '2' for one pass. You have to set some kind of flag (boolean variable) to enable the blink.
I can see more problems coming, but let's have you deal with that first.
You gave me an idea thanks dude
it works fine now
const int ledPIN = 12;
char data;
int option;
void setup() {
Serial.begin(9600);
pinMode(ledPIN , OUTPUT);
}
void loop(){
data = Serial.read();
if(data == '0')
{
option = 0;
}else if(data == '1')
{
option = 1;
}else if(data == '2')
{
option = 2;
}
switch (option)
{
case 0: // LED OFF
digitalWrite(ledPIN, LOW);
break;
case 1: //LED ON
digitalWrite(ledPIN, HIGH);
break;
case 2: // LED BLINK
digitalWrite(ledPIN , HIGH);
delay(200);
digitalWrite(ledPIN, LOW);
delay(200);
break;
}
}