Arduino Nano zeigt bei digitalRead bei 5V anliegender Spannung 0 (LOW) an

Hallo zusammen,

genau wie die meisten anderen auch, arbeite ich gerade an meinem Arduino Projekt, komme aber gerade nicht wirklich weiter. Ich lasse mir über die serielle Schnittstelle den Wert von D4 ausgeben. Also:

Serial.print(digitalRead(7)); // D4

Es wird aber immer 0 ausgegeben. Wenn ich aber mit dem Multimeter genau am Board vom Arduino nachmesse, wird mir die korrekte Spannung von 5V angezeigt. Habe es auch mit 2 weiteren Arduino Nano's probiert, komme aber immer auf das gleiche Ergebniss. Woran liegt das ?

Danke für eure Hilfe.

Da solltest Du uns mit einer Schaltung erleuchten und Dein Sketch in Codetags wäre auch nicht schädlich.

Ansonsten könnte die Diagnose nur heißen: Nano gestorben.

Gruß Tommy

Und warum liest du den Pin 7 anstatt Pin 4 ?
Hast du den auch als Input definiert ?

Ich bin von dieser Pinbelegung ausgegangen.

Schaltung ist ganz einfach.

Schalter ist mit 5V (Port 27) und wie gesagt D4 (Pin 7) verbunden. Der Arduino soll also nur kennen ob der Schalter gedrückt (1 / HIGH) oder nicht (0/LOW) ist.

  if(digitalRead(7) == 0){          // Auslesen ob Schalter an (1) oder aus (0) ist
    Value = 0;
    digitalWrite(14, LOW);
  } else {
    Value = 1;
    digitalWrite(14, HIGH);
  }

Da Du nach 5V schaltest, brauchst Du einen PullDown-Widerstand vom D4 nach GND je nach "elektrischer Verseuchung" der Umgebung und Leitungslänge von 10 kOhm bis 1 kOhm.
Offene Eingänge wirken wie Antennen und fangen alles (un)mögliche ein.

Wenn es dann immer noch nicht funktioniert, ist irgend etwas defekt.

Gruß Tommy

Den mit "D4" beschrifteten Pin liest man mit
digitalRead (4)

Und schon wieder die 7....warum nimmst du den falschen Pin ?

Wie lese ich dann Analog Pin 4 A4 ?

Wolly:
Wie lese ich dann Analog Pin 4 A4 ?

Wieso analog.
DigitalRead ist ein digitaler Pin.

Und analog geht mit A0 bis A5 oder A7.

Hi

HotSystems:
Und schon wieder die 7....warum nimmst du den falschen Pin ?

Weil der Pin D4 laut Layout an dem IC-Pin 7 liegt.
Blöd, daß Das Einem die Arduino-IDE abnimmt.

@TO
Du schreibst 4 für D4 und A0 für A0.
Ob der Pin nun am Nano am 'Beinchen' 7 hängt, oder am Mini an einem ganz Anderem - für Dich als Anwender ist Das der Pin D4.

MfG

postmaster-ino:
Ob der Pin nun am Nano am 'Beinchen' 7 hängt, oder am Mini an einem ganz Anderem - für Dich als Anwender ist Das der Pin D4.

MfG

Und was anderes habe ich nicht geschrieben.

Hi

Sorry, aber ich hatte bereits auch schon geschrieben und muß nun auch irgendwie auf meine anwachsende Post-Anzahl kommen.

Soll heißen: Zum Löschen war's mir dann doch zu schade.
Auch, wenn ich nicht viel Anderes schrieb, als schon zuvor geschrieben wurde.

MfG

  1. Die Zahlen in Klammer sind die Numerirung der Beinchen der Anschlusse. Die Arduino-Pins sind die Zahlen ohne Klammer.
  2. I2C ist nicht auf Digital 4 und 5 sondern Analog 4 und 5.
    Ich weiß nicht ob da noch andere Fehler drin sind.

Zur Numerierung.
Bei DigitalRead bzw digitalWrite kann zB D2 und auch 2 verwendet werden. Die Pins von A0 bis A5 können als Digitale Pins verwendet werden und mit A0 bis A5 oder 14 bis 19 genannt werden. Die bei SMD Atmega328 vorhandenen A6 und A7 sind nur analoge Eingänge, keine Digitalen Pins.

Bei analogRead kann zB A0 oder auch 0 verwendet werden.

Grüße Uwe