Für mein Projekt benötige ich einen Rotary Switch mit Taster Funktion. Nach einigem hin und her suchen habe ich rausbekommen, dass für meine Bedürfnisse am besten eine hardwaremäßiges Debouncen an effektifsten ist (Der Rotary muß über Interrupts angeschlossen sein, weil er das laufende Programm ggef unterbrechen muß).
Nun habe ich eine Hardware Debounce für einen Taster realisiert. An einer 5V Quelle ist ein 10K Wiederstand, an diesem Dann der Switch und parallel dazu ein 10 uf Elko, und den Schaltmechanismuß greife ich über einen invertierten Schmitt trigger an den Arduino Mega angeschlossen habe (Siehe Anhang).
Nun wollte ich daraus eine Platine machen und stolpere darüber, das ich ja diese Schaltung 3mal machen muß, und daher die Elkos und die Wiederstände im Prinzip parallel hängen. Kann ich das einfach so machen, oder bekomme ich dann Probleme weil Spannung und Wiederstände dann nicht mehr stimmen?
danke für die schnelle Antwort. Im Prinzip macht hier der IC alles was ich per Hand gemacht habe, wenn mein englisch soweit ausreicht um das zu verstehen, sprich ich gebe an Pin 1 mein Signal vom Schalter und erhalte an 2 das saubere Eckige Signal
ein paar Sachen verstehe ich aber dabei noch nicht:
VSS = GND? oder wo schließe ich GND an dem Teil an?
wenn ich von den 6 Ports nur 3 Verwende, muß ich die inputs von 4, 5 und 6 auf VSS schalten richtig?
Wie berechne ich den Kondensatot. Wenn ich den Text am Anfang richtig verstehe, wird über den Kondensator ein interner Zeitgeber gesteuert. jedes fünfte Signl wird dann als neuer Input gewertet?
In meiner Schaltung sorgt ja der Schmitt Trigger dafür, das ich aus dem ankommenden abgerundetem Signal ein "Eckiges" erhalte. Dieses benötige ich in meiner Schaltung invertiert. Der IC hat ja ebendalls einen Trigger drin aber nur auf Pin7? Das ist ja der OSC Eingang? Oder muß ich die Signale, die aus dem Teil kommen trotzdem nochmals in eine externen Trigger leiten?
Fragen über Fragen Sorry aber ICs sind leider neuland für mich und ich benutze den Arduino um mehr drüber zu lernen und mein altes Wissen wieder aufzufrischen, welche fast 15 Jahre alt ist)
Wenn Du an den Ausgängen 4,5,6 nichts anschliesst ist es egal ob Du die Eingange 4,5,6 mit GND verbindest oder nicht. Da sich dies nicht auf die Eingänge/Ausgänge 1,2,3 auswirkt.
Eingänge sollten immer auf ein definiertes Potetial geschaltet werden da sie unbeschaltet störungen einfangen könnten und da schwingen und so eine große Verlustleistung (auch bei CMOS ICs) produzieren.
Einfach auf GNd schalten.
Grüße Uwe
Der IC hat ja ebendalls einen Trigger drin aber nur auf Pin7? Das ist ja der OSC Eingang? Oder muß ich die Signale, die aus dem Teil kommen trotzdem nochmals in eine externen Trigger leiten?
Die Ausgangssignale sind eh Rechtecke. Die kannst du direkt verwenden, wenn du mit Vcc = 5V arbeitest.
Der Pin 7 ist der Takteingang, und braucht daher als einziger eine schöne Flanke.
danke erstmal für die Antworten. War paar Tage auf Fortbildung, daher melde ich mich erst jetzt.
Wenn ich das also richtig verstanden habe, kann ich die Bounce Frequenz aus der Docu vom Schalter rauslesen:
Wenn ich die Docu richtig lese, dann habe ich eine Bounce-Zeit von 5ms (Siehe Anhang). Diese muss ich dann durch 4 Teilen und erhalte dann die Frequenz, die ich zum D-Bouncen benötige. Diese kann ich dann ja in die Formel bei dem IC einsetzen, und nach dem Kapazitator auflösen =
C = 1,5/(1/(5*10^3)/4)) = 1875, somit würde ich einen 2200pF Kondensator benötigen (das ist zumindest der nächst größere den ich gefunden habe).
Wenn denn meine Rechnung nun stimmt, wie schliesse ich denn das Teil an? Einwach vor den OSC eingang hängen?
Chaos_Lord:
C = 1,5/(1/(5*10^3)/4)) = 1875, somit würde ich einen 2200pF Kondensator benötigen (das ist zumindest der nächst größere den ich gefunden habe).
Wenn denn meine Rechnung nun stimmt, wie schliesse ich denn das Teil an? Einwach vor den OSC eingang hängen?
Laut Datenblatt den Kondensator an die beiden Oszillator-Anschlüsse hängen und Dioden auf Masse bzw +5V
ok wenn ich Deine Antwort und auch das Datenbaltt richtig verstehe "Schaut der IC ob zwischen OSCin und OSCout was eingebaut ist, und wenn ja dann wird der interne Oscilator verwendet". Sprich durch den Kapazitator zwischen den beiden Anschlüssen sage ich dem IC nimm deinen eigenen. Durch die Rechnung (wie oben aufgeführt, wobei ich hoffe das ich mich da nicht vertan habe) stelle ich die Frequenz ein.
Die Beiden Dioden sind ja nur dafür da, um den IC vor einer Überspannung beim Abschalten zu schützen. Warum wernden die aber beide an VDD angeschlossen? einfach nur als Ableiter von einem Signal welches von Innerhalb des ICs kommt? Dann würde ich damit ja den Kondensator und nicht den IC schützen?
Hier müßte ich doch mit einer Schottky Diode, 20V, 1A mehr als ausreichend auf der sicheren Seite sein.
ich verzweifle hier gerade an dem MC 14490P. Zunächst lief alles wunderbar. Nun aber erhalte ich am Arduino keinerlei Signal. Daher erstmal eine Verständnissfrage:
VDD = +5V (vom Arduino)
VSS = GND (vom Arduino)
Ain = +5V vom Taster Kommend
Aout = Pin2 der mittels attachInterrupt abgefragt wird.
Alle anderen Ain habe ich an +5V gehängt.
Als Zeitgeber habe ich einen Externen Zeitgeber, aktuell mit 1sec (nur für Testzwecke aus verzweifelung)an OSCin angeschlossen. OSC out ist offen
Wenn ich nun alles richtig verstanden habe müßte beim Drücken des Taster ein +5V signal am Ain liegen. Dieses wird an Aout weitergeleitet. Alle innerhalb der nächsten 4 Sekunden ankommenden Signale werden ignoriert.
Am Arduino müßte dann ein High Signal ankommen.
Leider kommt garnichts an. Kann es sein, dass der IC nen schaden hat, oder habe ich was falsch verstanden oder was könnte noch sein?
Hoffe das das so verständlich ist . Der Tacktgeber funktioniert einwandfrei und liefert, wenn am Arduino interrupt0 angeschlossen brav jede Sekunde ein Count up. Die gesamte STromversorgung kommt momentan vom Arduino.
Nach dem Code müste auch wenn ein nicht gefiltertes Signal kommt wenigstens in der Console was erscheinen, tut es aber nicht
Hoffe das ich so ein wenig klarheit reinbringen konnte.