Counter für Reedkontakt - was mache ich flasch?

Gast #7347235
Lesenswert?

Hallo zusammen,

ich brauche eure Hilfe! :) Ich versuche einen Counter für einen Reed-Kontakt zu bauen und habe nicht wirklich einen Plan. Vielleicht kann mir jemand von euch auf die Sprünge helfen??

Also zunächst habe ich einen 74LS163 den ich, wie in folgendem Video beschrieben, angeschlossen habe. https://www.youtube.com/watch?v=U7ARbuAPPs4&ab_channel=IanWard

ich habe das zunächst mal noch ohne Reedkontakt aufgebaut. Aber was ich nicht verstehe: Wenn ich mit dem Kabel dass am ClockPin hängt auf Plus 5V gehe müsste ich doch eigentlich bei jedem Mal Kontakt geben einen Zählimpuls haben oder? Komischer Weise zählt das Teil aber nur hin und wieder mal einen Impuls. Für mich erscheint das irgendwie Random... also ich berühre mit dem Kabel 50 Mal den Pluskontakt und er zählt vielleicht mal ein 3, 4 oder 10 Kontakte mit aber die meisten nicht.

Ich dachte, dass es vielleicht am Prellen liegt und da ich ja für den Reed-Schalter sowieso eine Entprellung brauche, habe ich nach dieser "Anleitung" https://www.mymakerstuff.de/2018/04/16/taster-entprellen-die-rc-schaltung/ eine Entprell-Schaltung aufgebaut. Aber auch damit ist es nicht besser. Jetzt zählt der Counter nämlich gar keine Pulse mehr. Um ehrlich zu sein bin ich mir da aber auch nicht ganz sicher wo ich bei meiner Entprellschaltung das lange weiße Kabel vom ClockPin anstecke. Ich habe das mal am Ausgang der Entprellung also da hinter dem Kondensator gehängt.

Was mir aufgefallen ist: Am Ausgang der Entprellung liegt nur noch 2,4 V an. Das ist ja eigentlich zu wenig oder? Muss ich die Entprellung anders Dimensionieren? Habe dort einen 10uF Kondensator und einen 1K Ohm Widerstand. Wie auf der Website beschrieben verbaut.

Naja, ihr merkt schon, ich habe nicht wirklich einen Plan. Umsomehr bin ich für jeden hilfreichen Tip dankbar!

Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #7347241
Lesenswert?

Reedcounter schrieb:

wie in folgendem Video beschrieben

Kannst du nicht einfach den Schaltplan anhängen? Schaltpläne sind die Sprache der Elektronik. Damit kann man sich weltweit verständigen, ohne sich ewig lang ein Virdeo anzuschauen.

Wenn ich mit dem Kabel dass am ClockPin hängt auf Plus 5V gehe müsste ich doch eigentlich bei jedem Mal Kontakt geben einen Zählimpuls haben oder?

Hast du da mal mit einem Multimeter gemessen, welcher Pegel am offenen Pin anliegt, wenn dein Kabel nirgneds angeschlossen ist und in der Luft hängt? Du wirst sehen, das sind schon "ziemlich" 5V. Kein Wunder, dass sich da nichts tut, wenn du dann "richtige" 5V anlegst.

also ich berühre mit dem Kabel 50 Mal den Pluskontak

Probiers mal mit der Masse...

Gast #7347245
Lesenswert?

Das Stichwort um dein Problem zu lösen lautet vermutlich "Pull-Down-Widerstand". Damit der Zähler zählt muß in deinem Fall am Clockeingang die Spannung zwischen 5V und 0V hin und her schalten. Wenn du den Clock pin amer nur an 5V hängst und er dann wieder offen ist dann klappt das nicht.

Moderator (Firma: Titel) Persönliche Seite #7347248
Lesenswert?

rmf schrieb:

Das Stichwort um dein Problem zu lösen lautet vermutlich "Pull-Down-Widerstand".

Das ist bei LS-Technologie ganz ungünstig.

Einfach mal die Innenbeschaltung dieser Bausteine im Datenblatt anschauen. Und dann den Pulldown dazumalen. Kein Wunder bleiben da dann nur noch 2,4V übrig...

