Ich hab auch einen Gegentest gemacht.
Den Digital Out vom MQ-2 an den digitalen Eingang D0.
Die gleiche komischen Werte solange der Sensor verbunden ist, Verbindung zum D0 raus, Werte auf 0.
Der MQ-2 ist eine analoger Sensor.
Woher Deine drei Werte kommen, wird wohl in Deinem Sketch zu finden sein.
Warum die Werte an A0 auf Null gehen, wenn Du den Sensor abziehst, erschließt sich mir nicht - dort hätte ich - bei gezogenem Sensor - also offenem Pin - wildeste Hausnummern erwartet.
Schaltplan?
Sketch?
Link zur Lib?
MfG
PS: Was erhofftest Du Dir, ein analoges Signal digital einzulesen?
Weißt Du was diese Zahl bedeutet?
2147483648 =2^15.= B1000 0000 0000 0000 0000 0000 0000 0000
Komisch daß der Sensor gerade diesen Wert liest.
Ciao Uwe
Hallo,
da der Sensor mit 5V versorgt wird , vermute ich mal das Ding ist nicht ohne weiteres mit einem ESP D1 Mini zu betreiben ist. Der Analgeingang des D1 ist für max 3V ausgelegt. Vermutlich ist da ein Spannungsteiler erforderlich. Ob die Lib so ohne weiteres mit dem ESP läuft weiss ich nicht , könnte aber sein das es auf Grund der unterscheidlichen Pin Bezeichnungen für Arduino und ESP zu Problemen kommt.
Ich würde da jetzt erst mal die analoge Spannung des Sensors mit einem Voltmeter messen. Dann mal ein Datenblatt suchen um mal zu sehen was das eigendlich in etwa rauskommen müßte. Dann einen Spannungsteiler einsetzen um auf 3V zu kommen ud mal ganz normal mit analogRead() versuchen was einzulesen. Anschliessend mal nachsehen was in der Lib eigendlich eigendlich mit dem Pin gemacht wird ob das beim D1 so auch gehen kann.
Heinz
Nachtrag:
habe gerade mal einen Blick in die lib geworfen da wird eine Anpassung auf 1024 gemacht , damit geht das nicht so einfach für den ESP .
Da ich dort keinen Beispiel-Sketch finde (wird aber erwähnt), suchte ich etwas weiter. MQ2 auf roboter-bausatz.de liefert auch einen Sketch als Download:
int SensorPin = A0; // Der Pin AOUT (Analoger Output des Moduls) wird an A0 am Arduino-Board angeschlossen
void setup()
{
Serial.begin(9600); // Serielle Verbindung erstellen
}
void loop()
{
Serial.println(analogRead(SensorPin)); // Messwert auslesen und im seriellen Monitor ausgeben
delay(1000); // Ausgabe von einem Wert pro Sekunde
}
Der Sensor selber braucht aktive 5V für den Heater (knapp 1W, also 200mA - KEIN Arduino-Pin und auch nicht vom 5V-Arduino-Pin).
Wie 5V für 'den Rest' - hiervon wird die Ausgangsspannung erzeugt.
Das Ding ist so einfach im Aufbau wie im Anschluss, daß ich einen eklatanten Fehler in Deinem Aufbau vermute - zeig Mal Bilder.