Forum: Analoge Elektronik und Schaltungstechnik Blinkende LED erkennen


von Alex M. (deveth0)


Lesenswert?

Moin moin,

ich habe mir für die Feiertage vorgenommen, endlich mal wieder etwas zu 
basteln und bräuchte da etwas Hilfe.
Es geht darum, dass ich einen Katzen-Futterautomaten habe, den ich gerne 
mit WiFi und MQTT (NodeMCU + Tasmota) ausstatten würde. Die Software 
Seite dürfte kein Problem sein.
Ich habe mir heute mal angeschaut, was ich hier an Möglichkeiten habe. 
Ein auslösen funktioniert bereits, jetzt würde ich mich gerne an die 
Füllstandserkennung hängen.
Diese funktioniert über zwei IR-LEDs, die eine wird regelmäßig mit 
Spannung versorgt und wenn bei der anderen dann Stromfluss erkannt wird, 
weiß der Automat, dass er leer ist. Anschließend fängt eine LED an zu 
blinken. Gesteuert wird das ganze über einen  Microcontroller.

Meine Idee war jetzt, dass ich mich einfach an die blinkende LED hänge 
und darüber mit bekomme, wenn diese blinkt. Da ich aber nicht für jedes 
blinken eine Auslösung möchte, wäre hier irgend ein Schaltkreis, der das 
Signal "glättet" super. Habt ihr da für mich irgend einen Hinweis, wie 
ich das machen könnte?
Da mein Wissen bzgl. Schaltungen etc sehr beschränkt ist, wäre ich über 
jede Hilfe dankbar.

Die Alternative wäre jetzt, dass ich mit einem Timer die Frequenz messe, 
aber das fühlt sich irgendwie falsch an :D

Vielen herzlichen Dank!!

PS: ich hoffe, ich bin im richtigen Unterforum

von Harald W. (wilhelms)


Lesenswert?

Alex M. schrieb:

> ein Schaltkreis, der das Signal "glättet". Habt ihr da für mich irgend
> einen Hinweis, wie ich das machen könnte?

Das geht mit einem nachtriggerbarem Monoflop, z.B. aus der 4000er Serie.

von Jörg R. (solar77)


Lesenswert?

Harald W. schrieb:
> Alex M. schrieb:
>
>> ein Schaltkreis, der das Signal "glättet". Habt ihr da für mich irgend
>> einen Hinweis, wie ich das machen könnte?
>
> Das geht mit einem nachtriggerbarem Monoflop, z.B. aus der 4000er Serie.

CD4538, retriggerbar beschalten

von Harald W. (wilhelms)


Lesenswert?

Jörg R. schrieb:

> CD4538, retriggerbar beschalten

Hier im Forum hat doch einer jede Menge 4538 übrig...

von Jörg R. (solar77)


Lesenswert?

Harald W. schrieb:
> Jörg R. schrieb:
>
>> CD4538, retriggerbar beschalten
>
> Hier im Forum hat doch einer jede Menge 4538 übrig...

Ich glaube der Thread den Du meinst verläuft im Sande...


Der TO verwendet doch einen uC, dann kann der doch die LED abfragen.

von Alex M. (deveth0)


Lesenswert?

Guten Morgen, das ging ja schnell, vielen Dank.

Jetzt habe ich erstmal gelernt, was ein Monoflop ist ;)

Ich glaube, ich habe mich aber falsch ausgedrückt. Es geht mir nicht 
darum, eine saubere Rechteckspannung zu erhalten, sondern, dass ich, 
wenn die LED blinkt (1 Hz per etwas schneller) gerne eine 
gleichbleibende Spannung hätte, die ich messen kann (und daran dann 
festmachen, dass die LED gerade blinkt).
Sprich sowas:

* LED blinkt => konstante Spannung von x V (kann auch schwanken, sollte 
aber immer vorhanden sein)
* LED blinkt nicht => keine Spannung

Danke für eure Geduld!!

: Bearbeitet durch User
von Thomas U. (charley10)


Lesenswert?

