Forum: Mikrocontroller und Digitale Elektronik RPi 5 externer Ein/Aus Taster mit Led als Statusanzeige [Schaltplan Hilfe]


von Ben (diy-ben)



Lesenswert?

Hallo an alle interessierten...

Ich brauche Hilfe bzw. Verifizierung meines Schaltplans. Unsicher bin 
ich bei folgendem:
- Sind die Dioden nötig um den RPi zu schützen?
- Haben die Dioden die korrekte Modellbezeichnung?
- Haben die Wiederstände R3-R8 den korrekten Wert?

Grundsätzlich funktioniert die Schaltung problemlos. Ich bin nur kein 
Elektronik Profi, deshalb dieser Beitrag.

Ich nutze diese Schaltung bei meinem RPi 5, mit DigitalDevices DVB-C 
PCIe Karte, der als Tvheadend Server dient. Man kann diese Schaltung 
aber auch ohne IR Empfänger nutzen, welches ich auch vorhabe und beim 
Chinesen ein paar Platinen machen lassen will.

Grundsätzliche Funktionen der Schaltung:
- RPi ist aus (+3.3V Rail am RPi ist LOW, GPIO Ausgang ist LOW): Nach 
dem drücken des Tasters oder IR Fernbedienung fährt der RPi hoch (+3.3V 
Rail am RPi ist HIGH). Die Led blendet(fadet) hoch und runter bis ein 
Python Skript den GPIO Ausgang HIGH stellt. Dieses kann durch ein 
Systemd Service ausgeführt werden welcher wiederum auf einen beliebigen 
Service wartet.
- RPi ist ein (+3.3V Rail am RPi ist HIGH, GPIO Ausgang ist HIGH): Nach 
dem drücken des Tasters oder IR Fernbedienung fährt der RPi runter. Ein 
Python Skript stellt den GPIO Ausgang LOW. Dieses kann durch ein Systemd 
Service ausgeführt werden welcher wiederum auf einen beliebigen Service 
wartet. Die Led blendet(fadet) hoch und runter bis das +3.3V Rail am RPi 
LOW ist.
- Das ganze geht auch mit Konsolen Befehlen wie reboot, halt oder 
poweroff

rpi-state-set-gpio-high.service:
1
[Unit]
2
Description=Listens for target and sets GPIO pin HIGH
3
Before=multi-user.target
4
DefaultDependencies=no
5
6
[Service]
7
Type=oneshot
8
ExecStart=/usr/bin/python /usr/bin/set-gpio-high.py
9
10
[Install]
11
WantedBy=multi-user.target

rpi-state-set-gpio-low.service:
1
[Unit]
2
Description=Listens for target and sets GPIO pin LOW
3
Before=reboot.target halt.target poweroff.target
4
DefaultDependencies=no
5
6
[Service]
7
Type=oneshot
8
ExecStart=/usr/bin/python /usr/bin/rpi-state-set-gpio-low.py
9
10
[Install]
11
WantedBy=reboot.target halt.target poweroff.target

Schöne Grüsse
Ben

: Bearbeitet durch User
von Gerald B. (geraldb)


Lesenswert?

Die Schaltung ist Murx. Der Spannungsregler hat (je nach Datenblatt) 
eine Drop-Spannung von 1,7V oder 2 V und dann machst du davor noch eine 
normale Si-Diode zum Verpolungsschutz. Bei der geringen 
Spannungsdifferenz muß da ein Low-drop Regler hin. Und dann muß man 
schauen ob es noch für eine Schutzdiode reicht - das muß dann aber auf 
jeden Fall eine Schottky-Diode sein.

von Ben (diy-ben)


Lesenswert?

Danke für den Hinweis.

Habe ich vergessen zu erwähnen:
- Bisher benutze ich ein AMS1117-3.3 Modul vom Ali.
- Neu wollte ich den L78L33 benutzen, weil ich nur 10-20mA benötige. Die 
Drop-Spannung hatte ich nicht auf dem Schirm.

Was ist mit dem Rest der Schaltung und mit meinen Fragen?

von Falk B. (falk)


