Benötigt PWM am Sensor die gleiche Spannungsquelle/Ground wie am µC?

Guten Abend zusammen!

Ich habe eine Variation einer CO2-Ampel gebaut und habe gerade folgendes Problem mit meinem MH-Z19:

In meiner (leider keiner PC-Schnittstelle/ keinem Seriellen Monitor zugänglichen) Schaltung Werden Arduino Nano und MH-Z19 parallel über eine 5V Spannungsquelle versorgt. Ausgelesen wir der Sensor über PWM.

Dummerweise… funktioniert das nur nicht ><
Wenn ich den Sensor ausbaue und mit dem selben Code an einem anderen Arduino teste, dann funktioniert es (für mich erstaunlicher Weise) nur, wenn ich den Sensor aus den 5v/GND des Arduino heraus versorge. Wenn ich ihn an eine separate Spannungsquelle anschließe dann misst der Arduino (der dann praktisch nur das PWM-Kabel “stecken” hat) keine sinnvollen Werte.

Verkabelung ist gecheckt, der Nano macht außerdem neben des Messens des CO2 noch anderes Dinge, die gut funktionieren, also ist er auch nicht kaputt o.Ä.

Nun frage ich mich, ob das Problem etwas mit meiner parallelen Stromversorgung zutun hat (obwohl in meiner original-Schaltung ja beide (wenn auch eben parallel geschalten) die selbe Spannungsquelle haben).
Vor allem wundert mich aber (und das ist der eigentliche Grund für den Foreneintrag) der Umstand selbst, dass der Sensor offenbar über den µC mit Spannung versorgt sein muss? Wird das PWM irgendwie ggn. das “gleiche” GND abgeglichen oder wieso ist das so? Habe ich bisher noch nirgends so gelesen oder gefunden…

Grüße
Felix

UPDATE / LÖSUNG:
nur, falls dies mal in der Zukunft gelesen wird.

  • GND von Sensor und µC müssen gleich sein
  • meine Schaltung hat nicht funktioniert, weil ich A6 an Nano zum Lesen des PWM-Signals verwendet hatte. A6 und A7 am Nano unterstützen keine digitalen Input (nur analog, PWM ist aber eben digital). Das ist in meinen Versuchen nicht aufgefallen, da ich an einem Uno getestet und dort den Pin auf A5 gestellt habe im Programmcode.

Wahrscheinlich bricht die Spannung am Spannungsregler des Arduino zusammen.
Was hängt denn alles da dran und wie versorgst Du es?

Gruß Tommy

also im eigentlichen Projekt: 5V/2A-Netzteil und daran parallel geschalten: 3x Potis, 1x Nano, 1x BME280, 1x LED-Kette (5V, 75mA), 3x MOSFETs (um die LEDs zu steuern), 1x 128x32 OLED und 1x MH-Z19

dass das zu viel sein könnte habe ich tatsächlich noch gar nicht in Betracht gezogen :>
aber… sollte es doch eigentlich auch nicht, oder?

und wenn ich den MH-Z19 an der Spannungsversorgung von der CO2-Ampel lasse und nur das PWM zu einem separaten Uno leite dann misst der halt Mist… also vielleicht doch -.-

Nachtrag: Mein Text oben war allerdings keine Antwort auf deine konkrete Frage… Die Antwort darauf ist: An den Spannungsausgängen des Arduino Nano selbst hängt nichts. Der ist parallel zu allen anderen Teilen geschalten.

naraxus:
Nachtrag: also auch wenn das ja nicht konkret deine Frage war... Die Antwort wäre: An den Spannungsausgängen des Arduino Nano selbst hängt nichts. Der ist parallel zu allen anderen Teilen geschalten.

Ok, das hatte ich im Ursprungsposting anders verstanden.
Dann sollte das ausreichend sein.

Gruß Tommy

Was genau verstehst du unter "mit PWM auslesen" ?