Alex M. schrieb:
> Guten Morgen, das ging ja schnell, vielen Dank.
>
> Jetzt habe ich erstmal gelernt, was ein Monoflop ist ;)
>
> Ich glaube, ich habe mich aber falsch ausgedrückt. Es geht mir nicht
> darum, eine saubere Rechteckspannung zu erhalten, sondern, dass ich,
> wenn die LED blinkt (1 Hz per etwas schneller) gerne eine
> gleichbleibende Spannung hätte, die ich messen kann (und daran dann
> festmachen, dass die LED gerade blinkt).
> Sprich sowas:
>
> * LED blinkt => konstante Spannung von x V (kann auch schwanken, sollte
> aber immer vorhanden sein)
> * LED blinkt nicht => keine Spannung
>
> Danke für eure Geduld!!

Genau das macht der Vorschlag, einen retriggerbaren Monoflop dafür 
einzusetzen!
Ist dein Controller so beschäftigt, dass er dafür keine Zeit mehr hat?

von Wolfgang (Gast)


Lesenswert?

Alex M. schrieb:
> Die Software Seite dürfte kein Problem sein.
> ...
> Da ich aber nicht für jedes blinken eine Auslösung möchte, wäre hier
> irgend ein Schaltkreis, der das Signal "glättet" super. Habt ihr da für
> mich irgend einen Hinweis, wie ich das machen könnte?

Warum suchst du nach einem Schaltkreis, wenn du mit der Software nicht 
solche Probleme hast?

Du könntest in der Software den Abstand zwischen zwei LED-Blinks messen 
und angemessen darauf reagieren. Wenn die Zeit nach dem Verlöschen der 
LED einen bestimmten Wert überschreitet, wird die LED wohl nicht mehr 
blinken.

von Alex M. (deveth0)


Lesenswert?

@Thomas: ahh OK, dann muss ich mir das nochmal nach zwei Kaffee 
anschauen, bin jetzt über das Datenblatt und habe in der Tafel gesehen, 
dass ich bei abfallender oder ansteigende Flanke eine Rechteckspannung 
heraus bekomme. Der uC hat Langeweile, wenn ich da was machen kann, dann 
sollte das kein Problem sein.


Edit: ich glaube, ich versteh, worauf du hinaus willst: einen RC an den 
Monoflop, der mindestens die Zeit zwischen dem blinken abbildet, das 
"Blinksignal" an einen Eingang und dann den Ausgang mit dem uC messen, 
richtig?

Jeder Blinkimpuls verlängert die Ausgabe um die Dauer des RC Kreises und 
damit bekomme ich mit, wann keine Impulse mehr kommen (mit minimaler 
Verzögerung).


Ein 74LS 122N müsste es dann ja auch tun, den gibt es beim netten 
Elektronik Händler um die Ecke ab Lager. 5V hab ich auch zur Verfügung, 
dürfte also kein Problem sein.


@Wolfgang danke für deinen Input, war auch meine erste Idee, aber wo ist 
da der Lerneffekt... Led auf interrupt, merken wann es passierte, 
vergleichen. Irgendwie langweilig ;)

: Bearbeitet durch User
von Harald W. (wilhelms)


Lesenswert?

Alex M. schrieb:

> Ein 74LS 122N müsste es dann ja auch tun, den gibt es beim netten
> Elektronik Händler um die Ecke ab Lager.

Im Prinzip ja, aber TTL-Bausteine sind deutlich störempfindlicher
als 4000er. Die würde ich für Neukonstruktionen nicht mehr verwenden.

von Teo D. (teoderix)


Lesenswert?

Warum das Signal an einer blinkenden LED abgreifen, wenn man schon den 
Sensor ausfindig gemacht hat?!

PS:
Alex M. schrieb:
> Die Software
> Seite dürfte kein Problem sein.

Wenns den unbedingt die LED sein muss, dann mach das halt in deiner SW. 
Tasten entprellen kannst ja auch!?

: Bearbeitet durch User
von Alex M. (deveth0)


Lesenswert?

