Forum: Mikrocontroller und Digitale Elektronik Logikgatter statt Relais?


von Philipp M. (lord-maricek)


Lesenswert?

Moin,

kurz Hintergrundinfos:
Wir entwickeln zurzeit einen Autopiloten für Modellboote. In den ersten 
Versionen möchten wir noch die Möglichkeit haben mit einer normalen 
RC-Fernbedienung einzugreifen. Also sollen die Signale vom RC-Empänger 
auf dem Boot vorgezogen werden. Wir haben uns überlegt, dass der 
Mikrocontroller das Kommando übernehmen kann, wenn er einen Pin auf 1 
setzt. Dann sollen nicht die Signale vom RC-Empfänger sondern, vom AVR 
genommen werden. Ist der Pin wieder auf 0, soll es wieder andersherum 
sein.

Unsere Idee:
Normale Relais sind zu groß, weil es dann doch schon so 6-7 Stück sein 
müssten. Deswegen haben wir uns überlegt, AND-Gatter mit jeweils 2 
Eingängen zu nehmen. An den einen kommt, die Leitung mit dem PWM Signal 
des AVRs/RC-Empfängers, und an den anderen die Leitung vom AVR, durch 
die mit 1 und 0 die Signal Quelle geregelt werden soll.

Vor die AND-Gatter vom RC-Empfänger kommen noch NOT-Gatter, der dann die 
Leitung vom AVR von 1 in 0, oder andersherum wandelt.

Durch diese Schaltung kommen die Signale bei AVR Pin = 0, vom 
RC-Empfänger und bei AVR Pin = 1 vom AVR.

Kann ich das so machen? Oder habt ihr andere Ideen?
Welche AND/NOT IC's würdet ihr empfehlen?
Die Spannungen sind überall 5V. Die PWM Signale vom AVR/RC-Empfänger 
sind auch 5V.

MfG
Philipp

von Helmut L. (helmi1)


Lesenswert?

Philipp Maricek schrieb:
> Welche AND/NOT IC's würdet ihr empfehlen?

AND   = 74HC08
NOT   = 74HC04
NAND  = 74HC00
NOR   = 74HC02
OR    = 74HC32

3 fach NAND = 74HC10
4 fach NAND = 74HC20

Sollte damit funktionieren.

von Paul (Gast)


Lesenswert?

Ich nehme an, es geht um ein Failsave? Sollte das so sein, würde ich bei 
einer PPM18/10 o. ä. -Fernsteuerung, das Signal mit einem Input-Capture 
im Controller überwachen. Sollte das Signal ungültig werden(Abreißen 
oder  2 bis 20 ms verlassen) oder einen bestimmten Wert einnehmen, 
übernimmt der Controller.

von Paul (Gast)


Lesenswert?

Sorry, Failsafe muß es heißen.

von Philipp M. (lord-maricek)


Lesenswert?

Moin,

danke erstmal.

Failsafe soll es werden, aber nicht um die Fernbedinung abzusichern, 
sonder den Controller, sollte der sich z.B. aufhängen, oder irgendwo 
(z.B. while schleife) stecken bleiben, wegen Programmierfehlern, wird 
der mit Wachdog neu gestartet, und das Kommando der Fernbedienung 
übergeben.
Das ganze ist sozusagen, zum Debugging da. Da wo der Controller 
steckenbleibt, wird außerdem noch geloggt.

MfG
Philipp

von ... (Gast)


Lesenswert?

Statt der ganzen Gatter eventuell einen Analogswitch? Z.B. MAX4761

von Paul (Gast)


Lesenswert?

Und wenn man mit einem Schaltkanal der Fernsteuerung zwei Gates eines 
Linedrivers entgegenschaltet (74126/125)? Je nach Schalterstellung wird 
der Controller angeflanscht oder aber die Fernsteuerung.

von Helmut L. (helmi1)


Lesenswert?

Oder ganz einfach den 74HC157 Multiplexer nehmen.

von Paul (Gast)


Lesenswert?

Würde daraus einen HC 157 machen. Kann mit allen Pegeln umgehen. 
Störsicherer.

von Paul (Gast)


Lesenswert?

Sorry hatte HCT gelesen.

von Philipp M. (lord-maricek)


Lesenswert?

Moin,

auch wenn der Thread schon älter ist. Ich probiers erstmal mit 
Logikdattern, weil ich noch welche rumliegen habe und nicht schon wieder 
bestellen möchte.

Eine kurze Frage hätte ich da noch. Ich benutzte den 74HC08N und den 
74HC02N.
Muss ich für das PWM Signal einen Treiber dahinterschalten? Der max. 
Outputstrom für ein gatter ist bei ca. 70mA aber ich weiß nicht, wieviel 
das PWM Signal braucht?

MfG
Philipp

von Helmut L. (helmi1)


Lesenswert?

Philipp Maricek schrieb:
> Der max.
> Outputstrom für ein gatter ist bei ca. 70mA

Falsch. Das ist der absolute Grenzwert und kein Betriebswert. Die 
Betriebswerte fuer das Gatter liegen wesentlich darunter bei so rund 
20mA.
Willst du also mehr treiben solltest du einen Treiber dazwischen 
schalten.

von Philipp M. (lord-maricek)


Lesenswert?

Aber wieviel mA zieht das PWM Signal eigentlich. Die Servos verweden ja 
serarat mit Strom versorgt.

von MaWin (Gast)


Lesenswert?

> auch wenn der Thread schon älter ist. Ich probiers erstmal mit
> Logikdattern,


Euer Ansatz ist blöd.

Ihr habt doch einen uC, der hat Millionen von Logikgattern.

