Arduino hat einen Eingabewert im getrennten Pin

9

Ich bin neu in Arduino. Vielleicht ist eine elementare Frage ...

Wenn ich dieses Programm lade:

int mval = 0;
void setup() {
  Serial.begin(9600);
  // set up the LCD's number of columns and rows: 

}

void loop() {

  mval = analogRead(1);
  Serial.println(mval);

  delay(1000);
 }

Ich erhalte einen Wert, der zwischen 300 und 400 variiert. Wenn ich denke, dass er 0 sein muss, ist nichts mit diesem Eingang verbunden.

Irgendwelche Ideen?? Es ist ein Arduino UNO, das über USB mit meinem Laptop verbunden ist

limoragni
quelle
Siehe auch: raspberrypi.stackexchange.com/q/14680
Hallo Welt

Antworten:

12

Sie erhalten etwas, das als "schwebende Eingabe" bezeichnet wird. Wenn Sie darüber nachdenken, hat ein ideales Gerät zur Messung des Eingangs eine sehr hohe Eingangsimpedanz und entfernt daher nicht viel Strom aus dem Pin.

Was also passiert, ist, dass zufällige Elektronen auf (oder von) dem Stift schweben (entweder durch elektromagnetische Interferenz in der Umgebung oder durch direkten Kontakt mit etwas mit einer geringen Ladung) und weil es wie eine Verbindung mit sehr hohem Widerstand wirkt Boden wird diese Ladung sehr langsam abfließen. Wenn Sie also messen, sieht es so aus, als ob dort eine gewisse Spannung anliegt! Im Allgemeinen schließen Sie dies entweder an ein Gerät an, das eine Spannung liefert, oder Sie setzen einen Pull-Up- oder Pull-Down-Widerstand ein und passen Ihre Erwartungen an diesen Pin an.

Ich hoffe, das hilft und wenn nicht, bin ich sicher, dass jemand einen Link zu einer anderen Person hat, die diese Frage kompetenter beantwortet hat (ich sehe im verwandten Abschnitt mindestens eine nahezu identische Frage ).

Kit Scuzz
quelle
5
Unterhaltsame Tatsache: Die Arduino-Dokumente schlagen vor, den Rückgabewert eines analogReadAufrufs an einem nicht verwendeten Pin als Startwert für die randomSeedFunktion zu verwenden: arduino.cc/hu/Reference/RandomSeed
Chris Laplante
2
Ha! Das ist ziemlich ordentlich, ich mag es! Ich würde denken, dass das Hinzufügen einer kleinen, schnörkellosen Drahtleitung zu Ihrem Steckbrett und / oder Ihrer Leiterplatte dazu beitragen könnte, ein bisschen mehr Zufälligkeit zu erzielen, solange Sie eine Antennenlänge von 60 Hz vermeiden (nur in den USA) (dann würde plötzlich Wechselstromrauschen dominieren)
Kit Scuzz
3
Ein robusterer (und platzsparender) Ansatz wäre die Verwendung des Standard-Zufallszahlengenerators RFC 1149.5
Chris Laplante,
4

Der Eingang ist "schwebend", da nichts angeschlossen ist, um die Spannung in die eine oder andere Richtung zu "ziehen".
Das ist völlig normal. Wenn Sie einen hochohmigen Pulldown-Widerstand (z. B. 10k) vom Pin an Masse anschließen, wird dies verhindert, wenn nichts angeschlossen ist (obwohl dies nicht unbedingt erforderlich ist, da Sie ihn nicht lesen, wenn nichts angeschlossen ist in Verbindung gebracht ;-))

Oli Glaser
quelle
Wird der Pulldown-Widerstand das Signal ändern, wenn er an den ADC angeschlossen ist?
user30878