@HaraldW: ok, dann besorg ich den 4000er auch mal. Erstmal tut es ja der 
74LS, kostet ja zum Glück nicht die Welt und damit kann ich dann über 
Weihnachten schon anfangen :)

@Teo: hatte ich auch überlegt, ich möchte aber ungerne die bestehende 
Funktionalität verändern sondern einfach weiter laufen lassen. Die LED 
ist da imho das am wenigstens intrusive (und wenn da was schief geht, 
dann ist nur die LED hin :D )
Zu SW vs HW hatte ich oben schon was geschrieben, ich würde das einfach 
gerne mal ausprobiert haben. Wirklich sinnvoll ist ein Futterautomat mit 
WLAN eh nicht, aber der Lerneffekt macht es wett.

von Teo D. (teoderix)


Lesenswert?

Alex M. schrieb:
> Die LED
> ist da imho das am wenigstens intrusive (und wenn da was schief geht,
> dann ist nur die LED hin :D )

Naja, gegen solch "Paranoia", kommt man nur selten gegen an. Was solls, 
mir solls recht sein. ;)

Alex M. schrieb:
> Zu SW vs HW hatte ich oben schon was geschrieben, ...

Ubs... Sorry

von Alex M. (deveth0)


Lesenswert?

Vielleicht trau ich noch da später mal dran, eins nach dem anderen. Dank 
dir trotzdem für deine Zeit!!

von Harald W. (wilhelms)


Lesenswert?

Alex M. schrieb:

> @HaraldW: ok, dann besorg ich den 4000er auch mal. Erstmal tut es ja der
> 74LS,

Wenn Duihn richtig beschaltest (Stützkondensator nicht vergessen
und Fanin und-out beachten).

von Manfred (Gast)


Lesenswert?

Alex M. schrieb:
> ok, dann besorg ich den 4000er auch mal. Erstmal tut es ja der
> 74LS, kostet ja zum Glück nicht die Welt

Und als nächstes kommt dann ein Thread "Hilfe, mein 74xx schaltet nicht" 
oder "Meine LED geht nicht aus"? *)

Das ist Kasperletheater erster Güte: Es gibt ein Signal und einen µC. 
Mir fiele nicht mal nach 10 Bier ein, da einen Impulsverlängerer in 
Hardware anbauen zu wollen. Das kann der µC nebenbei - oder Du lügst:

Alex M. schrieb:
> Die Software Seite dürfte kein Problem sein.

*) Hast Du überhaupt schon an der LED gemessen, wie diese angesteuert 
wird?
Hängt sie an Plus irgendwas und wird masseseitig geschaltet?
Hängt sie auf Ground und wird mit Plus geschaltet?

Was ich in einer unklaren Schaltung einmal gemacht habe: Die Leitung zur 
LED aufgetrennt und einen Optokoppler in Reihe.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Noch besser als mit Monoflop waere overengineering per Goertzel 
Algorithmus auf der CPU, wenn die Software kein Problem ist.

Duck & Wech
WK

von Alex M. (deveth0)


Lesenswert?

@Manfred: nicht böse gemeint, aber troll doch bitte bei heise oder so.
Ich habe hier eine Frage gestellt und von diversen Leuten Antworten 
erhalten, die ja anscheinend funktionieren könnten.

Das ich das jetzt zum ersten Mal mache, ist kein Grund, mir blöde von 
der Seite zu kommen, oder?

> "oder du lügst"
Kann man schon schrieben, ist dann aber unhöflich.

Hätte ich nirgends erwähnt, dass da eh ein uC läuft, wäre es dann auch 
zu diesem Beißreflex gekommen?

Und wenn es overengineering ist: so what, bisher gibt es keinen anderen 
Vorschlag, der nicht lautet: werf Software drauf.



Ps: LED wird über einen Transistor auf Masse geschaltet.

: Bearbeitet durch User
von Rainer V. (a_zip)


Lesenswert?

