Entprellen Wechselschalter/Taster

OP #3307577
Lesenswert?

Hallo zusammen,

ich möchte an meinen µC einen Taster entprellt anschließen. Da der 
Taster auf einen PinChange Interrupt geht und ich noch einen anderen 
Interrupt (Timer) laufen habe, möchte/muss ich den Taster hardwareseitig 
entprellen.

Mangels Bauteilen für die anderen Varianten habe ich mich für diesen 
hier entschieden:
http://www.mikrocontroller.net/articles/Datei:WechselEntprellC.PNG

Im Gegensatz zum verlinkten Schaltplan verwende ich einen Taster und 
einen 100nF Kerko. Als R1 habe ich 1kOhm eingesetzt.

Ich hatte nun allerdings Bedenken, ob ich mir da nicht den Eingang 
meines µC zerschieße?!
In dem Moment, in dem sich der Kondensator entläd, habe ich in Richtung 
Masse 1kOhm "im Weg", in Richtung µC nur den Innenwiderstand.
Entläd sich dann nicht der Kondensator mit voller Geschwindigkeit über 
den µC? Der verträgt ja am Port nicht allzu viel...

Liebe Grüße
Jonas
#3307615
Lesenswert?

Die hardware Entprellung ist völlig OK. Den Innenwiderstand des MC von 
einigen MOhm kannst du vernachlässigen. Der Kondensator wird über 1K 
geladen und entladen. Wen du allerdings keinen Umschalttaster hast, 
sonder nur einen Eintaster, solltest du noch einen 1K nach Masse 
spendieren.
Gast #3307657
Lesenswert?

brauchst du nicht andere Bauteilwerte?

t=RC=100µs
nach 100µs ist der Pegel also auf 60%. Dann muss dein Prellen also eine 
deutlich kleinere Zeit haben. Und der Schalter wird mit den Jahren 
schlechter!
OP #3307749
Lesenswert?

Peter Schulten schrieb:
> solltest du noch einen 1K nach Masse
> spendieren.

da ist was dran...^^
Ich hab die Widerstände nochmal etwas umgesetzt, so müsste es dann fast 
noch besser passen... (s. Anhang)

@Peter hm, ok... da habe ich wohl etwas zu schnell gedacht ;) vllt. 
probier ichs mit dem Timer irgendwann mal aus.

@rava Dem kann ich folgen... Aber warum soll das Problem beim 
Wechselschalter nicht bestehen...?! Und mein Kondesator ist ja bereits 
größer als der Vorgeschlagene... Oder gingen die 20nF noch von einer 
Schaltung ohne Widerstand aus??

LG
Angehängte Dateien:
Gast #3307758
Lesenswert?

Jonas R. schrieb:
> Ich hab die Widerstände nochmal etwas umgesetzt, so müsste es dann fast
> noch besser passen... (s. Anhang)

Und Du glaubst im Ernst, dass die Schaltung funktioniert? Womöglich noch 
0,1% Widerstände?
Ich weiß ja nicht, welchen µC Du verwendest. Mit einem AVR klappt das 
nicht.

Jonas R. schrieb:
> vllt. probier ichs mit dem Timer irgendwann mal aus.

Mach's am besten sofort.
OP #3307787
Lesenswert?

m.n. schrieb:
> Und Du glaubst im Ernst, dass die Schaltung funktioniert? Womöglich noch
> 0,1% Widerstände?
> Ich weiß ja nicht, welchen µC Du verwendest. Mit einem AVR klappt das
> nicht.

Diese Forenfreundlichkeit ist wieder umwerfend....
Wie du vielleicht bemerkt hast, habe ich bisher tatsächlich gedacht, das 
könnte funktionieren...
Da dies anscheinend nicht so ist, wärst du bitte so freundlich mir zu 
erklären warum?
OP #3307792
Lesenswert?

spontan schrieb:
> Pin-Change-Interrupt, wenn ich das schon lese, dann kommen mir die
> größten Bedenken, ob das Design halbwegs vernüftig ist.