Speist einfach das Signal der Fernbedienung in den uC.

Der entscheidet selbst, ob er SEINE Steuerimpulse oder die Steuerimpulse 
der Fernbedienung weiterleitet an die Servos und Fahrregler.

Und das geht einfach per Software: Wenn Fernsteuerimpulse ankommen, 
verwendet die, sonst fahrt nach Autopilot (der seinerseits eine Watchdog 
haben sollte um festzustellen, ob er nicht abgestürzt ist).

Damit ist auch das Umschalten ganz einfach, erfordert keinen extra Kanal 
und keinen extra Knopf an der Fernbedienung: Einfach den Sender 
ausschalten, wenn ihr die Kontrolle nicht haben wollt.

von Philipp M. (lord-maricek)


Lesenswert?

MaWin schrieb:
>> auch wenn der Thread schon älter ist. Ich probiers erstmal mit
>> Logikdattern,
>
>
> Euer Ansatz ist blöd.
>
> Ihr habt doch einen uC, der hat Millionen von Logikgattern.
>
> Speist einfach das Signal der Fernbedienung in den uC.
>
> Der entscheidet selbst, ob er SEINE Steuerimpulse oder die Steuerimpulse
> der Fernbedienung weiterleitet an die Servos und Fahrregler.
>
> Und das geht einfach per Software: Wenn Fernsteuerimpulse ankommen,
> verwendet die, sonst fahrt nach Autopilot (der seinerseits eine Watchdog
> haben sollte um festzustellen, ob er nicht abgestürzt ist).
>
> Damit ist auch das Umschalten ganz einfach, erfordert keinen extra Kanal
> und keinen extra Knopf an der Fernbedienung: Einfach den Sender
> ausschalten, wenn ihr die Kontrolle nicht haben wollt.

Mir gehts aber genau darum, dass ich zum Fahren nicht auf den uC 
angewiesen bin. Sollte damit etwas sein (z.B. Wasserim Boot usw. oder 
irgentwas anderes)
kann ich das Boot nicht mehr zurück holen, auch nicht mit der normalen 
Fernbedienung. Ich möchte damit einfach erreichen, dass ich uC unabhänig 
mit der Fernbedienung fahren kann.

MfG
Philipp

von MaWin (Gast)


Lesenswert?

> Mir gehts aber genau darum, dass ich zum Fahren nicht auf den uC
> angewiesen bin. Sollte damit etwas sein (z.B. Wasserim Boot usw. oder
> irgentwas anderes)
> kann ich das Boot nicht mehr zurück holen, auch nicht mit der normalen
> Fernbedienung. Ich möchte damit einfach erreichen, dass ich uC unabhänig
> mit der Fernbedienung fahren kann.

Wenn Wasser im Boot ist, gehen auch Empfänger, Servos etc. nicht mehr.

Und die Umschaltlogik, z.B. CD4053 für 3 Kanäle, könnte ja auch unter 
Wasser stehen oder der ersoffene uC seinen entscheidenden Ausgang 
"falschrum" halten.

Das ist also nur halb durchdacht.

von Noah (Gast)


Lesenswert?

Eigentlich ist doch eher ein "Manual Override" gewünscht. D.h. das 
Signal welches zwischen µC und Fernbedienung umschaltet sollte von der 
Fernbedienung kommen und nicht vom µC. Andersrum ist es irgendwie 
sinnlos. Auch der Watchdog ist nicht immer eine gute Lösung. z.B. wenn 
sich das Programm immer gleich am Anfang aufhängt, da hat man nicht viel 
Zeit, um mit der Fernbedienung auch nur irgendwas zu machen und bis der 
Watchdog zuschlägt dauert es dann wieder.

von Philipp M. (lord-maricek)


Lesenswert?

Noah schrieb:
> Eigentlich ist doch eher ein "Manual Override" gewünscht. D.h. das
> Signal welches zwischen µC und Fernbedienung umschaltet sollte von der
> Fernbedienung kommen und nicht vom µC. Andersrum ist es irgendwie
> sinnlos. Auch der Watchdog ist nicht immer eine gute Lösung. z.B. wenn
> sich das Programm immer gleich am Anfang aufhängt, da hat man nicht viel
> Zeit, um mit der Fernbedienung auch nur irgendwas zu machen und bis der
> Watchdog zuschlägt dauert es dann wieder.

Ja, so wars gedacht.
Das Autopilot Programm ist realtiv komplex und ich hätte einfach nur 
gerne eine Absicherung, dass wenn irgentwas sein sollte, ich das Boot 
mit der Fernbedienung zurück holen kann. Ich möchte, besonders an 
kälteren Tagen nicht umbedingt im Mittellandkanal schwimmen gehen. 
Außerdem ist da auch noch die Berufsschifffahrt, und die halten nicht 
für so ein kleines Boot an.

MfG
Philipp

von Leo H. (Gast)


Lesenswert?

Moin,

zumindest bei den Atmegas steht im Status-Register der Auslöser vom 
letzten Reset.

Du könntest in deinem Programm ganz zu Anfang dieses Register auswerten. 
Wenn der Watchdog zugeschlagen hat geht der Controller in eine 
Endlosschleife.

Die Umschalt-Logik könntest du zusätzlich mit einem Taktsignal 
absichern: Wenn der Takt fehlt (= Controller hängt) wird auf die 
Fernbedienung geschaltet.

Selbst wenn der Controller sich in der 1. Zeile vom Programm aufhängt 
und den Pin auf +5V festhält wertet die Logik das nicht als 
Umschalt-Signal.
Den Takt solltest du dann natürlich nicht mit einem Timer erzeugen 
lassen.

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.