Lieber TO, du erlebst hier den Klassiker aller Fragenden...man hilft dir 
nicht bei der Lösung deiner Frage, sondern verklickert dir, dass deine 
Frage quasi am Problem vorbei ist! Und das ist tatsächlich aber viel 
öfter der Fall, als man so meint. Und hier bei dir eben auch! Du willst 
ein nicht triviales Bastlerprojekt um ein Feature erweitern und bist da 
auf einen Lösungsansatz gekommen, der erst mal das Projekt möglichst 
nicht gefährden soll. Gut und daher die blinkende Led ranzunehmen, ist 
ok. Dann aber doch elektrisch an die Led zu gehen, ist natürlich falsch 
und gefährdet deine Idee der Gefährdungsfreiheit massiv! Da du ja schon 
gelernt hast, dass man eine Pulsfolge mit einem retriggerbaren Monoflop 
erkennen kann, fehlt nur noch der Fototransistor an der Led und vor dem 
Monoflop und schon hast du dein Signal...später wirst du das sicher 
dennoch lieber mit dem µC machen wollen, aber nun erst mal viel Spass 
:-)
Gruß Rainer

von Manfred (Gast)


Lesenswert?

Alex M. schrieb:
> und von diversen Leuten Antworten
> erhalten, die ja anscheinend funktionieren könnten.

Stimmt:

Jörg R. schrieb:
> Der TO verwendet doch einen uC, dann kann der doch die LED abfragen.

Thomas U. schrieb:
> Ist dein Controller so beschäftigt, dass er dafür keine Zeit mehr hat?

Wolfgang schrieb:
> Du könntest in der Software den Abstand zwischen zwei LED-Blinks messen
> und angemessen darauf reagieren. Wenn die Zeit nach dem Verlöschen der
> LED einen bestimmten Wert überschreitet, wird die LED wohl nicht mehr
> blinken.

Teo D. schrieb:
> Wenns den unbedingt die LED sein muss, dann mach das halt in deiner SW.
> Tasten entprellen kannst ja auch!?

von Alex M. (deveth0)


Lesenswert?

Hehe, ja, da gab es doch sogar einen Fachbegriff für, komme leider 
gerade nicht drauf :)

Das "blöde" ist halt, dass ich ja nicht die einfachste Lösung suche, 
sondern einfach was dabei lernen will, da eigenen sich imho so Blackbox 
Ansätze (egal wie sinnlos) ganz gut.


Kannst du mir eben erläutern, was du mit "gefährdet deine Idee der 
Gefährdungsfreiheit massiv" meinst?

Ich hätte jetzt ganz naiv einen zweiten Transistor oder einen 
Optokoppler (hab hier noch ein paar, zB CNY17) an den bestehenden 
geklemmt (also das ich eine gemeinsame Base habe) und dann darüber den 
Monoflop ausgelöst.

Fototransistor wäre natürlich auch eine hübsche Idee, leider ist die LED 
etwas unzugänglich verbaut.

Dank dir!

von Jörg R. (solar77)


Lesenswert?

Alex M. schrieb:
> Ich hätte jetzt ganz naiv einen zweiten Transistor oder einen
> Optokoppler..

Optokoppler brauchst Du nicht.


Alex M. schrieb:
> Das "blöde" ist halt, dass ich ja nicht die einfachste Lösung suche,
> sondern einfach was dabei lernen will, da eigenen sich imho so Blackbox
> Ansätze (egal wie sinnlos) ganz gut.

Beschäftigte Dich mit Monoflops, genauer mit dem retriggerbaren.

ICs die Du nehmen kannst sind z.B. NE555 bzw. ICM7555 (sparsamer), 
CD4538B, 74HC4538 (5V). Die 2 letztgenannten beinhalten je 2 Kippstufen.

https://www.ti.com/lit/ds/symlink/ne555.pdf

https://www.nxp.com/docs/en/data-sheet/ICM7555.pdf

https://www.ti.com/lit/ds/symlink/cd54hc4538.pdf?ts=1608452534885&ref_url=https%253A%252F%252Fwww.google.com%252F

https://assets.nexperia.com/documents/data-sheet/74HC4538.pdf


Hier noch ein Link zu Thema mit dem NE555:

http://www.ne555.at/2014/index.php/timer-ic-ne555/grundschaltungen/43-nachriggerbares-monoflop

: Bearbeitet durch User
von Alex M. (deveth0)


Lesenswert?

Genau, das wäre jetzt auch einfach der Plan.

Einen CD4538 habe ich bestellt, kommt leider erst nach Weihnachten, den 
74LS123 kann ich wohl morgen abholen, ich gehe da jetzt einfach mal nach 
Verfügbarkeit.

Ich denke, damit kann ich mich erstmal etwas beschäftigen, danke Euch 
für eure Hilfe und genießt die Feiertage!!

von Harald W. (wilhelms)


Lesenswert?

Jörg R. schrieb:

> ICs die Du nehmen kannst sind z.B. NE555 bzw. ICM7555 (sparsamer),

Die sind aber nicht nachtriggerbar!

von Wolfgang (Gast)


Lesenswert?

Alex M. schrieb:
> Einen CD4538 habe ich bestellt, kommt leider erst nach Weihnachten, den
> 74LS123 kann ich wohl morgen abholen, ich gehe da jetzt einfach mal nach
> Verfügbarkeit.

Hast du in einem Museeum in deiner Nähe ein paar Platinen mit 
gesockelten  Low power Schottky ICs entdeckt, oder wie willst du da ran 
kommen? ;-)

Ok, ganz so schlimm ist es nicht, aber stell dich mal drauf ein, dass du 
heutzutage im Handel eher die CMOS-Nachfolger (74HC, 74HCT oder CD74HC) 
finden wirst.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alex M. schrieb:
> @Manfred: nicht böse gemeint, aber troll doch bitte bei heise oder so.
> Ich habe hier eine Frage gestellt und von diversen Leuten Antworten
> erhalten, die ja anscheinend funktionieren könnten.
Schon, aber alles, was Manfred da geschrieben hat, ging mir auch im Kopf 
herum.

> Ps: LED wird über einen Transistor auf Masse geschaltet.
Welche Pegel hast du dann bei geschalteter/ungeschalteter LED?
Hast du schon geschaut, ob du deine Schaltung auf die selbe Masse 
klemmen kannst und darfst?
Wie schnell blinkt diese LED?

Alex M. schrieb:
> Da ich aber nicht für jedes blinken eine Auslösung möchte, wäre hier
> irgend ein Schaltkreis, der das Signal "glättet" super. Habt ihr da für
> mich irgend einen Hinweis, wie ich das machen könnte?
Das macht man in Software mit einem Zähler. Und wenn braucht man nicht 
mal einen Interrupt, wenn man die Hauptschleife so schnell hinbekommen 
hat, dass sie z.B. mindestens 50x pro Sekunde durchlaufen wird.
Oder man nimmt den "üblichen" Timerinterrupt und fragt dort den Pin ab.
Aber auch ich würde niemals auf die Idee kommen, ein Monoflop in 
Hardware für so ein schnarchlangsames Signal vor einen µC-Pin zu setzen.

Oder: wenn ich schon basteln wollte, dann würde ich aber "mal so 
richtig" basteln:
1
  Futterottomat --> Meinmonoflop --> µC
2
           :           3V3
3
           |            |
4
      LED  V            |
5
           -            R 1M
6
           |            |
7
           o-------|<---o----------- µC-Pin
8
           |            |
9
         |/             | +
10
       --|             ===
11
         |>.            | 10µ
12
           |            |
13
      -----o------------o----------- GND

: Bearbeitet durch Moderator
von Alex M. (deveth0)


Angehängte Dateien:

Lesenswert?

> Hast du in einem Museeum in deiner Nähe ein paar Platinen mit
> gesockelten  Low power Schottky ICs entdeckt, oder wie willst du da ran
> kommen? ;-)

Segor sei dank, die haben aber auch den 74HC stimmt.

> Schon, aber alles, was Manfred da geschrieben hat, ging mir auch im Kopf herum.