Ich würde da einen 2k2 Pullup nach 5V einbauen und dann den Reedkontakt nach GND schalten lassen.

#7347276
Lesenswert?

Reedcounter schrieb:

dass es vielleicht am Prellen liegt

es reicht nicht, einen Eingang nach plus für high zu verbinden, und zu glauben, wenn er nicht angeschlossen ist, wäre das schon logisch low, 0.

Gerade die steinzeitalten LS-IC (woher bekmz ihr immer so ein Zeug, vom Opa geerbt?) wollen mit unter 300 Ohm nach Masse geschaltet werden muss, obwohl ihm 10k nach plus für high reichen würden.

1
+5V
2
 |
3
4k7
4
 |
5
 +---CLOCK 74LS163
6
 |
7
 o
8
| Reed
9
 o
10
 |
11
GND

prellt also wie Sau, weil der Zahler schnell genug ist, jedes Prellen mitzuzählen.

Den ganzen Mist vom Makerstuff solltest du übrigens vergessen, von Laien für Laien, der ist gar nicht für einen Kontakt als Eingang, sondern bräuchte schon ein Digitalsignal, für den Kontakt müsste man wenigstens einen pull up Widerstand vorsehen. Aber wer einen uC richtig programmiert muss nicht in Hardeare entprellen sondern kann das in Software erledigen.

Wenn es unbedingt mit deinen steinzeitlichen LS IC sein sollte, geht diese Entprellung:

1
+5V   +5V
2
 |     |
3
4k7  220nF (100nF-470nF)
4
 |     |  Schmitt-Trigger
5
 +-----+---|>|o-- high wenn Reed aktiv
6
 |       74LS14
7
300R
8
 |
9
 o
10
| Reed
11
 o
12
 |
13
GND

aber dein 74LS163 hat gar keinen Schmitt-Trigger Eingang, den kann man so gar nicht zuverlässig entprellen.

Ein 74LVC161 (nicht 163) hätte Schmitt-Trigger am Eingang und geht mit:

1
+5V
2
 |
3
 o
4
| Reed
5
 o
6
 |
7
 +--100k--+-- CLOCK 74LVC161
8
 |        |
9
4K7      100nF
10
 |        |
11
GND      GND

Andere Entprellschaltungen:

https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29.1

darunter ein paar für LS-ICs.

Reedcounter schrieb:

wie in folgendem Video beschrieben

der entprellt, wohl per NE555 daher funktioniert das bei ihm. Trotzdem ein schlechtes Video.

Gast #7347354
Lesenswert?

Hallo zusammen,

Danke für eure Tips!

Lothar M. schrieb:

Hast du da mal mit einem Multimeter gemessen, welcher Pegel am offenen Pin anliegt,

Da liegen 1,9V an.

Michael B. schrieb:

wollen mit unter 300 Ohm nach Masse geschaltet werden

Ich habe jetzt mal einen 220 Ohm Widerstand als Pull-Down. Und tatsächlich am Pin liegen dann wirkliche 0V an und das mit dem zählen bei Kontakt geht viel "besser".

Ich frage mich nur gerade: Wenn ich den Pin Dauerhaft auf Masse bzw. 0V ziehe, dann verbrauche ich da ja die ganze Zeit Strom. Und der Pulldown mit 200 oder 300 Ohm ist ja nicht gerade groß. Die Sache ist die, dieser Zähler soll später an einem Messgerät im Gelände verbaut werden wo keine Netz-Versorgung existiert. Das ganze hängt dann an Autobatterien. Und von diesen Zählern (an Kippwaagen zur Niederschlag/Abflussmessung) werden dann ca. 16 Stück gleichzeitig laufen und auch noch einer oder mehrere Arduinos. Lange Rede kurzer Sinn: Die Counter-Lösung soll möglichst stromsparend sein. Wie schätzt ihr das ein? Wird das funktionieren??

Und jetzt nochmal zur Entprellung: Ok. ich brauche also 74LVC161 statt denen die ich habe.

Michael B. schrieb:

Ein 74LVC161 (nicht 163) hätte Schmitt-Trigger am Eingang und geht mit:+5V | o | Reed o | +--100k--+-- CLOCK 74LVC161 | | 4K7 100nF | | GND GND