Lesenswert?

Ben schrieb:
> Hallo an alle interessierten...
>
> Ich brauche Hilfe bzw. Verifizierung meines Schaltplans. Unsicher bin
> ich bei folgendem:
> - Sind die Dioden nötig um den RPi zu schützen?

Nö, läuft ja alles mit 3,3V und Widerstände sind auch dazwischen.

> - Haben die Dioden die korrekte Modellbezeichnung?

Im Prinzip ja, braucht aber keiner.

> - Haben die Wiederstände R3-R8 den korrekten Wert?

Im Prinzip ja, braucht aber keiner.

Das kann man alles deutlich vereinfachen.

Dein Attiny kann die IOs als Open Drain betreiben, da braucht es keinen 
Transistor. 3,3V Signale kann man dort direkt anlegen. OK, ein externen 
Pull-Down widerstand muss sein, damit dort sauber 0V anliegen, wenn der 
Himbeerkuchen aus ist. R1 ist eher falsch, denn damit kann man das 
IO-Pin mit internen Pull-Up Widerstand nicht sauber auf LOW ziehen. Für 
die 3,3V für den ATtiny reicht eine 3,3V Z-Diode mit Vorwiderstand. Ein 
echter Spannungsregler ist hier Luxus, außerdem muss der eine Low Drop 
Typ sein und mit weniger als 1,7V Differenzspannung klar kommen. Die 
ganzen Dioden sind Unfug.

Lad mal deine KiCAD-Datei hoch, dann kann man den Schaltplan 
korrigieren.

von Falk B. (falk)


Lesenswert?

Ben schrieb:
> - Neu wollte ich den L78L33 benutzen, weil ich nur 10-20mA benötige.

Wozu brauchst du hier 20mA? Der ATtiny braucht vielleich 1-2mA, dazu 5mA 
für die LED, fertig. Mit ner 1mA Low Current LED reicht noch weniger.

>Die
> Drop-Spannung hatte ich nicht auf dem Schirm.

Der L78L33 geht nicht. Wenn dann eher dein AMS1117, der braucht nur 
reichlich 1V, erst recht bei einer handvoll mA. Ist aber auch reiner 
Luxus.

von Manfred P. (pruckelfred)


Lesenswert?

Ben schrieb:
> Neu wollte ich den L78L33 benutzen, weil ich nur 10-20mA benötige. Die
> Drop-Spannung hatte ich nicht auf dem Schirm.

Bei dem geringen Strom gibt es jede Menge Auswahl, z.B. MCP1702, 
MCP1703, HT7833, HT7333. Die werden allesamt deutlich unter 200mV 
verlieren und haben nur wenige µA Querstrom.

von Helmut -. (dc3yc)


Lesenswert?

Ben schrieb:
> - Haben die Wiederstände R3-R8 den korrekten Wert?

Früher hätten wir 100 Mal schreiben müssen: Wiederstände gibt es nicht!

von Ben (diy-ben)


Lesenswert?

Helmut -. schrieb:
> Ben schrieb:
>> - Haben die Wiederstände R3-R8 den korrekten Wert?
>
> Früher hätten wir 100 Mal schreiben müssen: Wiederstände gibt es nicht!
Früher und heute gibt es KLUGSCHEISSER bei denen dabei einer ab geht und 
ABSOLUT NICHTS BESSERES ZUM THEMA BEITRAGEN!

von Ben (diy-ben)


Lesenswert?

Falk B. schrieb:
> Dein Attiny kann die IOs als Open Drain betreiben, da braucht es keinen
> Transistor. 3,3V Signale kann man dort direkt anlegen. OK, ein externen
> Pull-Down widerstand muss sein, damit dort sauber 0V anliegen, wenn der
> Himbeerkuchen aus ist.

Verstehe ich nicht so richtig weil der RPi Power Pin hat ein Pull-Up 
Widerstand und wird mit GND geschalten. Deshalb der Transistor: ATtiny 
HIGH / Power Pin LOW. Ich Versuche es morgen mal ohne Transistor. Ich 
lerne mit physischen Versuchen besser.

