Arduino Polska Forum

Pełna wersja: Zły odczyt stanu na porcie digital.
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
Odczyt stanu na porcie jest poprawny Smile Zmieniłbym jednak Twój kod.

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.
ostatnie dwa posty to jest powielenie tego co napisalem wczesniej, zeby dac rezystor podciagajacy itd, maslo maslane tu robicie panowie

Wysłane z mojego ALE-L21 przy użyciu Tapatalka
Opcja INPUT_PULLUP działa miałem tylko źle podłączony schemat(pozmieniałem gdy próbowałem innych rzeczy).

Dziękuję wszystkim za pomoc. Temat można uznać za zamknięty.
Stron: 1 2