Ich bin nicht firm im Lesen solcher "getippten" Schaltpläne - daher kurz meine Rückfrage. Ist das so wie ich das gezeichnet habe korrekt (siehe Anhang)?

Angehängte Dateien:
#7347374
Lesenswert?

Reedcounter schrieb:

Ist das so wie ich das gezeichnet habe korrekt

Ja.

Reedcounter schrieb:

Wenn ich den Pin Dauerhaft auf Masse bzw. 0V ziehe, dann verbrauche ich da ja die ganze Zeit Strom

Ja nun, Elektronikentwicklung besteht nicht aus dem erstbesten Bauvorschlag aus einem hilflosen YouTube Video.

Sondern dem, der zum Problem passt.

Akkuversorgung, entprellen, zählen, irgendwohin müssen die Daten auch noch also Display, Speicherkarte oder wegfunken, spricht doch sehr für einen modernen Mikrocontroller und nicht die Steinzeittechnik des 74LS163.

Will man Reedkontakte ohne Stromverbrauch trotz eventuell aus eingeschaltet stehender Position nimmt man einen UMSCHALTkontakt, der zählt am uC aus einer Knopfzelle problemlos 10 Jahre lang.

Nur auf dem YouTube Kinderkanal wirst du das nicht finden (auch chinesische Alarmanlagenfunkkontakte können das nicht).

#7347387
Lesenswert?

Reedcounter schrieb:

Das ganze hängt dann an Autobatterien. Und von diesen Zählern (an Kippwaagen zur Niederschlag/Abflussmessung)

Das hatten wir doch vor einigen Wochen ;-)

Beitrag "Viele Kippwaagen, wie zählen?"

werden dann ca. 16 Stück gleichzeitig laufen und auch noch einer oder mehrere Arduinos.

Und wozu dann der externe Zähler? Das kann der Arduino spielen allein.

Wie schätzt ihr das ein? Wird das funktionieren??

Und jetzt nochmal zur Entprellung: Ok. ich brauche also 74LVC161 statt denen die ich habe.

Nö.

Ein 74LVC161 (nicht 163) hätte Schmitt-Trigger am Eingang und geht mit:+5V | o | Reed o | +--100k--+-- CLOCK 74LVC161 | | 4K7 100nF | | GND GND

Ich bin nicht firm im Lesen solcher "getippten" Schaltpläne

Nennt sich ASCII art.

  • daher kurz meine Rückfrage. Ist das so wie ich das gezeichnet habe korrekt (siehe Anhang)?

Kann man machen, ist aber nicht unbedingt sinnvoll. Ein Reedkontakt an GND und ein Pull-Up Widerstand sind günstiger.

Gast #7347391
Lesenswert?

Reedcounter schrieb:

Ich bin nicht firm im Lesen solcher "getippten" Schaltpläne - daher kurz meine Rückfrage. Ist das so wie ich das gezeichnet habe korrekt (siehe Anhang)?

Ja, ist korrekt.

Aber: der LVC161 will mit 1.2 V bis 3.6 V versorgt werden, auch wenn er 5V an den Eingängen toleriert. Und er liefert demnach auch nur Ausgangssignale bis max. 3.6V. Es gibt auch den HC161, jedoch ohne Schmitt-T.-Eingänge. Da wäre noch ein HC14 Schmitt-Inverter notwendig, wie auch gezeichnet wurde.

Das ganze hängt dann an Autobatterien. Und von diesen Zählern (an Kippwaagen zur Niederschlag/Abflussmessung) werden dann ca. 16 Stück gleichzeitig laufen und auch noch einer oder mehrere Arduinos.

Durch 4k7 ist bei 5V Versorgung der Strom durch den Reedkontakt gerade mal gut 1mA und auch nur dann, wenn der Kontakt geschlossen ist. Das sollte bei einer Versorgung mit einer Autobatterie (Selbstentladung) und dem Betrieb von Arduinos nicht auffallen. Wenn die Leitungen kurz sind, darfst du auch den Widerstand auf 10k erhöhen. Aber wenn du schon µCs verwendest: mach die Entprellung in Software und lass den µC zählen. Damit bist du doch viel flexibler und brauchst weniger Hardware. Auch den '161er nicht - macht alles der µC. (Oder du hast zu wenig beschrieben, was du tun willst.)