Falk B. schrieb:
>R1 ist eher falsch, denn damit kann man das IO-Pin mit internen Pull-Up 
>Widerstand nicht sauber auf LOW ziehen.

Der Pin an dem der Taster hängt wird auch für Reset und Programmieren 
genutzt. Wird intern mit ~81K hochgezogen. R1 mit 36K ist deshalb damit 
der Taster kein Reset auslöst. Mein Code dazu:
1
const uint16_t buttonReading = analogRead(BUTTON_PIN);
2
const bool buttonState = (buttonReading > 250 && buttonReading < 750) ? LOW : HIGH;

Falk B. schrieb:
>Für die 3,3V für den ATtiny reicht eine 3,3V Z-Diode mit Vorwiderstand.

Habe ich bisher noch nie in Betracht gezogen und würde gerne mehr 
darüber wissen. Spannend wäre wie der Vorwiderstand berechnet würde. 
Kannst du mir bitte Links zu dem Thema geben?

Falk B. schrieb:
> Lad mal deine KiCAD-Datei hoch, dann kann man den Schaltplan
> korrigieren.

Ich will ja auch was lernen... Sich Schuhe binden lassen kann jeder ;) 
Aber mache ich wenn ich eure Vorschläge umgesetzt habe.

Danke und Gruess
Ben

von Falk B. (falk)


Lesenswert?

Ben schrieb:
> Falk B. schrieb:
>> Dein Attiny kann die IOs als Open Drain betreiben, da braucht es keinen
>> Transistor. 3,3V Signale kann man dort direkt anlegen. OK, ein externen
>> Pull-Down widerstand muss sein, damit dort sauber 0V anliegen, wenn der
>> Himbeerkuchen aus ist.
>
> Verstehe ich nicht so richtig weil der RPi Power Pin hat ein Pull-Up
> Widerstand und wird mit GND geschalten.

Genau das kann der ATTiny auch. Braucht man am Ende aber nicht. Man kann 
das Signal ganz normal mit einem Ausgang treiben. Der Pull-Up im 
Raspberry Pi ist nur dafür da, damit man einen einfachen Taster gegen 
GND nutzen kann.

> Der Pin an dem der Taster hängt wird auch für Reset und Programmieren
> genutzt. Wird intern mit ~81K hochgezogen.

Die sind aber stark toleranzbehaftet.

> R1 mit 36K ist deshalb damit
> der Taster kein Reset auslöst. Mein Code dazu:const uint16_t
> buttonReading = analogRead(BUTTON_PIN);
> const bool buttonState = (buttonReading > 250 && buttonReading < 750) ?
> LOW : HIGH;

Naja, du liest den Pin analog aus. Kann man machen, aber ich würde mich 
nicht auf die internen 81k verlassen, die sind SEHR ungenau!

>>Für die 3,3V für den ATtiny reicht eine 3,3V Z-Diode mit Vorwiderstand.
>
> Habe ich bisher noch nie in Betracht gezogen und würde gerne mehr
> darüber wissen. Spannend wäre wie der Vorwiderstand berechnet würde.
> Kannst du mir bitte Links zu dem Thema geben?

https://www.elektronik-kompendium.de/sites/slt/1012151.htm

von Falk B. (falk)


Lesenswert?

So geht das mit den Open Drain Ausgängen. Man schalter die Bits in denn 
DDRx Registern, nicht den PORTx Registern.

Beitrag "Re: Impulsverdoppler für alte Heidenhain Anzeige"

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


Lesenswert?

Ben schrieb:
> Früher und heute gibt es KLUGSCHEISSER bei denen dabei einer ab geht und
> ABSOLUT NICHTS BESSERES ZUM THEMA BEITRAGEN!
Ein Tipp aus der Praxis: wenn dich jemand auf einen Fehler hinweist, 
dann solltest du (wenigstens) dir selber eingestehen, dass das ein 
Fehler war.

Und noch einer: arbeite an deiner Kritiktoleranz.