Ja, teilweise natürlich, aber ich hatte ja explizit nach einer 
Bastelaufgabe gesucht und nicht nach der vielleicht einfachsten Lösung. 
Und ab dem Punkt, ab dem mir hier Lüge unterstellt wird, war es für mich 
durch.

Ich habe jetzt auch mal eben die Software-Lösung gebaut, funktioniert 
soweit auch, aber hey... Jedenfalls auf einem breadboard will ich es 
nochmal anders probieren!

> Welche Pegel hast du dann bei geschalteter/ungeschalteter LED?
>Hast du schon geschaut, ob du deine Schaltung auf die selbe Masse
klemmen kannst und darfst?
>Wie schnell blinkt diese LED?

3V, kommt direkt von irgend nem Mikrocontroller, zu dem es leider nur 
chinesische Doku gibt (HR8P506). Der ganze Futterautomat hat ein 5V/0.5A 
Netzteil, welches an eine Platine mit passender 3.3V Spannungsversorgung 
hängt.
Die habe ich jetzt bereits ersetzt durch einen AMS1117, damit habe ich 
genug Puffer für meinen eigenen uC.

> Und wenn braucht man nicht mal einen Interrupt
Brauchen nicht, aber mit Interrupt auf RISING bekomm ich dann jedes 
anschalten genau einmal mit, spar ich mir das zusammenfassen. Außerdem 
schläft der ESP dann einfach solange, bis die LED irgendwann mal angeht.

Ich habe hier mal angehängt, wie ich es jetzt umgesetzt habe, schwarz 
ist der Originalaufbau, orange meins (der Transistor ist falschrum 
eingezeichnet).

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alex M. schrieb:
> Ich habe hier mal angehängt, wie ich es jetzt umgesetzt habe, schwarz
> ist der Originalaufbau, orange meins (der Transistor ist falschrum
> eingezeichnet).
Und wie ist der tatsächlich und richtig in deiner Schaltung? 
Immerhin gibt es einige Möglichkeiten, einen Transistor falsch 
einzubauen. Eigentlich ist von den 6 möglichen nur 1 korrekt, eine 
zweite Variante würde möglicherweise auch funktionieren.


> Außerdem schläft der ESP dann einfach solange, bis die LED irgendwann
> mal angeht.
Ja, und dann? Ist der mit seiner Arbeit vor dem nächsten "Blinker" 
fertig?

Alex M. schrieb:
> Ich habe hier mal angehängt, wie ich es jetzt umgesetzt habe
Ich würde das ganz ohne Transistor so machen:
1
  Futterottomat -->  Pullup --> µC
2
           :           3V3
3
           |            |
4
      LED  V            |
5
           -           10k
6
           |            |
7
           o-------|<---o----------- µC-Pin
8
           |            
9
         |/             
10
       --|            
11
         |>.          
12
           |          
13
      -----o------------------------ GND
Und wenn sowieso alles aus der selben 3V Versorgung läuft, dann gleich 
so:
1
  Futterottomat -->  Pullup --> µC
2
 3V3 ------o------------o------------
3
           |            |
4
          Rv            |
5
           |            |
6
      LED  V            |
7
           -           10k
8
           |            |
9
           o------------o----------- µC-Pin
10
           |            
11
         |/             
12
       --|            
13
         |>.          
14
           |          
15
 GND  -----o------------------------ GND
Und wenn der µC einen einschaltbaren internen Pullup hat, sieht die 
Schaltung so aus:
1
  Futterottomat -->  Pullup --> µC
2
 3V3 ------o------------------------
3
           |            
4
          Rv            
5
           |            
6
      LED  V            
7
           -          
8
           |          
9
           o-------------------- µC-Pin
10
           |            
11
         |/             
12
       --|            
13
         |>.          
14
           |          
15
 GND  -----o--------------------- GND

> aber mit Interrupt auf RISING
Du brauchst dann natürlich den Interrupt auf die fallende Flanke. Denn 
die LED leuchtet, wenn der Pin low ist.

: Bearbeitet durch Moderator
von Axel R. (axlr)


Lesenswert?