Ich habe jetzt mal einen 220 Ohm Widerstand als Pull-Down.

So niedrige Werte sind nur bei TTL oder LS-TTL notwendig, die wirst du hoffentlich nicht mehr verwenden. Modernere CMOS-Eingänge begnügen sich mit dem selben Wert wie beim Pullup.

Es gibt auch Reedkontakte mit einem Umschalter. Dann reichen zwei NAND-Gatter zur Entprellung, ganz ohne Kondensator. Bei der Variante fließt aber immer der kleine Strom durch die Pullups.

Gast #7347406
Lesenswert?

Falk B. schrieb:

Den man verkraften kann, der OP braucht keine uA-sparsame Lösung.

Ich habe halt den Satz aufgenommen: Reedcounter schrieb im Beitrag #7347354:

Die Sache ist die, dieser Zähler soll später an einem Messgerät im Gelände verbaut werden wo keine Netz-Versorgung existiert.

Gast #7347455
Lesenswert?

Reedcounter schrieb:

Und tatsächlich am Pin liegen dann wirkliche 0V an und das mit dem zählen bei Kontakt geht viel "besser".

Ich frage mich nur gerade: Wenn ich den Pin Dauerhaft auf Masse bzw. 0V ziehe, dann verbrauche ich da ja die ganze Zeit Strom.

Jetzt wird es langsam Zeit, das Ohmsche Gesetz rauszuholen. Die misst über dem Widerstand eine Spannung von 0V. Preisfrage: Wieviel Strom fließt dann durch den Widerstand?

Ein Pull-Down bei einem 74LS sollte allerdings eher mehr Strom ziehen. Warum kein Pull-Up?

Und der Pulldown mit 200 oder 300 Ohm ist ja nicht gerade groß.

Selber Schuld, warum nimmst du einen so kleinen Widerstand? Warum überhaupt ein 74LS... und nicht ein 74HC...? Hast den jemand im Museum aus dem Magazin aussortiert?

Gast #7347544
Lesenswert?

Reedcounter schrieb:

dann verbrauche ich da ja die ganze Zeit Strom

Dein IC verbraucht auch dauernd Strom. Nimm einen 74HC163, der erlaubt eine wesentlich hochohmigere Auslegung der Schaltung.

Aber du brauchst immer noch einen Schmitt Trigger zwischen Kontakt und Zähler, damit das sauber funktionieren kann.

Ganz ohne Ruhestromaufnahme geht es nur mit einem Wechsler-Kontakt. Dann braucht man auch keinen Schmitt Trigger. http://www.berel-am-ries.de/WVSS/Arbeitsvorlagen/Prellfreier_Schalter/Endprellen%20eines%20Umschalters.htm

#7347566
Lesenswert?

Stefan F. schrieb:

Nimm einen 74HC163,

Ich denke, er sollte eher von jeder dieser Steinzeittechniken IC und Legoklötze namens Arduino Abstand nehmen.

Man baut das heute nicht nehr so, mit 19" Schränken, Notstromdieseln und Messstellenhäuschen.

Ein ordentlicher Mikrocontroller direkt an einer winzigen Batterie zahlt simultan seine 80 Kippwaagen.

Im anderen thread wurden dutzende von Vorschlägen gemacht, wie kommt er jetzt gerade auf einen 74LS163, als Forschungsarbeit der untauglichsten Lösung, Monolitharchäologie ?

Ich befürchte eher, er versteht kein Wort, ist heillos überfordert, seine Forschung findet nur im Rentnerschrebergarten statt, und 74LS163 war das einzige Bauteil bei dem er erkannte 'der ist so einfach, den verstehe sogar ich' (was sich, siehe die Probleme in diesem thread, als Irrtum herausgestellt hat) ohne dass er mit dem Ergebnis des 74LS163 irgendetwas anfangen kann, denn Programmieren kann er ja offensichtlich nicht, sonst hätte er seinen Arduino bis 15 und sogar darüberhinaus zählen lassen.

Stattdessen vermeidet er jede Ergründung der Grundlagen, wie lang der Impuls dauert, wie kurz der minimale Zeitabstand ist, wie lang die Kabel sein müssten, wohin mit den Zählergebnissen, bloss keine Fakten denn losgelöst von der Realität erscheint die Welt gleich viel märchenhafter.

