Forum: Mikrocontroller und Digitale Elektronik HILFE! Schalter als Taster, Impuls beim Ein- und Ausschalte


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Benjamin Götze (Gast)


Lesenswert?

Wir haben folgendes Problem. Und zwar wollen wir einen Schalter zum
Tasten benutzen:
Die Schaltung soll einen Schaltimpuls geben, wenn der Schalter
eingeschaltet wird und ebenfalls einen Schaltimpuls geben, wenn er
wieder ausgeschaltet wird. Der Schaltimpuls soll ungefähr eine
1/100-Sekunde dauern. Die Schaltung soll bei 9 Volt laufen.

Für jede Hilfe wären wir dankbar. Wir haben schon eine Reihe
Schaltungen gefunden (Monostabiler Multivibrator), allerdings
berücksichtigten diese nicht, dass der Schalter von Ein- auf
Ausgeschaltet ebenfalls ein Signal triggern soll.

Vielen Dank.

von Malte (Gast)


Lesenswert?

schnapp dir nen 1200A AVR für nen Oiro und dann schreibst ein paar
zeilen code dafuer und du hast deine gewünschte funktion. wenn du magst
kann ich dir das programm auch schnell in AVR ASM schreiben.

von Matthias (Gast)


Lesenswert?

Hi

also bitte!
Für sowas triviales eine µC zu verwenden ist absoluter und totaler
Overkill. 74HC123 + ein bischen Hünerfutter reicht vollkommen.

Matthias

von Malte (Gast)


Lesenswert?

sorry, matthias, ich liebe overkills! meine Waschmaschine läuft auch mit
nem AVR :)
habe nur keinen anderen Tip geben können, da ich Programmierer bin und
eigentlich mit Elektronik nur Hobbymaessig zu tun habe und mich mehr
auf Controller stürze, mit dem Elektronikgewurschtel rund um die uC's
habe ich nicht so ganz den 100%igen Durchblick, aber das wird mit der
zeit :)

von Tom (Gast)


Lesenswert?

Hey Matthias,

los gehts... Wer sich soweit aus dem Fenster lehnt (74HC123 mit
Hühnerfutter)... Wo ist denn jetzt Deine Schaltung, hm?

von Matthias (Gast)


Angehängte Dateien:

Lesenswert?

Hi

im Anhang. Rechnung kommt :-)
Allerdings kommt hier zur Ausgangszeit noch die Prellzeit der Taster
hinzu. Ist das nicht erwünscht muß man einen 74HC221 verwenden. Der ist
nicht nachtriggerbar. Allerdings muß dann die Ausgangszeit größer als
die Prellzeit der Taster sein.

Evtl. reicht sogar 1/2 74HC123. Müßte ich mal durchdenken. Da fehlt mir
jetzt aber die Zeit zu.

Matthias

von Olaf (Gast)


Angehängte Dateien:

Lesenswert?

Moin, moin,

ohne lange nachzudenken, nur mal so als Idee ...

Gruß,
Olaf

von Peter U. (e-schock)


Lesenswert?

Genau sowas suche ich auch, allerdings nicht mit soviel Bauteilen. Ich 
habe 32 Schalter und möchte dass beim Einschalten kurz ein Impuls 
rausgeschickt wird (wie lange der Impuls dauert ist egal, solange es 
unter 1 Sekunde dauert). Beim Ausschalten natürlich das gleiche Problem. 
Bei 32 Schaltern wäre natürlich für jeden Schalter so eine Schaltung 
nachzubauen auch ein Overhead, hat jemand evtl. eine Idee wie man das 
möglichst wenig Bauteilen realisieren kann?

von Nils ‫. (n-regen)


Lesenswert?

Bei 32 Schaltern könnte sich ein Mikrocontroller doch lohnen.
Man könnte über Dioden alle Schalter mit einem Interrupt-Pin verbinden 
und beim Auslösen des Interrupts per Shiftegister die Schalter abfragen 
und den entsprechenden Impuls ausgeben.
Wenn man zwei Shiftregister(kaskaden) (Ein- und Ausgabe) und einen 
Interrupt-Pin hernehmen möchte (= 9 Pins), würde ein ATmega 8 o.ä. 
passen.
(Falls du damit nicht klarkommst, kann ich versuchen, dir sowas zu 
programmieren.)

von Peter U. (e-schock)


Lesenswert?