Außerdem ist deine Schaltung so schwer zu verstehen. Poste uns doch einfach dein Schaltbild, dann sehen wir, wie du alles angeschlossen hast.

Ich vermute, du hast den GND vergessen anzuschließen.

Hier sind Schaltung und Code:
Leider bin ich wirklich kein Fritzing-Künstler ><...
Im Grunde macht das Dinge folgendes:
LED-Kette zeigt den CO2 zwischen 450 und 2000 von grün nach rot an
OLED zeigt Temperatur/Luftfeuchte/CO2 an --> Umschalten mit Button
LED kann zudem über die Potis (einen für jede Farbe) gesteuert oder ausgeschalten werden (2. Button)

Strom bekommt der MH-Z19 (Spannung liegt gemessener Maßen an und er leuchtet auch alle paar Sekunden innen drin rot)... PWM wird hat über wie im Code angegeben in ppm umgerechnet (ppm = (5000*(pulseIn(sensor, HIGH, 2500000)/1000))/1004). Das funktioniert auch separat an einem anderen Arduino hervorragend mit folgendem code:

Es funktioniert alles außer des CO2s... der OLED zeigt permanent 0 an und die Kette ist immer grün (entspricht laut Code < 450ppm)

#define sensor A5

void setup() {
  Serial.begin(9600);
  pinMode(sensor, INPUT);

}

void loop() {
  Serial.println((5000*(pulseIn(sensor, HIGH, 2500000)/1000))/1004);
  // Serial.println(pulseIn(sensor, HIGH));
  delay(3000);
}

main.cpp (7.95 KB)

Wieso eine Zeichnung im Code-Block ?
Eine Zeichung darfst du gern als Bild hier anhängen. Auf externen Servern ist das Bild schell weg und der Zusammenhang zerrissen.

Leider hast du meine Frage nicht beantwortet.

Hänge Bild und Code (wenn zu lang, als Anhang) bitte direkt ins Forum. Bei externen Hostern ist der schnell weg und hier fehlen dann die Zusammenhänge.

Gruß Tommy

Entschuldigt, ich kämpfe etwas damit, die Dinge hier in der besten Form rein zu bekommen... habe jetzt beides meinem letzten Post angehängt

Dein Problem werden die fehlenden Vorwiderstände für die Leds sein und die 5 Volt an Vin, das ist zu wenig.

Ok, jetzt können wir alles lesen und sehen. :wink:

Alles gut.

Dein Problem werden die fehlenden Vorwiderstände für die Leds sein

In meinem Schaltplan sind das normale LEDs aber tatsächlich hängt das das Ding dran:

und die 5 Volt an Vin, das ist zu wenig.

Ach so... meinst du damit, dass die aufgrund der ganzen übrigen Verbraucher am µC selbst dann zu weit abfallen? Aber wie kann ich das verhindern? ... In meinem rudimentären Verständnis von Elektronik haben in einer Parallelschaltung doch alle die gleiche Spannung? :cold_sweat:

Das mit 5V an Vin hatte ich schon geschrieben, und du brauchst für die Mosfets noch Gate-Widerstände. Da reichen 100 Ohm.
Und evtl. ein 10k gegen GND.

Dann sieh mal zu, wo Du das Datenblatt zu den LED bekommst.

Hinter Vin ist ein Spannungsregler, der aug 5V regeln soll. Der braucht mindestens 6,5 - 7V Eingangsspannung.

Gruß Tommy

Das reicht nicht, weil im Nano ein Regler dahinter sitzt der auf 5 Volt regelt.
Dazu braucht er min. 6,5 Volt.

Ich stimme euch allen zu, dass meine Schaltung nicht perfekt ist.
... Nun ist das Ding fast fertig und sieht aus wie auf dem Bild unten.