Nein, es ist hoffnungslos, der falsche Job für ihn, er soll lieber Messbecher täglich kontrollieren.

Gast #7348190
Lesenswert?

Michael B. schrieb:

Ich befürchte eher, er versteht kein Wort, ist heillos überfordert, seine Forschung findet nur im Rentnerschrebergarten statt, und 74LS163 war das einzige Bauteil bei dem er erkannte 'der ist so einfach, den verstehe sogar ich' (was sich, siehe die Probleme in diesem thread, als Irrtum herausgestellt hat) ohne dass er mit dem Ergebnis des 74LS163 irgendetwas anfangen kann, denn Programmieren kann er ja offensichtlich nicht, sonst hätte er seinen Arduino bis 15 und sogar darüberhinaus zählen lassen.

Dass ich nicht vom Fach bin, habe ich im Eingangspost deutlich gesagt. Ich finde es unnötig in dieser Weise über die Kompetenzen anderer zu reden. Nicht jeder kann alles können...

Weil ein paar Fragen aufkamen, hier nochmal mehr Infos: In diesem Projekt hier geht es nicht um die Messung der 80 Kippwaagen (der Link der gepostet wurde). Aber um ein relativ ähnliches Setup.

Die Messstelle sieht so aus: an einem Arduino hängen vier Wägezellen (gewichtsmessung) die regelmäßig abgefragt werden. Ebenso sollen daran vier Kippwaagen (Abfluss/Niederschlag (Reedkontakt)) hängen und deren Kippungen gezählt werden. Das ganze steht im Wald und die erfassten Werten auf besagtem Arduino werden hin und wieder von einem Master abgerufen. An dem Master hängen noch weitere Messgeräte...

Warum nun mit den Countern? Vorher hatten wir es so gelöst, dass die Reedschalter der Kippwaagen mittels Interrupt am Arduino hängen. Jedoch kriegt der Arduino die Kippungen (Reedkontakt schlatet) nicht mit während er mit dem Abfragen der Wägezellen beschäftigt ist. Das ist schlecht, da dadurch natürlich falsche Werte entstehen.

Daher die Idee mit den Counters: Das zählen passiert unabhängig vom Arduino, dieser kann sich also aufs messen der Wägezellen und aufs schlafen "konzentrieren" und ruft nur alle 30 Sekunden den Wert von den Countern ab.

Das abfragen der Wertes soll über einen analog Pin des Arduinos funktionieren. Statt der LEDs wie jetzt, werden vier unterschiedlich große Widerstände verbaut, je nach Zustand (0-15) liegt dann eine unterschiedliche Spannung am Pin des Arduino an.

Sicher gibt es noch zig verschiedene andere Wege das zu lösen. Aber das erscheint uns mit unseren Kompetenzen und Möglichkeiten für uns machbar.

Und jetzt nochmal zum Thema Entprellung: Wenn ich das richtig sehe wäre eine Lösung die folgende:

Ich verwende den 74HC163 zusammen mit einem Schmitt-Trigger (und Reed dann auf Ground geschaltet). Also diesen hier https://www.reichelt.de/counter-4-bit-2--6-v-dil-16-74hc-163-p3153.html

Und der Schmitt Trigger? Würde dieser gehen? https://www.reichelt.de/inverter-hex-2--6-v-dil-14-74hc-14-p3140.html?search=74HC14

(dann brauche ich auch keine RC-Schaltung mehr, richtig?)

Vielen Dank wieder einmal für eure Hilfe!

Gast #7348205
Lesenswert?

Reedcounter schrieb:

Jedoch kriegt der Arduino die Kippungen (Reedkontakt schlatet) nicht mit während er mit dem Abfragen der Wägezellen beschäftigt ist.

Auweia! Im anderen Beitrag wurden Dir - dort als "Kippwaage" unterwegs - soviele Ansätze gezeigt, wie man das erledigen kann.

Man fragt die Eingänge im 1 ms Takt per Timer-Interrupt ab, wertet sie aus und erhöht den Zählerstand bei aktiver Änderung. Das ist so simpel und findet sich sicher 1000-fach im Netz beschrieben.

