hmmm,
tak sobie czytam ten kod i pierwsze co przychodzi mi na myśl to:
1) Czy masz rezystory pull down do guzika? Zawsze należy o nich pamiętać żeby pin nie "wisiał luźno w powietrzu" a mikrokontroler wiedział że LOW to faktycznie LOW a nie jakiś stan nieustalony.
2) Nie widzę też nic związanego z debounce a wystarczyło by dodać:
Na tę chwilę to tyle
Wiem że istnieją inne możliwości debounce ale zawsze lepiej zacząć do łatwiejszych
Tak mi jeszcze przyszło do głowy że przy każdej zmianie stanów guzika możesz "Czyścić" wyjśćia
tak sobie czytam ten kod i pierwsze co przychodzi mi na myśl to:
1) Czy masz rezystory pull down do guzika? Zawsze należy o nich pamiętać żeby pin nie "wisiał luźno w powietrzu" a mikrokontroler wiedział że LOW to faktycznie LOW a nie jakiś stan nieustalony.
2) Nie widzę też nic związanego z debounce a wystarczyło by dodać:
Kod:
void guzik_on()
{
guzik = digitalRead(11); // read input value
if (guzik == LOW)
delay(100);
{
traffic();
}
}
void guzik_off()
{
guzik = digitalRead(11); // read input value
if (guzik == HIGH)
delay(100)
{
losowe();
}
}
Na tę chwilę to tyle
Wiem że istnieją inne możliwości debounce ale zawsze lepiej zacząć do łatwiejszych
Tak mi jeszcze przyszło do głowy że przy każdej zmianie stanów guzika możesz "Czyścić" wyjśćia
Kod:
void guzik_on()
{
guzik = digitalRead(11); // read input value
if (guzik == LOW)
delay(100);
{
digitalWrite(8, LOW); //Wyłączenie diody RED
digitalWrite(9, LOW); //Wyłączenie diody YELLOW
digitalWrite(10, LOW); //Włączenie diody GREEN
traffic();
}
}
void guzik_off()
{
guzik = digitalRead(11); // read input value
if (guzik == HIGH)
delay(100)
{
digitalWrite(8, LOW); //Wyłączenie diody RED
digitalWrite(9, LOW); //Wyłączenie diody YELLOW
digitalWrite(10, LOW); //Włączenie diody GREEN
losowe();
}
}