Was hat denn die Verwendung des PCINT mit dem Design zu tun??
Der Grund dafür ist ganz einfach... Auf PortD, auf dem die Externen 
Interrupts sitzen ist bereits ein LCD angeschlossen, das mit 8bit 
angesteuert wird, und dementsprechend den gesamten Port belegt. (Und 
jetzt kommt mir bitte nicht mit "mach doch 4bit ans LCD!")

PS:
Ich verwende einen ATmega88PA
OP #3307908
Lesenswert?

Also... mittlerweile ist mir nun der gewaltige Denkfehler selbst 
aufgefallen.
Ich habe den Widerstand nun wieder zurück gesetzt, so sollte es aber 
wieder funktionieren, oder?
Eine einfache, kurze Erklärung wäre jedoch deutlich netter gewesen. Wenn 
das hier jedes Mal so läuft, dann traut man sich als einfacher Bastler 
bald gar nicht mehr hier irgendetwas zu fragen...
Angehängte Dateien:
Gast #3307928
Lesenswert?

Jonas R. schrieb:

> ich möchte an meinen µC einen Taster entprellt anschließen.

Ein RS-Kippglied wie z.B. im 4013 mit R und S (Reset, Set) ist ganz 
nützlich, oder zwei kreuzrückgekoppelte NAND- oder NOR-Gates (4001, 
4011), absolut zuverlässigst.

Allerdings braucht man dafür einen Taster mit drei Polen, das ist etwas 
lästig, oder zwei Taster für jeweils ein und aus.
Gast #3309105
Lesenswert?

Jonas R. schrieb:
> Nein. Idee war so eine Art Uhr auf dem LCD anzeigen zu lassen. Der
> Taster ist als Resetknopf vorgesehen, dabei will ich jedoch nicht gleich
> den ganzen Controller Resetten, sondern nur meine Variablen.

Dann brauchst Du erst recht keinen IRQ und Hardwareentprellung.
Du hast sicherlich sowieso Taster um die Uhr einzustellen, die dann mit 
PeDas Routine entprellen und einen zusätzlichen Taster (eventuell 
versenkt) für den Reset Deiner Uhr einbauen.
Spart viel Arbeit/Bauteile und ist sinnvoller.
OP #3309112
Lesenswert?

Es handelt sich hier um einen ganz einfachen Breadboard-Aufbau. Mein 
eigentliches Ziel ist kein perfektes großes Projekt, sondern ich bin 
dabei selbst den Umgang mit den Mikrocontrollern auszuprobieren und zu 
lernen. Der Aufbau besteht aus dem µC, einem LCD und dem Taster. 
(natürlich jew. incl. Grundbeschaltung)

Das Thema ist von meiner Seite erledigt, daher werde ich jetzt keine 
Fragen mehr beantworten, da diese erfahrungsgemäß in verschiedensten 
"geht doch viel besser"-Vorschlägen enden.

Ich bitte um Verständnis.


PS:
Tut mir leid, wenn das vllt etwas pampig ist, aber mir geht es gewaltig 
auf den Keks, wenn ich eine Frage stelle, und dann statt die Frage zu 
beantworten erst mal alles außenherum schlecht gemacht wird.
#3309221
Lesenswert?

Jonas R. schrieb:
> wenn ich eine Frage stelle, und dann statt die Frage zu
> beantworten erst mal alles außenherum schlecht gemacht wird.

Hier wird nix schlecht gemacht. Es wird nur auf

Jonas R. schrieb:
> sondern ich bin
> dabei selbst den Umgang mit den Mikrocontrollern auszuprobieren und zu
> lernen.

eingegangen. Aber wenn du mit aller Gewalt nicht lernen willst sondern 
nach wie vor deine Sichtweise durchsetzen willst, dann bitte, niemand 
zwingt dich, aber wenn du wirklich lernen wollen würdest, würdest du dir 
die Hinweise mit der Software-Entprellung wenigstens mal ansehen und 
feststellen, das geht viel einfacher.


Dennis
#3309829
Lesenswert?

