so im new on arduino coding, and i made this code, where i input from serial monitor and then use it as a command for digital write. the problem is, sometimes the code work perfectly but then when i input 4, both D3 ad D4 is high and that also happens in D5 and D6. but its inconsistent, and i also print the 'out' value and also which digital pin is high to make it easier.
byte b;
int out;
int D3 = 3;int D4 = 4;int D5 = 5;int D6 = 6;int D7 = 7;int D8 = 8;
void setup() {
Serial.begin(9600);
pinMode(out, OUTPUT);
digitalWrite(D3, LOW);digitalWrite(D4, LOW);digitalWrite(D5, LOW);digitalWrite(D6, LOW);digitalWrite(D7, LOW);digitalWrite(D8, LOW);
}
void loop() {
while (Serial.available() == 0) {}
b = Serial.read() - 48;
out = b;
Serial.print("\n Out is ");
Serial.println(out);
digitalWrite(out, HIGH);
delay(600);
if (digitalRead(D3) == HIGH)
{
Serial.print("D3 HIGH");
}
if (digitalRead(D4) == HIGH)
{
Serial.print("D4 HIGH");}
if (digitalRead(D5) == HIGH)
{
Serial.print("D5 HIGH");
}
if (digitalRead(D6) == HIGH)
{
Serial.print("D6 HIGH");
}
if (digitalRead(D7) == HIGH)
{
Serial.print("D7 HIGH");
}
if (digitalRead(D8) == HIGH)
{
Serial.print("D8 HIGH");
}
digitalWrite(out, LOW);
delay(1000);
}
does anyone know why this happens? or can anyone recommend another method to do what im tryinng to do? thank you guys!!!