Michael B. schrieb:

Ich befürchte eher, er versteht kein Wort, ist heillos überfordert,

So sieht es aus. Aus Spaß hätte man ihm diesen Programmschnipsel noch schreiben können, aber jetzt sind beide Hände damit beschäftigt, sich die Tränen aus den Augen zu wischen.

Moderator (Firma: Titel) Persönliche Seite #7348211
Lesenswert?

Reedcounter schrieb:

Lothar M. schrieb:

Hast du da mal mit einem Multimeter gemessen, welcher Pegel am offenen Pin anliegt,

Da liegen 1,9V an.

Das ist ein für LS-Technologie bereits "High". Das wird mit 5V nicht "higher".

Reedcounter schrieb:

Daher die Idee mit den Counters: Das zählen passiert unabhängig vom Arduino, dieser kann sich also aufs messen der Wägezellen und aufs schlafen "konzentrieren" und ruft nur alle 30 Sekunden den Wert von den Countern ab.

Krude Idee. Wenn ich da einen Rechenknecht habe, dann ist der genau der Richtige für solche Zählaufgaben.

Denn: was passiert nach diesem "Abfragen"? Wer setzt den Zähler zurück? und was passiert, wenn genau in diesem Augenblick ein weiterer Zählimpuls kommt?

Das abfragen der Wertes soll über einen analog Pin des Arduinos funktionieren. Statt der LEDs wie jetzt, werden vier unterschiedlich große Widerstände verbaut, je nach Zustand (0-15) liegt dann eine unterschiedliche Spannung am Pin des Arduino an.

Hölle, noch kruder gehts kaum. Wenn ich dieses Konzept als Lehrer zu bewerten hätte, dann müsste ich nicht viele Punkte vergeben.

Was passiert denn, wenn sich die Spannung genau in dem Augenblick ändert, wenn du sie einliest? Was passiert, wenn der Zähler überläuft?

Wenn ich das richtig sehe wäre eine Lösung die folgende: ...

Wie gesagt: zeichne einen Schaltplan. Mit ein paar hinkopierten Links kann niemand deine Gedankengänge nachvollziehen. Aber du siehst: es wird nicht einfach werden.

Gast #7348233
Lesenswert?

Stefan F. schrieb:

Ganz ohne Ruhestromaufnahme geht es nur mit einem Wechsler-Kontakt.

Mit NAND-RS-FF ist immer ein PU an GND liegend. Also nichts mit 'ganz ohne Ruhestromaufnahme'! Bei einem Einzelkontakt ist das anders: nur solange der Kontakt geschlossen ist, fließt was durch den Pullwiderstand.

Reedcounter schrieb:

Und der Schmitt Trigger? Würde dieser gehen? https://www.reichelt.de/inverter-hex-2--6-v-dil-14-74hc-14-p3140.html?search=74HC14

(dann brauche ich auch keine RC-Schaltung mehr, richtig?)

Ja, das ist ein Schmitt Trigger, der aber invertiert - was üblicherweise nicht schlimm ist und wenn, dann kann man zwei in Reihe Schalten.

Aber die RC-Schaltung benötigst du trotzdem. Der Schmitt-T verhindert kein Prellen. Er ist nur dafür gedacht, mit einem langsam ansteigenden oder abfallenden Eingangssignal, hervorgerufen durch das RC-Glied, klar zu kommen. Normale Eingänge könnten neben einer erhöhten Stromaufnahme auch mehrfache Signalwechsel erkennen; es reicht ein kleine Störüberlagerung. Die Umschaltschwelle nach HIGH oder LOW liegt praktisch auf dem selben Pegel. Schmitttriggereingänge machen das nicht, weil deren Umschaltschwellen bei ca. 25% VCC (High → Low) und 75% VCC (Low → High) liegen.

Gast #7348246
Lesenswert?

HildeK schrieb:

Aber die RC-Schaltung benötigst du trotzdem.

Die nutzt ihm nichts. Wie soll er denn die 16 x LS163 auslesen? 16 x Arduini? Mit T0-Eingang wäre dann aber der LS163 überflüssig, wenn es irgendwie noch geschafft wird, einen Überlauf von T0 auszuwerten.