Danke n-regen, ich werde es wohl erstmal über den 74hc123 probieren. 
Habe bei Conrad einen 74hct123 bekommen, hatte hier noch paar 
Kondensatoren und Widerstände rumliegen und hab mal mit paar 
Krokodilklemmen den oberen Teil der Schaltung von Matthias nachgebaut 
(1C1B). Allerdings sobald ich die Batterie anschliesse leuchtet die LED 
ganze Zeit, wenn ich den Schalter schliesse geht und bleibt die LED aus, 
bis ich denn Schalter wieder öffne.
Mein 74hct123 hat 16 Beinchen, laut Datenblatt sind also 2 Monoflops 
verbaut, wobei Pin 16 = VCC und Pin 8 = GND ist 
(http://www.nxp.com/documents/data_sheet/74HC_HCT123.pdf). Das CLR in 
Matthias Schaltung soll doch das 1RD aus dem Datenblatt sein, oder?
Wo könnte der Fehler liegen? Also ich wäre erstmal zufrieden wenn beim 
Schalter-Schliessen ein Impuls geschickt wird. Wenn das klappt wäre es 
natürlich schön auch beim Öffnen ein Impuls zu kriegen. Hoffe ihr könnt 
mir helfen.

von Florian S. (der_picknicker)


Lesenswert?

Beim Anschließen kannst du nicht viel falsch machen. Im Schaltplan von 
Matthias stehen ja die Pin-Nummern direkt an den Anschlüssen. Diese 
Pin-Nummern entsprechen genau denen deines ICs. Also ja, 1RD ist RES vom 
unteren Block (IC1A) des Schaltplans. Beachte vielleicht, dass die Pins 
des oberen Blocks im Schaltplan (IC1B), den Pins mit der vorangestellten 
2 im Datenblatt entsprechen und die des unteren denen mit der 
vorangestellten 1. Aber wenn du genau nach den Pin-Nummern im Schaltplan 
anschließt, brauchst du darauf nicht achten ;)
Ich würde den Fehler dann (wenn die Anschlüsse stimmen) vielleicht bei 
den Werten des Kondensators und des Wiederstandes suchen (C1+R1 und 
C2+R2). Laut Datenblatt sind da sehr kurze Zeiten von einigen 
Nanosekunden möglich. Schau dir dazu im Datenblatt mal Table7 und 
Figure7 an (am besten den ganzen Abschnitt 10).
Aus Figure7 kann man leider nur Zeiten bis nichtmal 1ms entnehmen. Das 
entspräche dann ungefähr 100k und 10nF. Auf Seite 10 des Datenblattes 
findest du unter der Tabelle bei Anmerkung 2 eine Formel, um Zeiten für 
Cext > 10nF zu berechnen. Diese wist du wahrscheinlich benötigen, da 
dein C viel größer als 10nF sein sollte um 1. die gewünschten 100ms zu 
erreichen und 2. den Widerstand kleiner zu dimensionieren. Beachte dass 
in der Formel C in pF und R in kOhm eingesetzt wird...was red ich 
eigendlich...steht da ja alles.
Gutes Gelingen!
Florian

von Shuzz (Gast)


Lesenswert?

Für 32 Schalter würd ich auf jeden Fall nen Controller nehmen.
Bei geschickter Verschaltung & Programmierung sollte da ein Tiny13 o.Ä. 
vollkommen ausreichen.

Macht insgesamt dann 1 Tiny2313 und 8 Schieberegister (4 für Eingabe, 4 
für Ausgabe) plus das bissle Hühnerfutter was man da so braucht.

von Phil (Gast)


Lesenswert?

Hallo Leute!

Ich habe eine Problem mit dem hier besprochenen 74HCT123E, das sich 
folgendermaßen darstellt, ich hoffe, Ihr könnt mir helfen:

Ausgangssituation ist folgende:

ein 2-Bit Binärsignal  wird über einen 74CH139 'demultiplexed' und über 
vier Ausgänge (Active Low) angezeigt. Das Binärsignal liegt 
kontiniuerlich an (es handelt sich um zwei Adern, die eben High oder Low 
sein können); entsprechend ist auch der passende Ausgang am 74HC139 Low, 
solange das passende Binärsignal reingeht. Der Teil der Schaltung 
funktioniert einwandfrei.

Hinter dem Demuxer sitzen zwei 74HTC123E, die bei einer negative Flanke 
des entsprechenden Ausgangs des Demuxers einen kurzen Puls abgeben 
sollen. Heißt also, wenn sich der Wert des Binärsignals ändert, will ich 
einen kurzen Puls am Ausgang desjenigen 74HCT123E, der der Binär 
kodierten Zahl des (neuen) Eingangssignals entspricht.

Ich habe das Problem, dass der 74HCT123E, obwohl nur der Negierte 
Eingang angeschlossen ist, auch bei steigender Flanke eines der Ausgänge 
am 74HC139 triggert.
Kenn Ihr dieses Problem?
Was kann man da machen?


Grüße & Danke schon mal,

P

von Phil (Gast)


Angehängte Dateien:

Lesenswert?

So, jetzt gibt's noch einen Schaltplan der interessanten Teile.

Es wird nur der Ausgang A\ angesteuert, daher sollte bei einer 
steigenden Flanke aus kein Puls kommen, richtig? Tut er aber....

Gruß
P

von Hartmut (Gast)


Lesenswert?