Ben schrieb:
> Falk B. schrieb:
>> Für die 3,3V für den ATtiny reicht eine 3,3V Z-Diode mit Vorwiderstand.
> Spannend wäre wie der Vorwiderstand berechnet würde.
Im Idealfall so, dass an ihm 5V-3,3V abfallen. Denn dann ist bei 3,3V 
kein Strom mehr übrig für die Zenerdiode. Dazu musst du wissen, welche 
Strom in den Tiny fließt. Weil du es nicht sicher weißt, musst du also 
den höchsten in den Tiny fließenden Strom ermitteln. In diesem 
Zusammenhang solltst du dir dann auch die Kennlinie einer 
3,3V-Zenerdiode in diesem Bereich anschauen. Die hat nämlich ihre 3,3V 
erst bei einem bestimmten Strom. Und sie leitet schon deutlich vorher.
Also nimmst du den Strom in den Tiny + den Strom, den die Zenerdiode für 
3,3V braucht und rechnest: RV = (höchstens) 1,7V/(Itiny+Izd). Und dann 
solltest du anschauen, ob die Belastbarkeit des Vorwiderstands 
ausreicht. In deinem Fall sind das sicher nur wenige mW, es reicht ein 
0603-Vorwiderstand aus.

Insgesamt wirst du schnell herausfinden, dass es gar nicht so einfach 
ist, einne Shuntregler mit einer 3V3-Zenerdiode.

Ich habe übrigens ganz bewusst "Zenerdiode" geschrieben. Denn Z-Dioden 
in diesem Spannungsbereich wirken vorrangig durch den Zenereffekt. Erst 
ab ca. 6V kommt der Avalanceeffekt vorrangig mit rein. Der bringt dann 
dann auch eine steilere Kennlinie (oder einen geringeren dynamischen 
Widerstand) mit sich.

> Kannst du mir bitte Links zu dem Thema geben?
Stichwort: Paralellregler oder Shuntregler.

Ich finde übrigens die Diode D4 auch spannend. Wie sieht dort die 
Beschaltung  am RPi aus? Denn wenn der IR-Empfänger 0V ausgibt, hast du 
dort am Pin 5 des J2 ohne zusätzlichen Pulldown einen undefinierten 
Pegel.

: Bearbeitet durch Moderator
von Ben (diy-ben)



Lesenswert?

Habe die neue v0.08 KiCAD Datei und PDF mal angehängt...

EDIT: Gerade bemerkt das ich den Kondensator bei der Zenerdiode 
vergessen habe...

Lothar M. schrieb:
> Ben schrieb:
>> Früher und heute gibt es KLUGSCHEISSER bei denen dabei einer ab geht und
>> ABSOLUT NICHTS BESSERES ZUM THEMA BEITRAGEN!
> Ein Tipp aus der Praxis: wenn dich jemand auf einen Fehler hinweist,
> dann solltest du (wenigstens) dir selber eingestehen, dass das ein
> Fehler war.
>
> Und noch einer: arbeite an deiner Kritiktoleranz.
Wenn zur Kritik auch ein Vorschlag zur Verbesserung kommt habe ich keine 
Probleme damit. Tippfehler passieren jedem ständig und dies ist hier 
kein Grammatik Forum. Mir persönlich sind Schreibfehler eigentlich egal 
und kann gut mit leben. Aber wenn wir schon dabei sind...

Lothar M. schrieb:
> Insgesamt wirst du schnell herausfinden, dass es gar nicht so einfach
> ist, einne Shuntregler mit einer 3V3-Zenerdiode.
Ich denke du meintest "einen". ;)

Lothar M. schrieb:
> Und dann
> solltest du anschauen, ob die Belastbarkeit des Vorwiderstands
> ausreicht. In deinem Fall sind das sicher nur wenige mW, es reicht ein
> 0603-Vorwiderstand aus.
Habe 0805 Bauteile, für alles kleinere habe ich keinen Nerf.
- Led an 6.9mA
- Led aus 6.1mA
- BZX55C3V3 Izt 5mA

1.7V / 0.0119A = 142.86 Ohm meistens sind die 5V vom RPi aber 5.1V
1.8V / 0.0119A = 151.26 Ohm da ich 150 Ohm Widerstände habe passt das.

