Nezmiňuješ se, jak rychle potřebuješ magnet detekovat, ani nevím, jestli máš senzor správně zapojený.
V každém případě tvůj program nemůže dost dobře fungovat, protože většinu času je blokován příkazem delay(). Vhodné by bylo použít přerušení.
Netuším, k čemu to má sloužit, ale na vyzkoušení třeba velmi jednoduše bez přerušení takhle:
Kód: Vybrat vše
const int hallSensor = 2;
void setup() {
Serial.begin(115200);
pinMode(hallSensor, INPUT);
digitalWrite(hallSensor, HIGH);
Serial.println("Start");
}
void loop() {
if (digitalRead(hallSensor) == LOW) {
Serial.println("ON");
Serial.flush ();
} else {
Serial.println("OFF");
Serial.flush ();
}
}
Tenhle prográmek čte senzor ASAP.