Hauptsache den WIFI-Stack im Griff haben und MQTT, bei ner Abfrage einer 
LED scheitern?
Würd ich ja mal irgendwie die Prios anders verteilen...
Ach: ich sehe gerade, die Software gibt es schon von anderen 
geschrieben.
Naja - weitermachen, wohl n generationsproblem und ich bin der alte 
Sack.
Kann gut sein...

von Alex M. (deveth0)


Lesenswert?

> Und wie ist der tatsächlich und richtig in deiner Schaltung?

Collector und Emiter sind vertauscht, eingebaut ist er "richtig" rum.

> Ja, und dann? Ist der mit seiner Arbeit vor dem nächsten "Blinker" fertig?

Ja, beim ersten und nach dem letzten Blinken wird eine MQTT Message 
verschickt, dazwischen macht der nix mehr. Spricht denn irgendwas gegen 
Interrupts, verwende die eigentlich immer ganz gerne u.a. für 
batteriebetrieben Arduino Projekte. Schaden doch nicht?

> Ich würde das ganz ohne Transistor so machen ...

Stimmt, so ist es nochmal eine ganze Nummer simpler, hatte den 
Transistor nur noch irgendwie im Kopf für den Monoflop. Danke!!


Axel R. schrieb:
> Hauptsache den WIFI-Stack im Griff haben und MQTT, bei ner Abfrage einer
> LED scheitern?
Da ich den lieben langen Tag als Software-Dev tätig bin, hat das wenig 
mit Prioritäten sondern ehr mit Erfahrung zu tun. Das eine hab ich 
gelernt, mit dem anderen beschäftige ich mich, weil es mich 
interessiert. So schlimm?

: Bearbeitet durch User
von Harald W. (wilhelms)


Lesenswert?

Alex M. schrieb:

> Segor sei dank, die haben aber auch den 74HC stimmt.

Wenn man weiss, das man nur langsame Signale hat und noch keine
Erfahrung mit "schnellen" ICs hat, würde ich immer Bausteine
der 4000er-Serie vorziehen. Dann hat man von vornherein weniger
Probleme mit Störspitzen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alex M. schrieb:
> Ja, beim ersten und nach dem letzten Blinken
Tja, was bedeutet "letztes Blinken"? Wie stellst du fest, das das 
vorherige Blinken "das Letzte" war? Muss nach dem "letzten Blinken" 
unbedingt noch diese Message gesendet werden?

> wird eine MQTT Message verschickt, dazwischen macht der nix mehr.
Auch nichts mit einem Timer alle paar hundert ms?

> Spricht denn irgendwas gegen Interrupts
Interrupts nimmt man, wenn etwas "unterbrochen" werden muss, weil es 
eilig ist. Im echten Leben hat der Postbote einen Interrupt verdient: 
wenn er klingelt, solltest du schnell zur Haustür. Aber das "Mülleimer 
runtertragen" muss nicht gerade dann passieren, wenn 2 Spiegeleier in 
der Pfanne brutzeln und fast fertig sind.

Alternativ kann man Interrupts zum "Aufwecken" nehmen. Und wenn du grad 
so auf dem Sofa eingeschlummert bist, dann darf dich vielleicht der 
Postbote aufwecken. Aber du wärst nett angefressen, wenn dich einer 
zwischendurch zum Mülleimer runterbringen wecken würde. Denn das könnte 
locker warten, bis du eh' wieder aufwachst.

von Alex M. (deveth0)


Lesenswert?

Schöne Erklärung, gefällt mir! Bisherige Anwendundungszweck war 
eigentlich immer der Tiefschlaf, nur wenn irgendwas passiert habe ich 
den Arduino aufgeweckt.

Hier ist es ja auch dank des NT eigentlich erstmal wurst, ob der uC 
looped oder nicht.

> Muss nach dem "letzten Blinken" unbedingt noch diese Message gesendet werden?

Eigentlich nicht, aber dann hätte ich den aktuellen Stand und bekomme 
mit, wenn die Freundin nachfüllt ;)