Was mich noch beschäftigt ist:
Würde nach der Diode D2 noch ein 1K Widerstand helfen um den RPi von 
möglichen 5V (3.3V Eingang) zu schützen falls die Zenerdiode einen 
Kurzschluss hat?

Lothar M. schrieb:
> Ich finde übrigens die Diode D4 auch spannend. Wie sieht dort die
> Beschaltung  am RPi aus? Denn wenn der IR-Empfänger 0V ausgibt, hast du
> dort am Pin 5 des J2 ohne zusätzlichen Pulldown einen undefinierten
> Pegel.
Ich vermute das macht der Bootloader vom RPi mit:
1
dtoverlay=gpio-ir,gpio_pin=17

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Ben schrieb:
> - BZX55C3V3 Izt 5mA
> 1.8V / 0.0119A = 151.26 Ohm da ich 150 Ohm Widerstände habe passt das.

Na ja, wenn es denn sein soll und nicht darauf ankommt, wie weit die 3V3 
abweichen und Du Z-Dioden vorrätig hast. Andere Leute würden da einen 
LDO verwenden.

> Würde nach der Diode D2 noch ein 1K Widerstand helfen um den RPi von
> möglichen 5V (3.3V Eingang) zu schützen falls die Zenerdiode einen
> Kurzschluss hat?

Angsthase.

Viel interessanter ist, ob PA1-ATtiny, Out des TSOP4838 und Anschluß_5 
vom RPi nicht gegeneinander arbeiten können.

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


Lesenswert?

Ben schrieb:
> Ich vermute
Huh, schlechte Idee bei der Schaltungsentwicklung. Worauf basiert diese 
Vermutung?

> Was mich noch beschäftigt ist:
> Würde nach der Diode D2
Meinst du die D4?
> noch ein 1K Widerstand helfen um den RPi von
> möglichen 5V (3.3V Eingang) zu schützen falls die Zenerdiode einen
> Kurzschluss hat?
Wenn die Zenerdiode einen Kurzschluss hat, dann kommen am Tiny 0V an und 
damit auch am RPi --> unkritisch.

Kritisch wäre also eher eine Unterbrechung der Zenerdiode. Aber
1. wie sollte die Zenerdiode unterbrechen? Wenn Halbleiter kaupttgehen, 
dann üblicherweise durch eine Siliziumschmelze, und die macht aus dem 
Halbleiter einen Volleiter.
2. selbst wenn sie unterbrechen würde, fielen am Vorwiderstand immer 
noch 150R*6mA = 900mV ab und dann kämen noch 0,6V an der Diode D4, von 
den 5V1 blieben also schlimmstenfalls 5V1-1V5 = 3,6V übrig. Und das wäre 
noch immer im grünen Bereich für den 3V3 Eingang des RPi.

: Bearbeitet durch Moderator
von Ben (diy-ben)


Lesenswert?

Falk B. schrieb:
> Naja, du liest den Pin analog aus. Kann man machen, aber ich würde mich
> nicht auf die internen 81k verlassen, die sind SEHR ungenau!
Am Ende ist es ein Spannungsbereich von 0.8V bis 2.4V in dem der Taster 
sich bewegen muss. Mit dem 36K Ohm Widerstand lieg ich bei 1.6V. Auch 
möglich das der interne Widerstand 33K Ohm hat (Den Wert 36K Ohm habe 
ich vor langer Zeit mal bestimmt). Ich habe den Reset Pin bei ATtiny's 
schon oft so problemlos benutzt (Gerade bei den alten 25/45/85er). Hoch 
Volt Programmierer will ich vermeiden.

Manfred P. schrieb:
> Ben schrieb:
>> - BZX55C3V3 Izt 5mA
>> 1.8V / 0.0119A = 151.26 Ohm da ich 150 Ohm Widerstände habe passt das.
>
> Na ja, wenn es denn sein soll und nicht darauf ankommt, wie weit die 3V3
> abweichen und Du Z-Dioden vorrätig hast. Andere Leute würden da einen
> LDO verwenden.
Habe beides nicht vorrätig und teste die Dioden Variante wenn ich sie 
habe.

