24-01-2017, 08:58
Odczyt stanu na porcie jest poprawny Zmieniłbym jednak Twój kod.
Omówienie pokrótce: jeśli podpiąłeś przycisk do masy, to tę masę musisz wykrywać, stąd warunek sprawdzania 'LOW', nie 'HIGH'. Druga rzecz, że INPUT_PULLUP, nie INPUT, ponieważ port nie ustawi sobie automatycznie stanu wysokiego. Tak naprawdę pojawi się tam nie wiadomo co, co gorsza to coś będzie oscylować, a więc w pewnym momencie może spaćdo poziomu 'LOW', więc, dla bezpieczeństwa i pewności działania, podciągnięcie PULLUP.
Kod:
void setup() {
pinMode(7, OUTPUT);
pinMode(11, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
if(digitalRead(11) == LOW){
Serial.println("Jest");
digitalWrite(7, HIGH);
}
else{
Serial.println("nie ma");
digitalWrite(7, LOW);
}
}
Omówienie pokrótce: jeśli podpiąłeś przycisk do masy, to tę masę musisz wykrywać, stąd warunek sprawdzania 'LOW', nie 'HIGH'. Druga rzecz, że INPUT_PULLUP, nie INPUT, ponieważ port nie ustawi sobie automatycznie stanu wysokiego. Tak naprawdę pojawi się tam nie wiadomo co, co gorsza to coś będzie oscylować, a więc w pewnym momencie może spaćdo poziomu 'LOW', więc, dla bezpieczeństwa i pewności działania, podciągnięcie PULLUP.