Insgesamt ein völlig falscher Ansatz!

#7348251
Lesenswert?

Reedcounter schrieb:

Dass ich nicht vom Fach bin, habe ich im Eingangspost deutlich gesagt. Ich finde es unnötig in dieser Weise über die Kompetenzen anderer zu reden. Nicht jeder kann alles können...

Muss auch gar nicht. Aber man sollte, zumal als Student, erkennen, wo seine Kompetenzen liegen und wo nicht.

Die Messstelle sieht so aus: an einem Arduino hängen vier Wägezellen (gewichtsmessung) die regelmäßig abgefragt werden. Ebenso sollen daran vier Kippwaagen (Abfluss/Niederschlag (Reedkontakt)) hängen und deren Kippungen gezählt werden. Das ganze steht im Wald und die erfassten Werten auf besagtem Arduino werden hin und wieder von einem Master abgerufen. An dem Master hängen noch weitere Messgeräte...

Das macht der Arduino spielend, wenn man weiß was man tut.

Warum nun mit den Countern? Vorher hatten wir es so gelöst, dass die Reedschalter der Kippwaagen mittels Interrupt am Arduino hängen.

Du hast es immer noch nicht verstanden. Schade.

Jedoch kriegt der Arduino die Kippungen (Reedkontakt schlatet) nicht mit während er mit dem Abfragen der Wägezellen beschäftigt ist.

Unsinn. Denn die Abfrage der Kontakte erfolgt quasi parallel per Timer-Interrupt]]. Und da deine Kippwagen im Verhältnis zu einem Mikrocontroller schnachlangsam schalten (Pulsbreite >100ms), ist das alles sehr entspannt.

Das ist schlecht, da dadurch natürlich falsche Werte entstehen.

Dein planloses, naives Gebastel ist das Problem.

Daher die Idee mit den Counters: Das zählen passiert unabhängig vom Arduino, dieser kann sich also aufs messen der Wägezellen und aufs schlafen "konzentrieren" und ruft nur alle 30 Sekunden den Wert von den Countern ab.

Sinnlos.

Das abfragen der Wertes soll über einen analog Pin des Arduinos funktionieren.

Noch sinnloser!

Sicher gibt es noch zig verschiedene andere Wege das zu lösen. Aber das erscheint uns mit unseren Kompetenzen und Möglichkeiten für uns machbar.

Weil ihr Null Plan habt und in eurem akademische Elfenbeinturm sitzt. Schickt mal euer Ego in den Urlaub und fragt Leute, sei es hier oder an anderen Fakultäten, wie man sowas RICHTIG macht. Ihr murkst rum und erfindet ein 5eckiges Rad. Aber voll das Makerfeeling, gelle?

(dann brauche ich auch keine RC-Schaltung mehr, richtig?)

FALSCH! Für eine Entprellung in Hardware braucht man den RC-Filter +Schmitt-Trigger.

#7348274
Lesenswert?

Reedcounter schrieb:

Jedoch kriegt der Arduino die Kippungen (Reedkontakt schlatet) nicht mit während er mit dem Abfragen der Wägezellen beschäftigt ist.

Das bedeutet nur, dass die Programmierkenntnisse unzureichend sind.

Es braucht keine extra Hardware, nur ein besseres Programm.

Reedcounter schrieb:

Weil ein paar Fragen aufkamen, hier nochmal mehr Infos

Leider hast du die Kernfragen wie lang die minimale Impulsdauer und wie häufig die maximale Widerholgeschwindigkeit bei den Kippwaagen sein wird, immer noch nicht beantwortet, wohl weil du die Antworten nicht auswendig weisst und ein Ermitteln der Antworten zu viel Arbeit ist.

So wird das nichts.

74LS163 ist jedenfalls der falsche Ansatz.

Arduino auch. Nackter ATmega328 ist batteriefreundlicher.

Gast #7348280
Lesenswert?

m.n. schrieb:

HildeK schrieb:

Aber die RC-Schaltung benötigst du trotzdem.

Die nutzt ihm nichts. Wie soll er denn die 16 x LS163 auslesen?

Ich bin an der Stelle nicht auf sein Konzept eingegangen, sondern habe ihn nur auf die Notwendigkeit des RC-Filters im Zusammenhang mit dem Schmitt-T. hingewiesen.