Manfred P. schrieb:
> Viel interessanter ist, ob PA1-ATtiny, Out des TSOP4838 und Anschluß_5 vom RPi 
nicht gegeneinander arbeiten können.

Was ich durch testen bestätigen kann ist: Der ATtiny arbeitet nicht 
gegen den RPi. Die spucken gleichzeitig die gleichen Adressen und 
Befehle von der IR Fernbedienung aus.

Lothar M. schrieb:
> Ben schrieb:
>> Ich vermute
> Huh, schlechte Idee bei der Schaltungsentwicklung. Worauf basiert diese
> Vermutung?
Leider ist vom RPi 5 kein Schaltplan verfügbar aber die GPIOs kann man 
auch zB. mit Python je nach Bedarf hoch oder runterziehen. Ich mach mir 
daher keine Sorgen.

von Andreas M. (amesser)


Lesenswert?

Ich würde statt der vielen Einzelbauteile einfach einen Levelshifter wie 
den TXU0104 einsetzen. (Außer für den Power button) Die Power Domain vom 
Ausgang des TXU einfach an die 3.3V des RPI5

Den ATtiny und TSOP4838 dann direkt an den 5V betreiben.

Oder die ATtiny IOs Richtung RPI als Open-Collector schalten und 
eventuell noch 1k Widerstände" Richtung RPi. (wie oben vorgeschlagen) 
Die Anbindung des TSOP4838 an den RPI finde ich Grenzwertig, Pull-Up 
über Diode an den GPIO Dort muss dann wohl ein Pull-Down sein...

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


Lesenswert?

Ben schrieb:
> Leider ist vom RPi 5 kein Schaltplan verfügbar
Man muss sich trotzdem nicht auf Vermutungen verlassen, sondern kann das 
am RPi problemlos ausmessen: den Pin in den gewünschten Modus "Eingang 
mit Pullup" scripten und dann mit einem Multimeter und einem 
47k-Widerstand (a) nach Masse und (b) nach Vcc testen, wie der Pin 
reagiert. Wenn sich dabei
1. an der gemessenen Spannung gar nichts ändert, dann ist der Pin ein 
Ausgang
2. die gemessene Spannung bei (a) 0V und bei (b) 3V3 ist, dann ist der 
Pin ein Eingang ohne Pullup
3. die Spannung bei (b) dann 3V3 und mit (a) irgendwas "mittendrin" ist, 
dann ist ein interner Pullup eingeschaltet

> aber die GPIOs kann man auch zB. mit Python je nach Bedarf hoch oder
> runterziehen.
Es geht nicht darum, dass man die Portpins als Ausgang high oder low 
schalten kann, sondern ob man an einem Eingangs-Portpin einen Pullup 
zuschalten kann.

: Bearbeitet durch Moderator
von Falk B. (falk)


Lesenswert?

Andreas M. schrieb:
> Ich würde statt der vielen Einzelbauteile einfach einen Levelshifter wie
> den TXU0104 einsetzen.

So ein Unsinn! Das ist alles 3,3V!

> (Außer für den Power button) Die Power Domain vom
> Ausgang des TXU einfach an die 3.3V des RPI5

Nö, denn der liefert keine Spannung, wenn der Raspberry PI aus ist!

> Den ATtiny und TSOP4838 dann direkt an den 5V betreiben.

Nö.

von Ben (diy-ben)


Lesenswert?

Lothar M. schrieb:
> Es geht nicht darum, dass man die Portpins als Ausgang high oder low
> schalten kann, sondern ob man an einem Eingangs-Portpin einen Pullup
> zuschalten kann.
Mit hoch runterziehen meinte ich Pullup/down aber ja hast recht...

von Andreas M. (amesser)


Lesenswert?

Falk B. schrieb:
> So ein Unsinn! Das ist alles 3,3V!

Stell Dir vor, Level-Shifter kann man nicht nur zum Shiften benutzen...