Hi
Sorry, wenn ich mich erst nach Abschluss des Themas einmische. Jonas, 
wenn du in den Foren Fragen stellst, ist es ganz normal, das du nicht 
immer ganz gezielte Antworten bekommst. Das hat nichts mit 
Besserwisserei zu tun, aber wenn du eine Frage bezüglich Widerstands/ 
Kondensatorbeschaltung stellst, zeigt es, das dir das Wissen in der 
Elektronik fehlt. Natürlich lassen sich mit Lade- und Entladekurven 
aufzeigen, wann dein Eingang einen stabilen Status hat und das Gezappel 
des Pegels beim Schaltvorgang vorbei ist. Aber das setzt dann wiederum 
voraus, das du dem folgen kannst. Und da geht es mir auch wie anderen, 
das ich es nicht weiß, wer auf der anderen Seite der Strippe sitzt und 
schon gar nicht weiß ich um den Kenntnisstand der Materie beim 
Gegenüber. Außerdem, und mir klappern auch immer gleich die Liddeckel, 
Schalter mit Interrupt...., so was geht gar nicht. Klar, zum Üben macht 
es vielleicht Sinn, aber sonst nicht. Schon gar  nicht, wenn ich einen 
sowieso wachen Controller habe. Da reicht Polling und das ist auch 
völlig ausreichend. So schnell kannst du einen Kontakt gar nicht 
betätigen, das es der Controller "verschläft". Es ist halt dann nur ein 
Hinweis an den "Laien" auf der anderen Erdkugel, das dies ein 
Designfehler ist und so in der Regel nicht gemacht wird. Nimm's halt 
nicht persönlich.
Niemand will dir deine Art zu lernen kaputtreden, aber die Hinweise sind 
gut gemeint. Stell dir vor, wir würden Tastaturabfragen mit Interrupt 
gutheißen. Das lesen auch andere Anfänger und schon sind sie auf einem 
falschen Gaul aufgesessen. Daher wird bei einer so gestellten Frage 
immer der Hinweis kommen, Kontakte nicht in einer ISR zu erfassen. 
Irgendwann einmal wirst du auch mal eine Frage beantworten und dann 
vermutlich auch deine Weißheit weitergeben....
Schönes WE
Gruß oldmax
#3309852
Lesenswert?

Vielleicht sollte man auch die Gründe noch genauer ausführen, weshalb 
der Taster nicht am Int hängen sollte.
Habe ich mich beim ersten Mal als ich das gelesen habe auch gefragt: 
warum eigentlich nicht. Wenn ich den frei habe und es so machen möchte 
könnte ich es ja machen, technisch gibt's ja nix dagegen.

Aber der INT ist eine so wertvolle Resource, der in anderen Aufgaben 
viel passender ist, dass ich beim Design so etwas gar nicht erst 
anfangen sollte.
Lieber habe ich einen Timer Tick (Timer INT) jede Millisekunde, der auch 
mal nach dem Taster / den Tastern kuckt als den INT dafür zu verwenden, 
denn der sollte lieber auf Dinge reagieren, wo ich wirklich schnell sein 
muss (auf eine Flanke eines anderen Bausteins reagieren, z.B. wenn ein 
I2C-Transfer reinkommt o.ä.) und das auch viel häufiger als ein Taster 
jemals betätigt wird.
OP #3310163
Lesenswert?

hmmm jetzt muss ich mich wohl doch nochmals melden...

Danke Martin... Das passt ganz gut was du sagst.
Ich nehme auch gerne Kritik an, und Vorschläge, wie es besser wäre. 
Allerdings dann bitte mit kurzer Erklärung (Danke Conny!) und eben einer 
Antwort auf die eigentliche Frage.
Was mich eben so gestört hat, war dieses "Falsch" ohne kurze Info dazu. 
Und so blöd der am anderen Ende auch sein möge. Eine Begründung, die der 
andere evtl. nicht auf Anhieb versteht, ist sinnvoller, als nur 
"schwachsinn, machs anders."

Wie gesagt, ich werde mir die Softwaregeschichte wohl demnächst mal 
anschauen müssen, habe im Moment aber die Hardwarevariante aufgebaut.

LG
Jonas

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