Forum: Mikrocontroller und Digitale Elektronik Schaltung zur Erkennug eines langen Pulses


von Peter L. (sektionschef)


Lesenswert?

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

von Uwe (Gast)


Lesenswert?

Hi,
das klingt wie *555 gesteuert über "R"reset wobei 10min schon ganz schön 
lange ist.

viel Erfolg, Uwe

von HildeK (Gast)


Lesenswert?

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.

von Uwe (Gast)


Lesenswert?

Hi,
>Nur zur Info: der TO redet von 10 Sekunden.
Oh,stimmt. Dann ist *555 eigentlich optimal.

viel Erfolg, Uwe

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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?

von Georg M. (g_m)


Lesenswert?

Uwe schrieb:
> das klingt wie *555

*556


HildeK schrieb:
> Zwei Monoflops.

Sowas wie 74HC4538?

von HildeK (Gast)


Lesenswert?

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 ...

von Georg M. (g_m)


Lesenswert?

Peter L. schrieb:
> Würde gerne so eine Schaltung ohne Verwendung eines uPs realisieren.

Aber warum? Warum?! Warum?!!

von Peter L. (sektionschef)


Lesenswert?

Georg M. schrieb:
> Aber warum? Warum?! Warum?!!

Das soll hier nicht diskutiert werden.
mfg
Sektionschef

von Peter L. (sektionschef)


Lesenswert?

Lothar M. schrieb:
> Nach Ende des 11s Pulses oder nach 10s?

nach Ende des 11s Pulses.
mfg
Sektionschef

von M.A. S. (mse2)


Lesenswert?

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.

von W.S. (Gast)


Lesenswert?

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.

von HildeK (Gast)


Lesenswert?

Könnte so gehen:
1
         .-------------------.
2
         |  .--------.       |  .-------.
3
         |  |        |       |  |       |
4
         |  |      Q +----.  |  |      Q+-----
5
    o----o--+>B      |    '--)--+>B     |
6
            |  10s   |       |  |       |
7
            |        |       |  |       |
8
           o+>A      |       '-o+>A     |
9
            |      /Q|          |     /Q|
10
            |        |          |       |
11
            '--------'          '-------'
12
                        HC4538
13
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
B triggert auf positive Flanke, A auf die negative.

von M.A. S. (mse2)


Lesenswert?

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?   ;)

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

@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

von Peter L. (sektionschef)


Lesenswert?

Vielen Dank für eure Antworten!!!
Werde mir den 4538 mal näher ansehen.
mfg
Sektionschef

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

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

von HildeK (Gast)


Lesenswert?

Karl B. schrieb:
> meinst Du so etwas?

Bestimmt nicht - lies doch einfach mal den Eröffnungspost und die 
Antwort auf die Nachfrage von Lothar M.

von Karl B. (gustav)


Lesenswert?

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

von M.A. S. (mse2)


Lesenswert?

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).

von Bernd (Gast)


Lesenswert?

Karl B. schrieb:

> Versteh ich nicht.

Schon klar.

> Entweder 11 Impulse oder 11 Sekunden.

Wie kommst du auf 11 Impulse?

> Was denn nun?

...

von M.A. S. (mse2)


Lesenswert?

Karl B. schrieb:
> Versteh ich nicht.
> Entweder 11 Impulse oder 11 Sekunden.
>
> Was denn nun?

Nochmal ergänzend:

1
   
2
Eingangssignal:
3
4
5
           --------------------------------------
6
          |                                      |
7
----------                                        ----------------------
8
9
           <------------- 11 Sekunden ---------->
10
11
12
Ausgangssignal:
13
                                                  -----
14
                                                 |     |
15
-------------------------------------------------       ----------------
16
17
18
(Der Ausgang soll also erst nach dem Ende des langen Pulses kommen, nicht schon nach Ablauf von 10 Sekunden.)

von HildeK (Gast)


Lesenswert?

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 ...

von Frank B. (f-baer)


Angehängte Dateien:

Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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?
9
         while (PINB&1) {}; //   Ja: warten bis Eingang PB0 low  
10
         PPORTB|=2;         //   dann PB1 high setzen
11
         delay_ms(EineBestimmteZeit); //   ...abwarten....
12
         PPORTB&=~2;        //   dann PB1 wieder low setzen
13
      }
14
   }
15
}

von HildeK (Gast)


Lesenswert?

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) 
:-).

von Karl B. (gustav)


Lesenswert?

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

: Bearbeitet durch User
von Joe F. (easylife)


Lesenswert?

Mir fiele da noch eine Lösung mit Heizelementen und Bimetall-Schaltern 
ein. Interesse?

von Ach Du grüne Neune (Gast)


Lesenswert?

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.

von HildeK (Gast)


Lesenswert?

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.

von Joe F. (easylife)


Lesenswert?

Sach mal, Peter L., vor 3,5 Jahren haben wir dir doch schonmal genau so 
eine Schaltung entworfen.

Was ist denn damit?

Beitrag "Wer kann mir bitte folgende Zeitschaltung entwerfen?"

von Frank B. (f-baer)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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.

von M.A. S. (mse2)


Lesenswert?

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!

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

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.

von M.A. S. (mse2)


Lesenswert?

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.

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

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.

von M.A. S. (mse2)


Lesenswert?

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.

von Joe F. (easylife)


Lesenswert?

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?"

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

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.

von sonntag Abend (Gast)


Lesenswert?

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!

von Peter L. (sektionschef)


Lesenswert?

Lothar M. schrieb:
1
> 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.
1
while (!(PINB&1)) {};
2
long tstart=millis();
3
while (PINB&1)  {};
4
if ((millis()-tstart) >= 11000) {
5
   //puls war min. 11s
6
} else {
7
   //puls war kürzer als 11s
8
}
mfg
Sektionschef

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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
short t = 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
13
         delay_ms(1);
14
      } 
15
16
      if (cnt>=11000) {     // Wenn Puls länger als 11 sec
17
         PPORTB|=2;         //   dann PB1 high setzen
18
         delay_ms(EineBestimmteZeit); //   ...abwarten....
19
         PPORTB&=~2;        //   dann PB1 wieder low setzen
20
      }
21
22
   }
23
}

: Bearbeitet durch Moderator
von W.S. (Gast)


Lesenswert?

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.

von Udo S. (urschmitt)


Lesenswert?

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?

von Bernd (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

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.