Falk B. schrieb:
> Nö, denn der liefert keine Spannung, wenn der Raspberry PI aus ist!
>
>> Den ATtiny und TSOP4838 dann direkt an den 5V betreiben.
>
> Nö.

Doch, genau weil der 3V Pin keine Spannung liefert wenn der RPI aus ist 
betreibt man einfach alles an den 5V und nimmt den Shifter um die 
Powerdomains zu separieren. (Oder lässt den gleich ganz weg) Da brauchts 
keinen Spannungsregler, Widerstände Dioden und sonst noch fürn Zeug.

von Ben (diy-ben)


Lesenswert?

Finde ich ein interessanter Ansatz das ohne Level-Shifter mit 5V zu 
betreiben. Man könnte dann nur den TSOP mit der 3.3V Z-Diode betreiben 
oder für den RPi einen separaten TSOP nutzen. Ich teste das mal am 
Wochenende.

von Falk B. (falk)


Lesenswert?

Jaja, noch mehr Unsinn. OMG!

von Ben (diy-ben)


Angehängte Dateien:

Lesenswert?

Die Variante mit Zener-Diode verwerfe ich mal. 3.3V LDO oder gleich 5V 
kann ich mir vorstellen. Der RPi kann auch inverted IR:
1
Name:   gpio-ir
2
Info:   Use GPIO pin as rc-core style infrared receiver input. The rc-core-
3
        based gpio_ir_recv driver maps received keys directly to a
4
        /dev/input/event* device, all decoding is done by the kernel - LIRC is
5
        not required! The key mapping and other decoding parameters can be
6
        configured by "ir-keytable" tool.
7
Load:   dtoverlay=gpio-ir,<param>=<val>
8
Params: gpio_pin                Input pin number. Default is 18.
9
10
        gpio_pull               Desired pull-up/down state (off, down, up)
11
                                Default is "up".
12
13
        invert                  "1" = invert the input (active-low signalling).
14
                                "0" = non-inverted input (active-high
15
                                signalling). Default is "1".
16
17
        rc-map-name             Default rc keymap (can also be changed by
18
                                ir-keytable), defaults to "rc-rc6-mce"
So würde der angehängte Schaltplan ca. aussehen. Ob noch Pullup oder 
Widerstand in Serie nötig ist werde ich testen. Konstruktive Einwende?

von Ben (diy-ben)


Angehängte Dateien:

Lesenswert?

Finale Version mit 3.3V LDO.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Ben schrieb:
> Finale Version mit 3.3V LDO.

Funktioniert so nicht. R6 entkoppelt den Raspberry-PI Eingang nicht 
ausreichend, wenn der aus ist. Wenn man es richtig macht, dann nimmt man 
eine Diode und einen Widerstand. Außerdem sind R1, R3 und R5 immer noch 
hyperliquide. Siehe Anhang. Siehe auch

Schaltplan richtig zeichnen

von Ben (diy-ben)


Lesenswert?

Danke für den Link. Wo ist eigentlich die Wiki Hauptseite? Sitemap oder 
sowas in die Richtung? Bauteil Bibliothek?

Weshalb R7 nach 3.3V?

von Ben (diy-ben)


Lesenswert?

Ben schrieb:
> Danke für den Link. Wo ist eigentlich die Wiki Hauptseite? Sitemap oder
> sowas in die Richtung? Bauteil Bibliothek?
Hab es gefunden...

von Falk B. (falk)


Lesenswert?

Ben schrieb:
> Weshalb R7 nach 3.3V?

Weil es so richtig ist ;-)
Der IR-Empfänger hat einen Open Collector Ausgang, wobei dort schon 
intern ein Pull-Up Widerstand drin ist. Wenn der Raspberry PI aus ist, 
ist sein IO-Pin nahezu ein Kurzschluß gegen GND (über die Schutzdioden 
der IOs). D2 verhindert das. R7 macht dann wieder einen normalen Open 
Collector Ausgang draus.

Ausgangsstufen Logik-ICs

von Ben (diy-ben)


Lesenswert?

