Arduino Mega 2560 analoge Werte einlesen.

Hallo zusammen,

ich habe da ein kleines Problem.

Ich versuche einen analogen Wert einzulesen, der Wert ist im SerielMonitor aber immer auf 250 - 270.

Das Prog sieht so aus:

const int speed = 11; const int MainStop = 51; const int analogIn = 2; int analogSpeed = 0;

void setup() { pinMode(MainStop,INPUT); pinMode(analogIn,INPUT); Serial.begin(9600); }

void loop() { analogSpeed = analogRead(analogIn); Serial.println(analogSpeed,DEC); }

Poti (50k) ist wie folgt angeschlossen


| \ | |_____| | | | | | | GND PIN 2 V5+ vom Board

Wo ist hier mein Fehler?

Danke schon mal JimKnopf

const int analogIn = 2;

Das ist Digital Pin 2.

Die Analog Pins sind entweder A0, A1, A2, etc., oder man fängt eins höher als der höchste Digital Pin an. Also A0 = 54, A1 = 55, etc.

Der Pin ist auf dem Board mit 2 gekennzeichnet. Also muss ich pinMode(56,INPUT) setzen?

Das ist höchstens A2. Und Analog-Pins müssen nicht als Eingang geschaltet werden.

Es reicht analogRead(A2);

JimKnopf:
Der Pin ist auf dem Board mit 2 gekennzeichnet. Also muss ich pinMode(56,INPUT) setzen?

ADC-Messungen mit analogRead() kannst Du NUR AN ANALOGEN PINS machen.

Pins auf Arduino-Boards ohne vorangestellten Buchstaben sind aber DIGITALE PINS.

D.h. analogRead kannst Du an Pins mit den Bezeichnungen A0, A1, A2, A3 etc. machen aber NICHT an Pins, die kein “A” vorne dran stehen haben.

Also ich habe jetzt von A0 - A6 alle getestet, der Wert ist immer zwischen 250 und 300. Muss ich vorher noch etwas anderes konfigurieren.

Grrr ich voll Horst, also wenn man sich das Board ansieht und dann auch noch die Richtigen Pins beschaltetet, funktioniert das Ganze.

Also ist gelöst, habe mich einfach nur zu dämlich angestellt.

Danke

Man kann die Analog-Pins übrigens auch als digitale I/Os verwenden. Aber keine digitalen für analog.