Große Einbauten würden also bedeuten, dass ich bei 0 beginnen muss. ... Da es "fast" funktioniert hoffe ich irgendwie, dass das nicht nötig ist. Wie gesagt tut alles was es soll, nur der CO2-Sensor misst nichts (oder viel eher der Nano dahinter). Der Nano macht alles andere was er soll sehr gut (LEDs leuchten bei Umschaltung auf die Poti-Steuerung super, das OLED zeigt Werte vom BME280 an, er raucht bisher nicht...)

Ich könnte statt Vin an 5V anschließen, das umginge ja den Spannungsregler quasi(?).. eine höhere Spannungsquelle würde Widerstände vor allen Bauteilen außer dem Nano bedeuten. Dann müsste ich sogar ein neues Gehäuse entwerfen und drucken weil es dann sicher nicht mehr dort rein passt ==> sehr sehr ungern

Die MOSFETs (IRLZ34N) funktionieren auch sehr gut ohne Widerstände und da es ja "nur" um das Laden/Entladen geht... Besteht da eine hohe Gefahr, dass mit der Nano abraucht, wenn er es bisher beim Testen nicht getan hat?

Also nochmal: Wenn alles anderes tadellos läuft (wenngleich mit nicht fachmännisch-korrekter Schaltung)... Kann es dann wirklich daran liegen?

Man sollte sich immer an die Vorgaben halten bzw. nach den Datenblättern richten.
Beispiel:
Ein Wassergekühltes Auto fährt auch ohne Kühlwasser, fragt sich nur wie lange.

Fazit, man sollte immer erst die möglichen Fehlerquellen ausräumen, bevor man etwas falsch fertig stellt.

Und ja, du kannst bzw. musst den 5Volt Pin für deine Schaltung verwenden.

Vielen Dank für die hilfreichen Hinweise. Ich werde erneut alle Verbindungen sowie die Software checken und erst dann anfangen zu testen, ob diese "Optimierungen" den entscheidenden Unterschied bringen.


Ich habe nebenbei meine Schaltung zumindest in Teilen auseinander genommen und etwas experimentiert - meine ursprüngliche Frage war ja, ob ein PWM-Signal (in meinem Falle der MH-Z19) und der µC die selbe Spannungsquelle brauchen um sinnvolle Werte zu ermitteln.

Tatsächlich brauchen sie ein gemeinsames GND

Separate 5V Spannungsquelle --> MH-Z19 --> nur PWM zum µC
USB-Kabel mit 5V vom PC --> µC

==> funktioniert nicht

USB-Kabel mit 5V vom PC --> µC
5V + GND vom µC --> MH-Z19 --> PWM zurück zum µC

==> funktioniert

Separate 5V Spannungsquelle --> MH-Z19 --> nur PWM zum µC
USB-Kabel mit 5V vom PC --> µC --> ausschließlich GND mit zum MH-Z19

==> funktioniert

naraxus:
Tatsächlich brauchen sie ein gemeinsames GND

Und das hatte ich dir in Post #4 auch geschrieben.

Und lass bitte die unnötigen Leerzeilen weg, dadurch wird der Text nicht besser lesbar

Im übrigen sind die nötigen Änderungen nur kleine Änderungen die du noch leicht unterbringen kannst.
Damit wird dein Projekt sicherer funktionieren.

Und das hatte ich dir in Post #4 auch geschrieben.

Ich vermute, du hast den GND vergessen anzuschließen.

Da haben wir dann aneinander vorbei geredet. Das habe ich zu dem Zeitpunkt nicht als Antwort auf diese Frage begriffen.

naraxus:
Da haben wir dann aneinander vorbei geredet. Das habe ich zu dem Zeitpunkt nicht als Antwort auf diese Frage begriffen.

Ok, für mich war es schon eindeutig. Aber wichtig ist, das du es jetzt gemacht hast.
Nochmal zur verdeutlichung: GND muss immer im System verbunden sein, das ist in der Schaltung der Bezugspunkt.
Natürlich gibt es Ausnahmen, wenn eine Potentialtrennung nötig ist.