Danke. Schaue ich mir mal bei Gelegenheit in Ruhe an...

von Ben (diy-ben)



Lesenswert?

Da ich ein 1.3" Oled Display und eine Dualcolor-Led(bisher) als 
Tvheadend Status benutze, habe ich den Schaltplan noch ein wenig 
erweitert/geändert um alles auf ein Board zu packen.

Anstelle der Dualcolor-Led und der Led am Taster benutze ich eine 
WS2812B-Led (Platine) welche ich noch vorrätig habe.

Da das ganze wegen Pin-Mangel mit einem ATtiny412 nicht mehr geht nehme 
ich neu einen ATtiny1614.

Kommuniziert wird dann über I2C mit Ready(RPi), Timer 
vorhanden(Tvheadend) und Recording(Tvheadend) byte. Je nach Status eine 
andere Led Farbe.
Ein Konfigurationsmode um die Farben zu bestimmen wird es auch geben. 
Das Display wird vom RPi angesteuert.

Um die 0.4mA Stand-by von der WS2812B zu sparen habe ich noch eine 
Spannungsabschaltung hinzugefügt. Ähnlich wie hier 
(https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Schalten_der_5V-Versorgungsspannung_f%C3%BCr_die_LED-Stripes) 
jedoch mit Transistoren(Habe ich vorrätig). Da die Led maximal zu 50% 
der Helligkeit leuchtet, ist der Spannungsabfall Nebensache. Ich habe 
das 
hier(https://lushprojects.com/circuitjs/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKABcQAWYw8Tzivz4CqEBjFIEEpXCjlFC2KNAR5pKYpQyFInDWBTIqAEzoAzAIYBXADZt2FbeBR4QO1wddUmIcSpScGJBggWCEGAgakIZ+QWAYnHAkWFjY2B5wIKaWtvYA5oICLq4IQrgiUCwASm74bgLuINiGVFSJ1K3KCNVcnB5C-K59UCPt2NBKnTDdBY3Fta7lI5AsYYaECLxorhtbeK6G2dZ2DDZ0xuDL4IQs2ISuEYYhAniZz8ssAO4Lwm6bvytZv95rsmroPhc5vsfu8ngA5BAYAwsABOhXq6M8I2wxHgXx+hAEpQaInxjUJMIMlTRxOutCE8yoOLgqL+vHeoO2IzQKzRQQE735IC5olwLAKQvmQqWrVWhEMkrqkuhh3MxzYp3OIwgohufMiv0ewrqosBICNUoNMsqa3NBq5FpVWTVuU1Fx1lzCZP+gvB7xW3yFgoN-tu90c7JcEbpH2+iMjJSEWN5XB4v24ey8RjxBQzwuheetKwAzr1+gI8-6RpYbMW6CwgA) 
mal getestet. Würdet Ihr die Spannungsabschaltung weglassen und die 
0.4mA im Stand-by akzeptieren?

Weil das Display nicht immer Spannung hat, habe ich dem I2C-Bus am 
ATtiny noch Pull-Up Widerstände spendiert.

Wenn die Zener-Dioden da sind, werde ich die Schaltung noch testen. Was 
haltet Ihr von diesem Schaltplan?

Der ATtiny muss nur minimal komumnizieren mit dem RPi - Das könnte auch 
über 1-Wire UART gehen (TX->RX) und dann reichen auch wieder die Pins 
vom ATtiny412. Vielleicht mach ich noch einen Schaltplan :). Was würdet 
Ihr bevorzugen?

: Bearbeitet durch User
von Ben (diy-ben)



Lesenswert?

Mit UART als Befehlsempfänger und ohne Spannungsabschaltung der WS2812B. 
Ich meinte mal eine Library für 1 Wire RX Serial im Netz gefunden zu 
haben. Falls ich diese widerfinde, werde ich dies mal bevorzugt 
behandeln und den code dazu schreiben.

Man könnte das 3.3V Rail vom RPi für die Spannungsabschaltung der 
WS2812B nutzen aber dann wird der "Fade-Prozess" zufällig beendet.

: Bearbeitet durch User
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.