Hallo,
für die Überwachung einer Pumpe werde ich einen Schwimmerschalter (NO) 
einsetzen. Das Signal soll dann über ein FS20 S4M Sendemodul in meine 
RaspberryMatic über einen CUL-Nano eingebunden werden. Nun werden jedoch 
vom Sendemodul lediglich Tastbefehle akzeptiert und somit muss das 
Signal vom Schwimmerschalter entsprechend aufbereitet werden. Die 
Schaltung von Matthias habe ich auf einem Steckbord nachgebaut. Um eine 
umsetzbare Zeit für das Sendemodul zu erhalten habe ich die Formel aus 
dem Datenblatt des 74HC123 genutzt und für R1, R2 entsprechend 2Mohm / 
100nF für 90 Millisekunden ermittelt.  Für R3 habe ich 100k genommen.
Sobald ich die 5VDC anlege, bricht die Spannung nach einem kurzen 
Augenblick zusammen. Wenn ich jedoch die VCC am Pin 10 und 11 des IC´s 
entferne bleibt die Spannung stabil und die Stromaufnahme bei 35mA - 
leider funktioniert die Schaltung dann nicht. Am Ausgang messe ich etwa 
3,8V bzw. 0V entsprechend der Schalterstellung.

Ich habe das Steckbord zig malig kontrolliert und weiß nicht mehr 
weiter.
Kann die Schaltung von Matthias überhaupt funktionieren?
Wenn ja, wo könnte ich den Fehler machen?
Hat vielleicht sonst jemand noch eine andere Schaltung für mich?
Ich hoffe, dass mir einer von Euch helfen kann.

Hartmut

Wenn ich nicht eine größere Menge an StoT´s haben müsste, dann würde ich 
mir ja die "Dinger" von "pic-tec" kaufen.

von Michael B. (laberkopp)


Lesenswert?

Hartmut schrieb:
> Kann die Schaltung von Matthias überhaupt funktionieren?

Ja, allerdings ist sie massiv zu kompliziert, die hier tut dasselbe:
1
+5V         +5V
2
 |           |
3
4k7          |
4
 |      SN74AHC1G86
5
 +----------|\
6
 |          |+)--
7
 +-100k--+--|/
8
 |       |   |
9
 o       |   |
10
\       1uF  |
11
 o       |   |
12
 |       |   |
13
GND     GND GND

Hartmut schrieb:
> für R1, R2 entsprechend 2Mohm /
> 100nF für 90 Millisekunden ermittelt.

Das Datenblatt zeigt aber nur Werte bis 100k (und selbst da wird die 
Zeit schon kleiner als berechnet). Deine 2MOhm sind also zu viel.

von Hartmut (Gast)


Lesenswert?

Hallo Michael,
vielen Dank für deine schnelle Antwort.
Deine Schaltung ist ja wirklich viel unkomplizierter. Ich habe jedoch 2 
Fragen dazu:
1. den SN74AHC1G86 scheint es nur in SMD zu geben. Damit, ich mit meinen 
groben Fingern ;-) etwas anfangen kann - gibt es den auch als DIL/DIP ?
2. Der 1µF - kann das ein Elko sein?

Ich würde mich sehr freuen, wenn ich eine kurze Antwort erhalte.

Hartmut

von Oliver R. (roliver75)


Lesenswert?

Matthias schrieb:
> Hi
>
> im Anhang. Rechnung kommt :-)
> Allerdings kommt hier zur Ausgangszeit noch die Prellzeit der Taster
> hinzu. Ist das nicht erwünscht muß man einen 74HC221 verwenden. Der ist
> nicht nachtriggerbar. Allerdings muß dann die Ausgangszeit größer als
> die Prellzeit der Taster sein.
>
> Evtl. reicht sogar 1/2 74HC123. Müßte ich mal durchdenken. Da fehlt mir
> jetzt aber die Zeit zu.
>
> Matthias

Hallo Forum,

ich habe die Schaltung aus den Bild aufgebaut, habe die !Q Ausgänge 
verwendet und die Dioden gedreht und einen 4,7k pullup verwenden.
Die Impulse habe ich von ca. 18ms (100n und 470k(ja zu gross)).
Jetzt wollte ich erreichen, das bei jedem Schaltvorgang eine Variable
(Bit 7) toggelt. Leider nicht so ganz..

mein Code
1
#define KEY_DDR         DDRD
2
#define KEY_PORT        PORTD
3
#define KEY_PIN         PIND
4
#define KEY0            2
5
#define KEY1            3
6
#define KEY2            4
7
#define KEY3      5
8
#define ALL_KEYS        (1<<KEY0 | 1<<KEY1 | 1<<KEY2 | 1<<KEY3)
9
10
... Init ...
11
char wechsel = 'x';
12
13
while (1)
14
{
15
if (!(PIND & (1<<KEY3))){
16
      wechsel ^= (1<<PD5);
17
      USART_Transmit(wechsel);
18
      uart_puts("\r\n");
19
}

leider läuft in der Seriellen console das x X immer langsam durch, denke 
es liegt an der Schaltung, das Schalten ist nicht erkennbar oder gibt es 
da eine besser Lösung?

Auf dem Oszi ist der Flankenwechsel und die Low Zeit gut erkennbar, oder 
ist meine Zeit von 18ms zu kurz als Tasten druck?

Gruß

Oliver

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.