Habe es jetzt erstmal so gemacht, dass ich im loop den Zustand der LED 
hole, wenn diese aktiv ist, mir die Zeit merke und wenn nicht 
vergleiche, ob das letzte Blinken >1s alt ist, dann weiß ich, dass 
nichts mehr blinkt.

Die Tage gibt es dann noch den Alternativaufbau mit Monoflop, einfach 
weil's geht.

von Rainer V. (a_zip)


Lesenswert?

Ich finde es ja schön, dass der TO Lust auf Hardware hat, aber das 
Problem gibt doch kaum was her. Und da dann doch alles im Kontroller 
passiert, würde ich zumindest für die "finale" Version eine reine 
Softwareversion vorziehen. Die Angst, das ganze Programm bei der 
Erweiterung zu verhuntzen, die der TO ganz zu Anfang formuliert hat, 
kann ich nicht nachvollziehen. Oder laufen die neuen Funktionen auf 
zusätzlichen Kontrollern? In diesem Fall ist die Hardware natülich 
akzeptabel.
Weiterhin viel Spass. Gruß Rainer

von Alex M. (deveth0)


Lesenswert?

Hey,
ja, am Ende will ich die bestehende Funktionalität weiterhin nutzen 
können und nur mit meinem uC weitere Funktionalität hinzufügen, u.a. 
halt jetzt als erstes mal Benachrichtigungen, wenn der Futterautomat 
leer ist.

Ich denke auch, dass ich am Ende das meiste in Software machen werde, 
aber da ist halt der Lerneffekt ehr begrenzt, deswegen hatte ich mir 
hier vorgenommen, erstmal etwas zu basteln, kostet ja zum Glück nicht 
die Welt :)

von Manfred (Gast)


Lesenswert?

Alex M. schrieb:
> (der Transistor ist falschrum eingezeichnet).

Frechheit, wenn man das schon weiß, malt man nochmal neu.

> Ich habe hier mal angehängt, wie ich es jetzt umgesetzt habe, schwarz
> ist der Originalaufbau, orange meins

Diese Schaltung wird garnicht oder nur zufällig spielen:
Ich sehe keine Basiswiderstände und zusätzlich am orangenen Transistor 
eine Diode, die dessen Steuerspannung anhebt (und sinnlos ist).

Grober Unfug ist das sowieso: Wenn beide µC 3,3V haben, klemmt man die 
Kathode der LED direkt auf den Eingang des ESP. Vermutlich wird der kein 
sicheres High erkennen, dagegen kommen noch 50k parallel zur LED, 
fertig.

Wer die Hose voll hat, oder falls der ESP-Anschluß auch ein Ausgang sein 
kann, klemmt noch 10k zwischen LED und ESP.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alex M. schrieb:
> Ich denke auch, dass ich am Ende das meiste in Software machen werde,
> aber da ist halt der Lerneffekt ehr begrenzt
Naja, ich sehe da durchaus noch Entfaltungsmöglichkeiten... ;-)

Und so richtig was lernen wirst du mit einem Monoflop an einer LED auch 
nicht(*). Auf jeden Fall nichts, was du irgendwann noch brauchen wirst, 
denn der Witz ist, dass man solche Aufgabe in SW löst, wenn ein 
Prozessor beteiligt ist. Und genau das könntest du doch mal genauer 
anschauen, denn offenbar fehlt dir da derzeit noch die Strategie, wie 
das in SW effizient und fehlerfrei umgesetzt werden könnte.


(*) Du kannst das Monoflop ja trotzdem aufbauen und in die Schublade 
legen, dann hast du eines, wenn du mal wieder eines brauchst. Aber das 
ist, wie wenn man kochendes Wasser im Gefrierschrank einlagert, weil man 
heißes Wasser immer wieder mal brauchen kann!

Manfred schrieb:
> klemmt noch 10k zwischen LED und ESP.
Ich nehme für solche "Angstwiderstände" immer was im 1k..2k2 Bereich. Da 
fließen im Fehlerfall bei 3,3V dann auch nur ca. 2mA.

: Bearbeitet durch Moderator
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
Noch kein Account? Hier anmelden.