Hallo an alle, ich bin seit ca. 2 Wochen auch Mikrocontroller Bastler :-) Hintergrund ist der Wunsch meine „Flaplamp“ http://www.great-lakes.eu/flaplamp.jpg die ich vor zwei Jahren aus einer alten Cessna 172 Landeklappe gebaut habe, über eine WIFI Steuerung hoch und runter fahren zu können. (Später sollen die LEDs auch noch dimmbar gemacht werden, das ist aber ein anderes Thema) Klar hätte ich da bestimmt etwas fertiges kaufen können, aber ich beschäftige mich gerne mit neuen Dingen, deshalb habe ich ein wenig gegoogelt und das Entwicklerboard für den ESP8266 entdeckt. Nach einigem Lesen und Probieren, habe ich das Board inzwischen soweit, dass es (fast) das macht was es soll ;-) Mit einem 2fach Relaismodul https://www.amazon.de/gp/product/B01EYW5SJM kann ich inzwischen über einen Webserver auf dem ESP einen 12V Motor steuern. Mein ESP8266 Developer Board ist übrigens dieses: https://www.amazon.de/gp/product/B018E741G4/ Das ganze läuft über einen lua script mit der nodemcu firmware 5.4.1 die ich mir bei https://nodemcu-build.com/ habe erstellen lassen. Der Testaufbau: http://www.great-lakes.eu/lampe2.mp4 Soviel erst mal zur Vorgeschichte. Jetzt komme ich aber seit Tagen nicht weiter. … Die ganze Geschichte funktioniert nämlich nur, wenn ich das DEV-Kit über USB am Laptop oder mit einer komplett getrennten Stromquelle (z.B. einem 5V USB Ladegerät) von meiner Installation betreibe. Sobald ich das ESP mit an das 5V 2,5A Netzteil über den 5V VIN Pin gleichzeitig mit dem Relais Modul anschließe, startet das ESP Modul nicht, bzw. es macht immer einen Reset und versucht neu zu starten. (Das sieht man ja an der blinkenden LED auf dem Modul) Ich habe es auch schon mit anderen 5V Netzteilen versucht. Das 2,5A Netzteil sollte ja aber genug Power haben. Puh, das ist echt nicht einfach zu beschreiben. Hier mal eine Zeichnung: http://www.great-lakes.eu/aufbau1.jpg Ich hoffe, ich habe mich verständlich ausgedrückt, sonst fragt gerne nach. Vielleicht habe ich ja nur einen kleinen Denkfehler in der ganzen Geschichte und jemand von euch erkennt sofort den Fehler. Vielen Dank Holger
Hi Holger, theoretisch würde ich sagen , dass die Spannung nicht ausreichend konstant ist und der ESP durch Spannungssspitzen ersetztet. Hatte auch gelesen, dass die Resets beim ESP ein ziemlich nerviges Problem sein können. Ein Kondensator knapp vor den ESP könnte da vielleicht schon helfen. Aber diese These sollte hier jemand noch bestätigen :-) Vg
Hallo, wenn das Bild nicht täuscht ist das die NodeMCU-Modul-Version, die auch einem Bekannten schon Probleme bereitet hat. Ich habe im Moment keins davon zur Hand. Es scheinen zwischen Vin/USB und dem Spannungsregler normale Dioden als Entkopplung verbaut zu sein. Dann wird der Spannungsabfall aber schnell so groß, daß der 3,3V-Regler nicht mehr klar kommt. Gilt zumindest, wenn ein AMS1117 o.ä. mit recht hoher DropOut-Spannung verbaut ist. Die Dioden überbrücken hilft dann, allerdings darf man dann unter keinen Umständen mehr USB und Vin gleichzeitg benutzen! Wenn möglich die Schaltung ab Vin zum Spannungsregler verfolgen und den Spannungsabfall über der Diode messen. Sinnvolelrweise sollten es rund 0,3V sein (Schottkydiode), 0,7V bei einer normalen Diode wäre zuviel. Ein Elko 220µ direkt an den Spannungsanschlüssen des ESP8266 kann auch helfen. Gruß aus Berlin Michael
:
Bearbeitet durch User
Hallo ihr Beiden, vielen Dank für die Anregungen! Die ELKO Variante habe ich gerade mit einem 1000µ 6,3V und einem 1200µ 16V probiert. Das hat nicht wirklich etwas gebracht. Kurzzeitig ließ sich das ESP anpingen, dann brach es aber wieder zusammen :-( By the way, das 5V Netzteil ist übrigens von einer Fritz.Box 7240 @Michael: Das mit der Diode habe ich auch schon auf einem im Netz gefundenen Schaltplan gesehen. Ich werde mal versuchen sie zu finden, sie dann überbrücken und berichten. VG Holger
Michael U. schrieb: > Hallo, > > wenn das Bild nicht täuscht ist das die NodeMCU-Modul-Version, die auch > einem Bekannten schon Probleme bereitet hat. > Ich habe im Moment keins davon zur Hand. > Es scheinen zwischen Vin/USB und dem Spannungsregler normale Dioden als > Entkopplung verbaut zu sein. Dann wird der Spannungsabfall aber schnell > so groß, daß der 3,3V-Regler nicht mehr klar kommt. > Gilt zumindest, wenn ein AMS1117 o.ä. mit recht hoher DropOut-Spannung > verbaut ist. > Die Dioden überbrücken hilft dann, allerdings darf man dann unter keinen > Umständen mehr USB und Vin gleichzeitg benutzen! > > Wenn möglich die Schaltung ab Vin zum Spannungsregler verfolgen und den > Spannungsabfall über der Diode messen. Sinnvolelrweise sollten es rund > 0,3V sein (Schottkydiode), 0,7V bei einer normalen Diode wäre zuviel. Verbaut sind ein AMS1117 sowie eine SOD323. Die Diode bewirkt bei 20mA einen Spannungsabfall von knapp 0,4V, bei 200mA schon einen Spannungsabfall von 0,6V. Mit einem AMS1117 wird das dann schon eng.
Hallo, ich habe mal versucht ein Bild von dem guten Stück zu machen. Also verbaut ist ein A1 AS1117L-33 Am rechten Pin liegen 4,95V an, deshalb vermute ich, dass da keine Diode zwischen VIN auch 4,95V und dem AS1117 hängt. In der Mitte messe ich 3,34V und links 0,35V Irgendwie werde ich da nicht schlauer. VG Holger Edit: Ich habe jetzt ein USB Kabel geopfert. Wenn ich die 5V & GND Leitung vom Netzteil an das USB Kabel anschließe, und damit das ESP Modul über den Micro USB Anschluss versorge, funktioniert alles.
:
Bearbeitet durch User
Hallo zusammen, inzwischen funktioniert mein ESP auch mit externer Stromversorgung und meine Lampe fährt hoch und runter :-) Das Problem lag am Breadboard. Seit ich alles verlötet habe, funktioniert das ESP ohne Ärger zu machen. Ich habe aber trotzdem noch ein Newbie Problem, bei dem ihr mir bestimmt helfen könnt: Ich habe in meine Schaltung noch zwei Mikroschalter eingebaut, die als Stopschalter fungieren sollen, wenn die Lampe oben oder unten angekommen ist. Der LUA Code (Hier nur vereifacht ein Teil mit einem Mikroschalter an GPIO3) lautet wie folgt:
1 | function abfrage_buttons(vars) |
2 | if vars == nil or vars == "" then |
3 | return false |
4 | end |
5 | |
6 | if vars == "HOEHE=Hoch" then |
7 | |
8 | while gpio.read(3) == 0 do |
9 | hochfahren() |
10 | end |
11 | |
12 | else |
13 | gpio.write(1,gpio.LOW) |
14 | end |
15 | |
16 | function hochfahren() |
17 | gpio.write(1,gpio.HIGH) |
18 | end |
Sobald ich den „hochfahren“ Button drücke fährt die Lampe los. Allerdings geht das nur ca. 2 bis 3 Sekunden gut , dann macht der ESP einen RESET. Im ESPlorer sehe ich dann folgendes: ets Jan 8 2013,rst cause:2, boot mode:(3,6) load 0x40100000, len 24636, room 16 tail 12 chksum 0xaf ho 0 tail 12 room 4 load 0x3ffe8000, len 2300, room 12 tail 0 chksum 0xa8 load 0x3ffe88fc, len 8, room 8 tail 0 chksum 0x84 csum 0x84 Œã ä ƒgì›{ƒûn|ìlll` Œãs›lŒl Œ äl` r Habe ich da mit der while Schleife etwas nicht kapiert? Oder muss ich das ganz anders angehen? Ich freue mich auf eure Anregungen. Holger EDIT: Ich habe es gerade mal mit repeat probiert.
1 | if vars == "HOEHE=Hoch" then |
2 | |
3 | repeat gpio.write(1,gpio.HIGH) |
4 | until gpio.read(3) == 0 |
5 | end |
Da macht der ESP zwar keinen reset, aber auf den Schalter reagiert er auch nicht.
:
Bearbeitet durch User
Holger K. schrieb: > rst cause:2 An der Reset Leitung wurde gezogen!
1 | reset causes: |
2 | 0: |
3 | 1: normal boot |
4 | 2: reset pin |
5 | 3: software reset |
6 | 4: watchdog reset - |
Dagegen gibts nur ein Mittel: Wenn du keinen Reset willst, dann erzwinge auch keinen!
Hallo Arduino Fanboy ich hatte keinen PIN angefasst. Die Steuerung läuft über den Webserver und der ESP macht den Reset von selbst! VG Holger
Spätestens seit deinem problem mit der spannungsversorgung und dem breadboard weißt du ja nun, dass die bloße Ausführung der Verkabelung durchaus kritisch sein kann, und fehler hervorruft, die laut schaltplan garnicht existieren... ? Will sagen, was passiert denn wenn die lampe fährt? Wo in der schaltung fließt welcher strom? Was für motoren sind das, die da eventuell mit dreck um sich werfen? Was sagt die 5v schiene zur belastung?
Das Proggi läuft gerade als Test auf einem zweiten Modul, nur mit zwei Tastern und zwei LEDs. Bei der Lampe habe ich zwei getrennte Netzteile 1x 12V nur für den Motor und 1x 5V für das ESP Modul. Das funktioniert wie gesagt alles :-)
Holger K. schrieb: > while gpio.read(3) == 0 do Du darfst keine Endlosschleifen bauen, die dem WLan-Teil des ESP die Rechenzeit klauen. Sonst schlägt der Watchdog zu. Pack deine Endschalter-Abfrage besser in einen timer oder task. Oder versuch gpio.trig
Hallo Ernst, vielen Dank für Deinen Tipp. gpio.trig hatte ich mir zuvor schon angeschaut, hatte da aber immer Fehlermeldungen bekommen. Ich hatte Probleme mit der Callback Function. Jetzt habe ich mich nochmals dahinter geklemmt und nach einigem lesen und probieren klappt es jetzt. So sieht mein Code aus:
1 | function abfrage_buttons(vars) |
2 | if vars == nil or vars == "" or gpio.read(5) == 1 then |
3 | return false |
4 | end |
5 | if vars == "HOEHE=Hoch" then |
6 | gpio.trig(5,"high",function() stop_up() end) |
7 | gpio.write(1,gpio.HIGH) |
8 | end |
9 | |
10 | function stop_up() |
11 | gpio.write(1,gpio.LOW) |
12 | end |
Danke nochmals, VG Holger
@flaplamp habe das gleiche Problem mit meinem NodeMCU ESP12e: wenn ich das Ding über Vin laufen lassen möchte muss ich -USB anschließen --> Board läuft -Netzteil an Vin anschließen -USB entfernen Sobald ich dem Board nur über Vin Strom zuführe funktioniert es nicht. getestete Netzteile: 5V / 4 Amps und 7,5V 1,5 Amps. Habe in anderen Foren gelesen dass empfohlen wird die Diode zwischen USBVDD und Vin zu überbrücken. allerdings könnte ich dann nicht mehr USB und Netzteil gleichzeitig anschließen. Das ganze habe ich übrigens auch auf Breadboard zusammengesteckt. Jemand ne Idee es stabil zum Starten zu bringen? Möchte mich nicht drauf verlassen es auf eine Platine zu löten und dann funzt es vllt doch nicht.....
Εrnst B. schrieb: > Du darfst keine Endlosschleifen bauen, die dem WLan-Teil des ESP die > Rechenzeit klauen. Zumindest sollte man innerhalb der Schleife yield(); aufrufen, das läßt dem ESP dann die Zeit für seine Sachen. Sollte auch in LUA verfügbar sein. PS: da ja das Stromversorgungsproblem bei den ESP-Modulen immer wieder auftaucht: bei einem Bekannten zufällige WDT-Resets manchmal schon nach 2-3 Sekunden. OTA blieb hängen usw. Stromversorgung über Linearregler aus der LED-Versorgung, 220µ am Ausgang des Linearreglers, ca. 8cm Leitung zum ESP. Er hat es dann mal ausprobiert, hier seine letzt Antwort: >Im Übrigen habe ich die ESPs gebändigt, es lag doch an der Stromversorgung! >Ein zusätzlicher 470µ Elko direkt an der Platine zu den etwa 8 cm entfernten >220µ hat die Stacküberläufe dann beseitigt. Nun funktioniert auch das OTA. Vermutlich könnte er auch die 220µ vom Regler an den ESP verlagern, ich glaube aber nicht, das er das testen wird. Gruß aus Berlin Michael
>>Ein zusätzlicher 470µ Elko direkt an der Platine zu den etwa 8 cm entfernten >>220µ hat die Stacküberläufe dann beseitigt. Nun funktioniert auch das OTA. also den 470µ Elko direkt an die Versorgungspins vom ESP auf dem NodeMCU Board selbst löten? Kondensator parallel zu Vin/GND (470µ und 1000µ jeweils probiert) hilft nämlich nicht.
Hallo, ich habe nur wenige NodeMCU-Boards hier in Nutzung und die nur für Testaufbauten und dann vom USB versorgt. Da hatte ich noch nie Probleme, auch nicht auf einem Steckbrett. Es kommen dann natürlich nur Lasten ran, die USB versorgen kann. Die weiteren Sachen mache ich mit ESP8266-Modulen, die dann incl. Allem eine eigen Stromversorgung bekommen und zum Programmieren usw. eben an einem USB-TTL-Adapter hängen. Mit irgendwelchen Steckernetzteilen aus der Kramkiste (meist 5V Handynetzteile mit 450...700mA) hatte ich da noch nie Probleme. Der ESP bekommt ein AMS117-Chinamodul für die 3,3V und eben einen Elko, den ich gerade greife, meist 220...440µ. Vermutlich hilft mir auch der Zufall, daß die Kombi große und schwankende Last an der Stromversorgung und längere Leitungen zwischen AMS117 und ESP8266 praktisch nicht vorkam. Allerdings hatte ich ESP8266-Modul auf einem Steckbrett per selbst gestrickter Adapterplatine (Lochraster und Stiftleisten) und einem 3,3V Regler auf dem Steckbrett auch noch keine Probleme. Da landet der Elko praktisch neben dem ESP-Modul und die Brücken sind auch nur 1cm lang. Vermutlich Glück? Spannungsversorgung auf dem Steckbrett wird ohnehin nur mit festen passenden Steckbrücken zu den Längsschienen gemacht. Ich habe jetzt nur ein Bild gefunden, das das in etwa zeigt. ESP-Modul, MP3-Decoder (STA013) und ein Vertärkermodul aus alten Zeiten. Spielt einen MP3 Shoutcast-Stream ab. Gruß aus Berlin Michael
Ich hatte auch noch keine speziellen Probleme mit der Stromversorgung der Module. Man muß den Stromverbrauch, der an verschiedenen Stellen dokumentiert ist, einfach ernst nehmen. Bei den ersten Threads, an die ich mich erinnere, gings häufig darum, daß der USB Dongle die ESPs nicht zuverlässig versorgt. Das hat mich nicht weiter verwundert, da die in den USB-seriell Chips enthaltenen Regler häufig nur ein paar mA liefern können. Beim FT232R steht z.B. im Datenblatt: > +3.3V output from integrated LDO regulator. This pin should be decoupled > to ground using a 100nF capacitor. The main use of this pin is to provide > the internal +3.3V supply to the USB transceiver cell and the internal > 1.5kΩ pull up resistor on USBDP. Up to 50mA can be drawn from this pi > to power external logic if required. This pin can also be used to supply > the VCCIO pin. Bei anderen Chips findet man änliches. Ohne einen eigenen Regler wird man also immer Probleme bekommen. Ich verwende da die 3,3V 0,5A Recom mit ein paar µF MLCC. Zwei oder dreistellige µF brauchts da nicht. Sollte man tatsächlich 3 stellige µF nach einem Regler benötigen, ist nach meiner Erfahrung die Versorgung grundsätzlich falsch dimensioniert. Daß ein Modul, eine Schaltung einen Strombedarf hat, der zwischen einigen mA und einigen 100 mA schwankt mag für manche zwar überraschend sein, ist aber normal. Die Versorgung muß grundsätzlich den maximalen Strom liefern können. Und daß man bei einigen hundert mA und einem Steckbrett Probleme zu erwarten hat, ist nicht neu. Inzwischen scheint es sich eingebürgert zu haben, bei Problemen mit den ESPs nach einem dicken Elko zu rufen. Das ist ähnlich wie bei i2c, da heißt es, mach die Pullups kleiner. Oder wie beim EEPROM, da ist die Adresse 0 nicht nutzbar. All diese wohlfeilen Ratschläge führen typischerweise nicht zum Erfolg, da sie die wirklichen Probleme nicht beseitigen, die sowohl beim ESP als auch beim EEPROM oder i2c häufig in der Software zu finden sind. MfG Klaus
Ich hatte mal ein USB-Kabel, welches zu dünn war und die Spannung hat einbrechen lassen. Also evtl. auch mal andere Kabel probieren. Und natürlich keine 5V an die GPIO Pins :-)
Hallo, Klaus schrieb: > Inzwischen scheint es sich eingebürgert zu haben, bei Problemen mit den > ESPs nach einem dicken Elko zu rufen. beim ESP sage ich mal jein... Kurze Spannungseinbrüche durch schnelle Lastwechsel mit Elkos abzufangen ist ja nicht so unüblich. Der ESP scheint wirklich sehr sensibel darauf zu reagieren und schmiert wohl genau dann ab, wenn WLAN Last macht. Sinnigerweise sind es die Einbrüche, nicht die Spannung selbst. Hier läuft ein ESP8266-07 mit einem China-PIR als Test an 2x AAA Batterie seit Anfang September. Die Zellen waren wohl nichtmal ganz neu und ind Billigware. Die Spannung ist mittlerweile 2,63V, der PIR meldet sich stabil und der ESP hat noch immer keine Probleme. Batteriefach ist mit eingeklemmten Drähten angeschlossen, ca. 10cm Draht zum ESP. Mit 470µ am ESP stabil, ohne Absturz beim Senden. Ob ein China AMS117-Modul der passende Regler für den ESP ist, wäre da zu klären, nur die sind fertig da und billig, nicht nur bei mir. Ich hatte ähnliches schon mit RFM02 Modulen. Batteriebetrieb und hängenbleiben des RFM beim Senden. Warum sollte ich das jetzt alles umdimensionieren, wenn ein 10µ Elko an den Spannungsanschlüssen das Problem zuverlässig löst? Seit mittlerweile 7 Jahren stabil zwischen -25 Grad und +40 Grad. Für eine Serienfertigung wird man sicher mehr Aufwand schon bei der Wahl der Komponenten treffen müssen und auch können. Bei I2C ist es eher so, daß die internen PullUp des AVR/ESP eigetnlich zu hochohmig sind, spätestens wenn man mehr als einen Slave dran hat oder die Leitungen etwas länger werden. 4,7k oder 3,3k sind da durchaus üblich. Genauere Dimonsionierung finden man z.B. hier: https://www.i2c-bus.org/specification/ Gruß aus Berlin Michael
okay danke für die inputs!! werde morgen das ganze über einen externen 3,3V Regler powern und posten wie es gelaufen ist :)) 0,8 Amps sollten ja reichen. Das Modul nimmt max 0,2 und sonst haengt nur ein Spannungsteiler (10k mit LDR ) an den 3,3 V.
Michael U. schrieb: > Klaus schrieb: >> Inzwischen scheint es sich eingebürgert zu haben, bei Problemen mit den >> ESPs nach einem dicken Elko zu rufen. > > beim ESP sage ich mal jein... > Kurze Spannungseinbrüche durch schnelle Lastwechsel mit Elkos abzufangen > ist ja nicht so unüblich. Wenn man mal einen Blick in die Datenblätter von verschiedenen Reglern und Wandlern wirft, wird man finden, daß die zum Teil Lastsprünge von 100% ihrer Leistung in wenigen µS ausregeln. Und Elkos sind gerade nicht geeignet, schnelle Lastsprünge auszugleichen, dafür benutzt man Keramikkondensatoren. Was in Wirklichkeit typisch passiert ist, daß der Regler unterdimensioniert ist und in die Strombegrenzung geht. Das mit einem Elko zu verkleistern kann man machen (ist wie Pfusch am Bau mit Silikon zu kitten). Man darf dann aber nicht jammern, wenns mal nicht klappt. Michael U. schrieb: > Warum sollte ich das jetzt alles > umdimensionieren, wenn ein 10µ Elko an den Spannungsanschlüssen das > Problem zuverlässig löst? Seit mittlerweile 7 Jahren stabil zwischen -25 > Grad und +40 Grad. Sollst du überhaupt nicht. Ich sprach von Leuten, die einen großen Elko als wohlfeilen Rat verkaufen, wenn jemand einen ESP abschießt. Michael U. schrieb: > Bei I2C ist es eher so, daß die internen PullUp des AVR/ESP eigetnlich > zu hochohmig sind, spätestens wenn man mehr als einen Slave dran hat > oder die Leitungen etwas länger werden. 4,7k oder 3,3k sind da durchaus > üblich. Vollkommen richtig. Aber ich wette mit dir: Wenn hier die nächste Frage aufschlägt "Mein I2C Bus geht nicht, ich hab schon 3,3k Pullups eingesetzt, ohne Erfolgt" springt ein Schlaumeier aus dem Busch und sagt: Mach die Pullups kleiner. MfG Klaus
Lösung gefunden: D1 (Diode1) einfach überbrücken: Zu finden auf folgendem Datasheet (warum auch immer in erbärmlicher Qualität). https://smartarduino.gitbooks.io/user-manual-for-esp-12e-devkit/content/schematics_for_esp-12e_devkit.html Der verbaute Spannungsregler AS1117L-33 hat eine Ausgangsleistung von bis zu 800mA bei 3,3V. Das ist mehr als genug. Habe sonst keine Kondensatoren verbaut. Auf dem Board sind schon paar Ker.Kondis.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.