Sein Konzept ist mir momentan noch zu unklar. Ich weiß nicht, wie er seine Wägezellen abfragt, auch nicht, wie lange z.B. seine Kontakte jeweils geschlossen sind und warum das mit einer reinen µC-Lösung nicht ging. Viel weiter oben hatte ich schon in Frage gestellt, warum man nicht alles (Entprellen, Zählen) mit dem µC macht, wenn man schon einen verwendet.

(Firma: Privat) #7348306
Lesenswert?

Ich sehe auf dein Steckbrett auch kein Stützkondensator an +-, sollte man aber machen, möglichst dicht am IC, so 100nF. Ich mach das immer huckepack auf dem IC und direkt an die IC-Beinchen angelötet. Ansonsten, wie schon geschrieben, mit einen Schmitt-Trigger für gute Rechteckimpulse sorgen.

Gast #7348309
Lesenswert?

HildeK schrieb:

Viel weiter oben hatte ich schon in Frage gestellt, warum man nicht alles (Entprellen, Zählen) mit dem µC macht, wenn man schon einen verwendet

Das wurde in dem anderen Beitrag schon voll durchgekaut. Mein Vorschlag war - da ging es noch um 80 Kippwaagen - Schieberegister zum Einlesen aller Schalter zu verwenden und diese mit einem einzigen Controller auszuwerten. Es hätte mich sogar gejuckt, die Geschichte mit einem RP2040 (Pico-Board) umzusetzen, der das für wenig Geld locker erledigt hätte.

Es gab auch andere Vorschläge, die wohl alle sein Auffassungsvermögen gesprengt haben. Daher die genervten Reaktionen einiger Nutzer hier.

#7348347
Lesenswert?

Reedcounter schrieb:

Naja, ihr merkt schon, ich habe nicht wirklich einen Plan.

Stimmt. Du brauchst sehr viel Zeit und Ausdauer, um das Programmieren zu lernen oder jemanden, der das Projekt für Dich macht. Fehlende Kenntnisse kann man aber nicht durch zusätzliche Hardware ersetzen, die man auch nicht versteht.

Eine Lösung wäre, eine SPS zu nehmen und damit das Programmieren zu lernen. Man kann dann online die Signale beobachten und eine SPS arbeitet je Zyklus alles parallel ab, d.h. irgendwelche Wartepunkte blockieren andere Aufgaben nicht. Eine SPS enthält interne Ziehwiderstände, d.h. offene Eingänge haben immer einen definierten Zustand.

#7348349
Lesenswert?

Wolfgang schrieb:

FALSCH! Für eine Entprellung in Hardware braucht man den RC-Filter +Schmitt-Trigger.

Oder man verwendet eine Kontakt SPDT mit einem nachgeschalteten RS-FlipFlop

Dumm nur, daß Wechselkontakte in solchen Anwendungen eher selten sind, vor allem bei Reedkontakten. Und daß man viele RS-FlipFLops incl. höherem Verdrahtungsaufwand (GND, VCC, Signal) braucht. Jaja, unsere lieben Akademiker . . .

#7348355
Lesenswert?

Peter D. schrieb:

Eine Lösung wäre, eine SPS zu nehmen und damit das Programmieren zu lernen.

Das wäre eine schlechte Lösung. Der OP ist kein Student der E-Technik, sondern irgendwas mit Wasser und Biologie. Wenn er gescheit ist, findet er jemanden, der diese Aufgabe in guter Qualität für ihn löst. Alles andere dauert DEUTLICH länger und wird mit DEUTLICH weniger Qualität enden. Alles selber machen wollen ist Unsinn und unprofessionell!

Gast #7348556
Lesenswert?

Ich verstehe noch nicht, wie es möglich sein kann, das Kippen der Waage zu verpassen. Ich stelle mir das so vor:

links = Kontakt geschlossen rechts = Kontakt offen

Mehr als 2x pro Sekunde wird sie ja wohl kaum kippen können. Wenn der Mikrocontroller es nicht schafft, innerhalb einer halben Sekunde wenigstens einmal den Kontakt abzufragen, dann hat man einen grundsätzlichen Fehler im Software-Design.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren