AnalogRead bekomme ich immer eine 0

Hallo,

Bei meinen Programm auf Pin 4 lese ich immer eine 0 aus (siehe Anhang), sobald ich eine einfaches Programm schreibe wo ich alle 1 Sekunden den Wert auslese funktioniert die Messung.
Ich habe keine Ahnung wo ich suchen soll, vielleicht kann wer mir einen Tip geben

socketServer.ino (2,4 KB)

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

Deinen Code bitte in Codetags posten. Evtl noch vorher deine Zugangsdaten zum Wlan rausnehmen.
Ausgabe des seriellen Monitor kann auch nicht schaden+ Schaltbild oder Foto vom Aufbau.

Das soll wohl A0 / Pin 14 heissen.
Dann darfst Du das nicht machen:

  pinMode(14, OUTPUT);

➜ tun Sie dies

Bei einer analogen Messung muss man nicht den Ausgang definieren oder ?

int analogPin = A3; // potentiometer wiper (middle terminal) connected to analog pin 3
                    // outside leads to ground and +5V
int val = 0;  // variable to store the value read

void setup() {
  Serial.begin(9600);           //  setup serial
}

void loop() {
  val = analogRead(analogPin);  // read the input pin
  Serial.println(val);          // debug value
}

im Progamm habe ich einen digitalen Ausgang definiert und eine analoge Messung mache ich

Das geht nicht.
Du kannst analogMessungen nur auf AnalogEingängen machen.
Was ist in APIN für ein Inhalt?

            int APin = (int) myObject["APin"];

das Programm funktioniert aber, ohne das ich einen Ausgang definiert habe

void setup() {

  Serial.begin(115200);

}

void loop() {

  Serial.println(analogRead(4));

  delay(1000);

}

Was ist dein Arduino?

Korrekt. analogRead() wird das Richtige tun

ich habe zwei verschiedene GPIO's die ich her nehme einen für digital und einen für analog

ich programmiere nur in der Arduino IDE, hier mein Board https://www.amazon.de/gp/product/B08BV3L92G/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

➜ kannst du das auch beantworten?

hier bekomme ich einen 4 herhaus, das habe ich schon auf der Seriellen ausgegeben

Auf DigitalPin 4 kannst Du nicht analog lesen und erwarten, das Du etwas anderes als jetzt bekommst.

Pin4 ist ein analoger Eingang siehe Bild

"ESP32 NodeMCU D1 R32 WLAN Entwicklungsboard mit CH340G und WiFi + Bluetooth IoT mit Mikro USB" ist kein Arduino, sondern nur kompatibel mit einem Arduino, wobei es zwischen einem UNO und einem ESP32 doch erhebliche Unterschiede gibt.

Die analogen Eingänge werden mit ihren Nummern angesprochen:

Versuche mal dies:

int analogPin = 34;

funktioniert leider nicht, aber das obere kleine Beispiel mit analogRead(4) funktioniert einwandfrei

2, 4, 36, 34, 38 und 39 sollten an den entsprechenden Pins funktionieren, wobei A3 dem GPIO34 entspricht.

Geht das während der Laufzeit?
Der Pin wird doch zur Compilezeit gemappt.
Da er erst zur Laufzeit den Pin übergibt, dürfte sich hier der Fehler finden...

Wo genau hast du deinen Pin angeschlossen?
Ein echtes sauberes hochauflösendes Bild könnte das klären.

Wenn du den auf IO04 angeschlossen hast, dann musst du auch pin 4 abfragen.