Hallo
Ich suche eine einfache Schaltung, die einen Ausgang setzt, wenn am
Eingang ein Puls länger als eine bestimmte Zeit ansteht.
ZB. min. Pulsdauer ist 10s
Am Eingang liegt ein 5V Puls von 5s an, Ausgang bleibt low.
Am Eingang liegt ein 5V Puls von 11s an, Ausgang geht für eine bestimmte
Zeit auf high und danach wieder auf low.
Würde gerne so eine Schaltung ohne Verwendung eines uPs realisieren.
Kennt jemand eine einfache Schaltung die das kann?
mfg
Sektionschef
Uwe schrieb:> wobei 10min schon ganz schön> lange ist.
Nur zur Info: der TO redet von 10 Sekunden.
Zwei Monoflops. Das erste mit einer Zeit von 10s, das Zweite wird eine
Verknüpfung vom Eingangssignal und dem 1.Monoflopausgang benötigen und
wird dann getriggert, wenn das 1. Monoflop abfällt und das
Eingangssingal noch immer anliegt.
Peter L. schrieb:> Am Eingang liegt ein 5V Puls von 11s an, Ausgang geht für eine bestimmte> Zeit auf high und danach wieder auf low
Nach Ende des 11s Pulses oder nach 10s?
Georg M. schrieb:> Sowas wie 74HC4538?
Ja.
Und so gefühlsmäßig müsste das sogar ohne Zusatzgatter gehen, da der
jeweils zwei Eingänge hat, die jeweils für den andern als Enable/disable
nutzbar sind ...
Georg M. schrieb:> Aber warum? Warum?! Warum?!!
Aber warum auch der Rum!?
:)
1. Weil es interessant ist und Spaßt macht.
2. Für jemanden, der Firm in µC-Programmierung ist und für mindestens
einen Typ eine Entwicklungsumgebung auf dem Rechner hat und deren
Bedienung beherrscht, ist die µC-Variante der kürzeste Weg. Für
jemanden, der sich evtl. in µC-Technik erst einarbeiten müsste, ist er
es definitiv nicht.
Peter L. schrieb:> Das soll hier nicht diskutiert werden.
Sorry, hast recht, ich konnte mich nicht zurückhalten.
Georg M. schrieb:> Aber warum? Warum?! Warum?!!
Weil für sowas ein ganz winziger µC (sowas im SOT23-6) genau der
Richtige wäre - aber der TO sich nicht dazu durchringen kann, für sowas
mal ein paar Zeilen in Assembler zu schreiben.
DARUM.
Ich hatte mal nen Kollegen, der sich naserümpfend derart geäußert hatte:
"ich wüßte nicht, warum ich so einen µC NICHT in C programmieren
sollte" - und das bei einem Teil mit maximal 512 Programmschritten.
Forensisch: "streitet ab mit Nichtwissen".
Tja, die heutigen "Fachleute" bemänteln ihre eigentliche Unfähigkeit mit
hochnäsigem Gehabe, das ist alles.
W.S.
Georg M. schrieb:> Aber warum? Warum?! Warum?!!W.S. schrieb:> Weil für sowas ein ganz winziger µC (sowas im SOT23-6) genau der> Richtige wäre - aber der TO sich nicht dazu durchringen kann, für sowas> mal ein paar Zeilen in Assembler zu schreiben.>> DARUM.
Da der TO ausdrücklich nach einer nicht-µC basierten Lösung fragt, ist
diese Diskussion in diesem Thread OT.
Ich schlage daher vor, dass diejenigen von Euch, die dies unbedingt
diskutieren möchten, einen eigenen Thread dafür eröffnen!
W.S. schrieb:> Ich hatte mal nen Kollegen, der sich naserümpfend derart geäußert hatte:> "ich wüßte nicht, warum ich so einen µC NICHT in C programmieren> sollte" - und das bei einem Teil mit maximal 512 Programmschritten.>> Forensisch: "streitet ab mit Nichtwissen".>> Tja, die heutigen "Fachleute" bemänteln ihre eigentliche Unfähigkeit mit> hochnäsigem Gehabe, das ist alles.
Dass diese Deine Äußerung ihrerseits ein wenig hochnäsig wirken könnte,
kommt Dir nicht in den Sinn? ;)
@WS
Das hochnäsige Gehabe scheint jetzt eher deins zu sein. Es gibt gute
Gründe für sowas keinen uC zu verwenden:
1.) Ich brauch eine Entwicklungsumgebung für den uC
2.) Ich muss das uC Datenblatt/Handbuch lesen und verstehen
3.) Ich muss das Programm bei jedem Exemplar downloaden, das kostet Zeit
und einen Stecker.
Eine Hardwarelösung ist hier sicher die bessere Wahl.
Grüsse
Peter L. schrieb:> Würde gerne so eine Schaltung ohne Verwendung eines uPs realisieren.> Kennt jemand eine einfache Schaltung die das kann?
Hi,
meinst Du so etwas?
ciao
gustav
HildeK schrieb:> Bestimmt nicht - lies doch einfach mal den Eröffnungspost und die> Antwort auf die Nachfrage von Lothar M.Lothar M. schrieb:> Nach Ende des 11s Pulses oder nach 10s?Peter L. schrieb:> nach Ende des 11s Pulses.> mfg
Versteh ich nicht.
Entweder 11 Impulse oder 11 Sekunden.
Was denn nun?
ciao
gustav
Karl B. schrieb:> Peter L. schrieb:>> nach Ende des 11s Pulses.>> mfg>> Versteh ich nicht.> Entweder 11 Impulse oder 11 Sekunden.>> Was denn nun?
Nach dem Ende eines 11 Sekunden dauernden Impulses soll die Ausgabe
erfolgen (quasi mit der fallenden Flanke des Eingangssignales, welches
zuvor länger als 10 Sekunden H war).
Karl B. schrieb:> Versteh ich nicht.> Entweder 11 Impulse oder 11 Sekunden.>> Was denn nun?
Naja, so schwer ist das doch nicht :-)
Lothar fragte, ob nach Ablauf der 10s das Ausgangssignal gestartet
werden soll oder nach 11s, bei der negativen Flanke des Eingangssignals.
Wenn der Eingangsimpuls kürzer als 10s ist, dann soll kein
Ausgangssignal kommen.
Und M.A.S. hat es nochmals schön gezeichnet ...
Der Spielerei halber hier mal ein komplett analoger Schaltungsentwurf.
C1 muss an die Flankensteilheit des Signals angepasst werden, die
geforderten Zeiten kann man durch Variation der Widerstände R3 und R7
einstellen. R1/C2 müssen eventuell an das Eingangssignal angepasst
werden.
U3 muss bei Single Supply auch negative Eingangsspannungen verwerten
können.
Frank B. schrieb:> Der Spielerei halber hier mal ein komplett analoger Schaltungsentwurf.
Hier ein komplett digitaler ;-)
1
5V
2
| 100n
3
o---||---|
4
|
5
.---.
6
In ------| |----- Out
7
'---'
8
|
9
---
Ich finde es gut, dass es solche uC wie den Tiny9 für knapp 50 Cent
gibt. Deshalb liegen auch immer ein paar im Schrank...
M.A. S. schrieb:> Für jemanden, der Firm in µC-Programmierung ist und für mindestens einen> Typ eine Entwicklungsumgebung auf dem Rechner hat und deren Bedienung> beherrscht, ist die µC-Variante der kürzeste Weg. Für jemanden, der sich> evtl. in µC-Technik erst einarbeiten müsste, ist er es definitiv nicht.
Es lohnt sich aber.
Hier das wesentliche Programm zur Lösung der Aufgabe. Es braucht
nichtmal irgendeine Variable:
1
// ein paar Zeilen Header einbinden
2
#define EineBestimmteZeit 1000
3
main(){
4
// ein wenig Vorgetüdel mit Initialiserung der Pins
5
for(;;){
6
while(!(PINB&1)){};// warten, bis High am Eingang PB0
7
delay_ms(10000);// erstmal 10 Sekunden abwarten
8
if(PINB&1){// nach 10s noch immer High am Eingang?
Der TO hat schon einen weiteren Thread gestartet, wo er sich Infos zum
Einstieg in die µC-Welt holt.
Lothar M. schrieb:> Ich finde es gut, dass es solche uC wie den Tiny9 für knapp 50 Cent> gibt.
Ja, aber SMD - passt nicht immer im Hobbybereich, und für das
TPI-Interface müsste ich auch aufrüsten. Und bei den einschlägigen
Händlern sind sie eher rar. Gut, Conrad hat ihn, aber im QFN und auch
nicht für 50ct.
Soweit weg ist ein Tiny13A dann auch wieder nicht, im SO-8 bei Reichelt
für 53ct, im DIL-8 für 71ct.
Dein Programm wäre dasselbe, bis vielleicht auf das _delay_ms(10000)
:-).
HildeK schrieb:> TPI-Interface müsste ich auch aufrüsten.
Hi,
nur zur Info:
AVRStudio4.18SP1.exe (28.765 KBytes)
soll statt ISP und HV auch TPI Programmiermodus unterstützen beim
"oldschool" STK500-Board.
https://www.microchip.com/mplab/avr-support/avr-and-sam-downloads-archive
Die Install-Datei (nicht Release Notes!)
ist:
AVR Studio V4.18.SP.700
ohne Gewähr. Muss es erst noch ausprobieren.
ciao
gustav
Auch hier gibt es eine Lösung mit nur einem Transistor, zwei Dioden,
zwei Widerständen und einem Elko vor der Basis. Ich würde das gerne mal
aufmalen, bin aber gerade unterwegs.
Karl B. schrieb:> AVRStudio4.18SP1.exe (28.765 KBytes)>> soll statt ISP und HV auch TPI Programmiermodus unterstützen beim> "oldschool" STK500-Board.
Danke - das war mir neu.
Lothar M. schrieb:> Frank B. schrieb:>> Der Spielerei halber hier mal ein komplett analoger Schaltungsentwurf.> Hier ein komplett digitaler ;-)>
1
> 5V
2
> | 100n
3
> o---||---|
4
> |
5
> .---.
6
> In ------| |----- Out
7
> '---'
8
> |
9
> ---
10
>
Kleine Übungen halten auch fit, insofern war es für mich eine
willkommene Gelegenheit, mal wieder etwas mit analoger
Signalkonditionierung zu spielen ;-)
Die Lösung mit dem AtTiny ist pragmatisch und simpel, aber mir
persönlich würde da die Herausforderung fehlen. Die Hauptsache ist doch,
dass es am Ende Spaß macht.
Die Frage ist, wie soll sich die Schaltung bei beliebiger Pulsfolge
verhalten, z.B. 2 Pulse a 5s mit 2s Pause.
Die 4538 Schaltung würde dann fälschlich ein Signal ausgeben.
Mit einer MC-Lösung ist sowas leicht abzufangen.
Da Ihr hier nun doch eine µC-Lösung diskutiert hier mein Senf:
Lothar M. schrieb:> M.A. S. schrieb:>> Für jemanden, der Firm in µC-Programmierung ist und für mindestens einen>> Typ eine Entwicklungsumgebung auf dem Rechner hat und deren Bedienung>> beherrscht, ist die µC-Variante der kürzeste Weg. Für jemanden, der sich>> evtl. in µC-Technik erst einarbeiten müsste, ist er es definitiv nicht.> Es lohnt sich aber.
MIR musst Du das nicht erklären.
Lothar M. schrieb:> Frank B. schrieb:>> Der Spielerei halber hier mal ein komplett analoger Schaltungsentwurf.> Hier ein komplett digitaler ;-)
Würde ICH auch so angehen.
Meine Argumente für eine µC-Lösung:
1) Wie im obigen Vorschlag zu sehen: minimaler Bauteilaufwand =>
minimaler Platzbedarf und minimale Kosten.
2)
Peter D. schrieb:> Die Frage ist, wie soll sich die Schaltung bei beliebiger Pulsfolge> verhalten, z.B. 2 Pulse a 5s mit 2s Pause.> Die 4538 Schaltung würde dann fälschlich ein Signal ausgeben.>> Mit einer MC-Lösung ist sowas leicht abzufangen.
3)
Genauigkeit des Timings. Mit einem analogen Ansatz ist man auf Gedeih
und Verderb den Bauteiltoleranzen sowie Temperaturabhängigkeiten und
Alterungen ausgeliefert.
Bei einem µC hat man einen integrieten RC-Generator, der relativ eng
toleriert ist (heute oft einstelliger %-Bereich). Reicht das nicht, kann
man mit dem Aufwand dreier zusätzlicher Bauteile einen Quarz zur
Takterzeugung verwenden und ist (trotz Alterung etc.) langzeitstabil um
Größenordnungen genauer.
4)
Flexibilität:
Sollten sich die Anforderungen an das Verhalten der Schaltung ändern,
kann man dies leicht über die Software und durch Umprogrammieren der
vorhandenen Schaltung erreichen, ohne Hardwaremodifikation oder -Neubau.
Meiner Meinung nach sollte man die Hauptdirektive im Hobbybereich nicht
vergessen:
Frank B. schrieb:> Die Hauptsache ist doch,> dass es am Ende Spaß macht.
Und da gilt: Es ist Geschmackssache!
Gebhard R. schrieb:> 1.) Ich brauch eine Entwicklungsumgebung für den uC> 2.) Ich muss das uC Datenblatt/Handbuch lesen und verstehen> 3.) Ich muss das Programm bei jedem Exemplar downloaden, das kostet Zeit> und einen Stecker.
Und die Montage des Ganzen kostet einen Schraubenzieher und mehr an
Sekunden, als zum Programmieren gebraucht wird.
Und die analoge Lösung kostet deutlich mehr Bauteile und ist anfälliger.
Junge, ich hatte sowas in meiner Jugendzeit durch, wo ich nach
Lösungen für die Belichtungszeit-Steuerung in meiner damaligen
Hobby-Dunkelkammer gesucht hatte. Damals hatte ich mir nicht von
Mikrocontrollern träumen lassen, sondern notgedrungen sowas rein analog
erledigen müssen. Die Krux dabei ist die lange Zeit von 11 Sekunden, die
man mit Präzision analog erzeugen muß.
Die einzige Alternative wäre Quarz oder Keramik +Zähler +Vergleicher -
und das ist sachlich weitaus aufwendiger, als jede simple µC-Lösung.
Und du brauchst auch keine Entwicklungsumgebung für nen µC, sondern im
billigsten Fall Notepad, nen Assembler und ein Brennprogramm.
Und das Brennen kostet Zeit.. ja worüber reden wir hier? Ich sag's dir:
über 10 Sekunden, wenn's hoch kommt. Da dauert das Anschrauben der LP im
Gehäuse oder das Herausholen der LP aus der Transportschachtel deutlich
länger. Einen Stecker braucht es nicht, da reichen auch ein paar
Testpads auf der LP aus.
Tja, das offenbar für dich Schwierigste: Du mußt das Datenblatt lesen
UND verstehen. Ich schätze mal, genau das ist der eigentliche
Knackpunkt.
M.A. S. schrieb:> Da der TO ausdrücklich nach einer nicht-µC basierten Lösung fragt, ist> diese Diskussion in diesem Thread OT.
So nicht, mein Lieber. Wenn unsereiner sieht, daß ein TO sich in eine
falsche Richtung verrannt hat, dann ist es tatsächlich das absolut
Hilfsreichste, ihm eine bessere Richtung aufzuzeigen.
So herum.
W.S.
W.S. schrieb:> M.A. S. schrieb:>> Da der TO ausdrücklich nach einer nicht-µC basierten Lösung fragt, ist>> diese Diskussion in diesem Thread OT.>> So nicht, mein Lieber. Wenn unsereiner sieht, daß ein TO sich in eine> falsche Richtung verrannt hat, dann ist es tatsächlich das absolut> Hilfsreichste, ihm eine bessere Richtung aufzuzeigen.>> So herum.
Genau: "TO, hab Dich nicht so, Du willst es doch auch!"
:)
Das erinnert mich an ein Schild, das im Hause unseres EMV-Gurus hängt:
"Wir haben alles, was Sie brauchen.
Was wir nicht haben, brauchen Sie auch nicht!"
Nee, ernsthaft:
Auch ich bin (ich glaub, ich schrieb das weiter oben unmissverständlich)
durchaus der Meinung, eine µC-Lösung ist die technisch beste.
Aus meiner Sicht gibt es nur zwei gute Gründe, die dagegen sprechen
(auch das schrieb ich bereits, noch weiter oben):
1. Falls kein Knowhow auf dem Gebiet µC besteht und man sich bei Null
beginnend einarbeiten müsste.
2. Falls es dem betreffenden einfach mehr Spaß macht, einen anderen Weg
zu gehen, selbst dann, wenn nur eine irgendwie funktionierende aber
nicht optimale Lösung herauskäme.
Peter D. schrieb:> Die Frage ist, wie soll sich die Schaltung bei beliebiger Pulsfolge> verhalten, z.B. 2 Pulse a 5s mit 2s Pause.> Die 4538 Schaltung würde dann fälschlich ein Signal ausgeben.>> Mit einer MC-Lösung ist sowas leicht abzufangen.
Ja, das Problem mit der 4538-Schaltung ist so und wird weitere HW
erfordern, wenn man das berücksichtigen will. Die Anforderung sprach von
einem Puls, entweder kürzer oder länger als 10s. Wird der über eine
Taste geliefert, kann das leicht passieren. Wird er anders generiert,
kann es ja sein, dass es die Unterbrechung gar nicht gibt. Details
wurden nicht genannt.
Ich würde einen kleinen Tiny nehmen, der TO fragte aber nach einer
Lösung ohne µC. Natürlich darf man ihm gerne einen solchen vorschlagen
und wie ein weiterer Thread von ihm zeigt, ist er auch daran
interessiert.
W.S. schrieb:> M.A. S. schrieb:>> Da der TO ausdrücklich nach einer nicht-µC basierten Lösung fragt, ist>> diese Diskussion in diesem Thread OT.>> So nicht, mein Lieber. Wenn unsereiner sieht, daß ein TO sich in eine> falsche Richtung verrannt hat, dann ist es tatsächlich das absolut> Hilfsreichste, ihm eine bessere Richtung aufzuzeigen.>> So herum.
Ja.
Er wollte eine µC-freie Lösung sehen, man darf aber gleichzeitig den
Aufwand und die Beschränkungen gegenüber eine µC-Lösung aufzeigen. Auch
die Nachteile beider Varianten.
Das ist hier ausreichend geschehen, der TO kann sich ein Bild machen.
HildeK schrieb:> Er wollte eine µC-freie Lösung sehen, man darf aber gleichzeitig den> Aufwand und die Beschränkungen gegenüber eine µC-Lösung aufzeigen. Auch> die Nachteile beider Varianten.> Das ist hier ausreichend geschehen, der TO kann sich ein Bild machen.
Das stimmt.
Wie gesagt, eine passende Schaltung wurde bereits vor Jahren unter genau
der gleichen Aufgabenstellung bereits für genau diesen TO entworfen.
Muss man also eigentlich nicht nochmal machen, ausser es gibt einen
triftigen Grund, der bislang nicht genannt wurde.
Ursprünglicher Thread:
Beitrag "Wer kann mir bitte folgende Zeitschaltung entwerfen?"
M.A. S. schrieb:> Aus meiner Sicht gibt es nur zwei gute Gründe, die dagegen sprechen
...
> 1. Falls kein Knowhow auf dem Gebiet µC besteht und man sich bei Null> beginnend einarbeiten müsste.
...
> 2. Falls es dem betreffenden einfach mehr Spaß macht, einen anderen Weg
Nein, sowas kann man nicht ernstlich akzeptieren.
Zu Punkt 1: Wer kein ausreichendes Knowhow hat, um beispielsweise das
ABS seines Autos zu reparieren, sollte davon schlichtweg Abstand
nehmen und sowas den Fachleuten überlassen. Alternative: selbst Fachmann
werden, durch entsprechende Weiterbildung.
Zu Punkt 2: Wer seinen Spaß hat, einen sachlich ungünstigen Weg zu
beschreiten, der soll das verdammtnochmal dann auch tun - und zwar
SELBST. Und nicht ein ganzes Forum dazu aufrufen wollen, ihm diesen Weg
zu ebnen und fein säuberlich zu harken.
W.S.
W.S. schrieb:> Zu Punkt 2: Wer seinen Spaß hat, einen sachlich ungünstigen Weg zu> beschreiten, der soll das verdammtnochmal dann auch tun - und zwar> SELBST. Und nicht ein ganzes Forum dazu aufrufen wollen, ihm diesen Weg> zu ebnen und fein säuberlich zu harken.>> W.S.
Du brauchst Dich überhaupt nicht angesprochen oder belästigt zu fühlen,
du brauchst die Anfrage nicht zu Ende zu lesen und du mußt erst recht
nicht deine Zeit mit einer Antwort verschwenden. Niemand zwingt dich
hier aktiv zu werden!
Aber stell dir vor, es gibt (wie man sieht) auch andere Leute, denen das
entwickeln einer reinen Hardwarelösung durchaus Spass macht. Und genau
an diese ist die Anfrage des TO gerichtet.
Also verdirb denen, die ihren Spass daran haben nicht die gute Laune.
Du bist hier nicht der Aufpasser, der dazu berufen ist, Anderen die
Unterhaltung über Themen zu verbieten, die Dir nicht genehm sind oder
sinnvoll erscheinen!
>while(!(PINB&1)){};// warten, bis High am Eingang PB0
2
>delay_ms(10000);// erstmal 10 Sekunden abwarten
3
>if(PINB&1){// nach 10s noch immer High am Eingang?
Hier stimmt was nicht im code.
Bei der if Abfrage steht nicht fest, ob der Impuls noch immer anliegt
oder ob der Eingang zuvor(innerhalb der 10s) auch low war.
Peter L. schrieb:> Hier stimmt was nicht im code.> Bei der if Abfrage steht nicht fest, ob der Impuls noch immer anliegt> oder ob der Eingang zuvor(innerhalb der 10s) auch low war.
Das war bisher auch nicht gefordert. Es ging nach meiner Auffassung nur
um einen einzigen einzelnen Impuls, der in der Länge vermessen und
entsprechend eine Reaktion ausgelöst werden sollte. Aber stimmt: mit
ganz wenig Aufwand lässt sich das Programm universalisieren.
> long tstart=millis();
Mal angenommen, ich hätte das nicht die Arduino-Umgebung, dann würde ich
das so machen:
1
// ein paar Zeilen Header einbinden
2
#define EineBestimmteZeit 1000
3
shortt=0;
4
main(){
5
// ein wenig Vorgetüdel mit Initialiserung der Pins
6
for(;;){
7
8
while(!(PINB&1)){}// warten, solange Low am Eingang PB0
9
10
t=0;
11
while(PINB&1){// warten solange High am Eingang PB0
12
if(t<11000)t++;// Pulsdauer mitzählen und begrenzen
Lothar M. schrieb:> Mal angenommen, ich hätte das nicht die Arduino-Umgebung, dann würde ich> das so machen:...
Laß mal. Programmieren ist offensichtlich auch nicht so sehr deine
Stärke. Mach lieber ne gute Moderation.
W.S.
Mich würde ja wirklich interessieren warum "Sektionschef" die identische
Anfrage 3 Jahre später noch mal stellt.
Hallo Peter L., kannst du darauf eine Antwort geben?
W.S. schrieb:> Lothar M. schrieb:>> Mal angenommen, ich hätte das nicht die Arduino-Umgebung, dann würde ich>> das so machen:...>> Laß mal. Programmieren ist offensichtlich auch nicht so sehr deine> Stärke. Mach lieber ne gute Moderation.>> W.S.
Dein Beitrag ist herausragend & exzellent. Sollte sich alle auf dem
µCNet als Vorbild für konstruktive Kritik nehmen.
W.S. schrieb:> Programmieren ist offensichtlich auch nicht so sehr deine Stärke.
Siehst du ein Problem am generellen Ablauf oder stören dich ganz
compilerlike nur ein paar kleine syntaktische Feinheiten wie fehlende
Unterstriche oder ein, zwei zuviel eingestreute Buchstaben usw?
Denn das hättest du mit den 16 Worten auch locker sagen können, statt
bloß hohl daherzuschwallen und dich an persönlichen Attacken zu
erfreuen...