Raspberry Pi (4B) mit NE555 38kHz modulieren

OP (Firma: Laboratorium_S1) #7118665
Lesenswert?

Hallo liebes Microcontroller.net-Forum,

in einem älteren Beitrag von mir 
(Beitrag "Fragen zur IR-Informationsübertragung") wurde mir geraten, um 
eine Infrarotverbindung zwischen meinem Raspberry Pi 4 B und einem 
Raspberry Pi Pico (RP2040) herzustellen, UART des Picos zu nutzen und 
mit einem NE555 eine Frequenz für die Infrarot-LED von 38kHz zu 
modulieren.

Wie kann ich nun den NE555 geschickt an den Raspberry Pi 4 B 
anschließen, sodass der Pi "nur" einen seiner GPIO-Pins auf HIGH setzen 
muss, um bei dem Pico einen LOW-Pegel zu bewirken (wenn ich das Signal 
erstmal nicht invertiere). Also ohne, dass der Pi sich um den PWM-Takt 
kümmern muss.

Viele Grüße,
euer Ernst H.
OP (Firma: Laboratorium_S1) #7118696
Lesenswert?

Falk B. schrieb:
> Man braucht eine UND-Verknüpfung von Modulationssignal vom
> Raspberry PI
> (UART) und dem Trägertakt. Sinnvollerweise nimmt man anstatt des NE555
> gleich ein passenden NAND-Gatter mit Schmitt-Trigger Eingängen,
> damit hat man den Oszillator + Verknüpfung in einem IC. Siehe Anhang.

An welchen Pin des NE555 schlösse ich das Modulationssignal an? an Pin 
2?
Und welchen IC würdest du mir da empfehlen, wenn ich den NE555 nicht 
nähme?

Viele Grüße und danke für die schnelle Antwort,
dein Ernst H.
Gast #7118725
Lesenswert?

Ernst H. schrieb:
> An welchen Pin des NE555 schlösse ich das Modulationssignal an? an Pin
> 2?
> Und welchen IC würdest du mir da empfehlen, wenn ich den NE555 nicht
> nähme?

Sage mal, hast du dir den Schaltplan von Falk überhaupt angeschaut? Wenn 
du ihn nicht verstehst, fehlen dir die Grundlagen für eine Kommunikation 
mit uns. Dann bist du hier falsch. Vielleicht wirst du mit YouTube 
Videos glücklicher. Der Vorteil bei Youtube ist, das unerwünschtes 
Feedback von Geschädigten gelöscht werden kann. Deswegen herrscht da 
immer diese schöne "Chaka, du kannst alles" Stimmung, wie bei Pipi 
Langstrumpf.
OP (Firma: Laboratorium_S1) #7118730
Lesenswert?

Stefan ⛄ F. schrieb:
> Sage mal, hast du dir den Schaltplan von Falk überhaupt angeschaut?

Soweit ich den Schaltplan verstehe, handelt es sich rechts oben um die 
"allgemeine" Form, wie ich den IC anzuschließen habe 
(Stromversorgungstechnisch betrachtet).
Der Rest des Bildes zeigt den Innenaufbau des ICs. Dieser IC ist aber 
nicht der NE555, soweit ich weiß.

DATA ist der Eingang vom Raspberry Pi.
MOD-DATA der Ausgang and die IR-LED.

Stimmt das soweit?
(Firma: Autotronic) #7118756
Lesenswert?

So sieht der 74HC132D in Echt aus. Da sind alle 4 Gatter bereits drin 
enthalten. Falk hat sogar die Pinnummern in seinen Schaltplan 
reingeschrieben.

Und ja, der 74HC132D läuft auch mit 3,3V (2 bis 6V).

Es müssen lediglich noch die beiden Widerstände und die beiden 
Kondensatoren hinzugefügt werden.
Angehängte Dateien:
Gast #7118778
Lesenswert?

Ernst H. schrieb:
> Wie kann ich nun den NE555 geschickt an den Raspberry Pi 4 B
> anschließen, sodass der Pi "nur" einen seiner GPIO-Pins auf HIGH setzen
> muss, um bei dem Pico einen LOW-Pegel zu bewirken (wenn ich das Signal
> erstmal nicht invertiere). Also ohne, dass der Pi sich um den PWM-Takt
> kümmern muss.

Bin mir nicht ganz sicher was du mit »um den PWM-Takt kümmern« meinst.
Das muss man normalerweise nur einmal initiieren (Frequenz und Duty) und 
dann kann man es vergessen. Es läuft völlig unabhängig vom Programm in 
Hardware. Und zwar auf einem der GPIO-Pins 12,13,18,19

Wenn man nun den oben vorgeschlagenen 74HC132D an einen dieser Pins und 
an einen weiteren GPIO-Pin zur Steuerung hängt, dann kann man mit diesem 
Steuerungs-Pin das PWM Signal durchschalten oder nicht.

Nur mal so als eine weitere Idee. (Und nur falls es passt)

Noch eleganter wäre wenn man einfach den duty-cycle jeweils auf 50% und 
auf 0% stellt. Da braucht man dann keinen Steuerungs-Pin.
OP (Firma: Laboratorium_S1) #7118836
Lesenswert?

Norbert schrieb:
> Wenn man nun den oben vorgeschlagenen 74HC132D an einen dieser Pins und
> an einen weiteren GPIO-Pin zur Steuerung hängt, dann kann man mit diesem
> Steuerungs-Pin das PWM Signal durchschalten oder nicht.

Also sollte ich wohl besser auf den 74HC132C umschwenken, nach allem, 
was ich hier las?
Den müsste ich aber erst einmal bestellen ...

Uwe K. schrieb:
> Das Angebot steht noch:

Oder ich nehme einfach mal dein Angebot an. wäre glaube ich, noch 
einfacher.
Vielen Dank an dieser Stelle 👍👍

Vielen Dank für alle Antworten. Sie waren wirklich hilfreich.
Viele Grüße,
euer Ernst H.
Gast #7118887
Lesenswert?

Ernst H. schrieb:
> Also sollte ich wohl besser auf den 74HC132C umschwenken, nach allem,
> was ich hier las?
> Den müsste ich aber erst einmal bestellen ...

Solltest du die PWM direkt mit dem Raspberry über variablen duty-cycle 
erzeugen, brauchst du gar kein IC.
Keine Grabbelkiste!

Wenn du's über einen PWM-Pin und Steuer-Pin machen willst, brauchst du 
ein 3.3V kompatibles UND, NAND, OR oder NOR.
Grabbelkiste?

Oder ein Transistor-Konstrukt an den GPIO-Pins. Grabbelkiste?
OP (Firma: Laboratorium_S1) #7118909
Lesenswert?

Norbert schrieb:
> Solltest du die PWM direkt mit dem Raspberry über variablen duty-cycle
> erzeugen, brauchst du gar kein IC.
> Keine Grabbelkiste!
>
> Wenn du's über einen PWM-Pin und Steuer-Pin machen willst, brauchst du
> ein 3.3V kompatibles UND, NAND, OR oder NOR.
> Grabbelkiste?
>
> Oder ein Transistor-Konstrukt an den GPIO-Pins. Grabbelkiste?
--
Frank M. schrieb:
>[...]
> 2. Das UART-Ausgangssignal vom PI mit NE555 auf 38kHz modulieren, einen
> 38kHz-TSOP direkt an UART vom Pico:Pi4 -> UART -> NE555 -> IR-Diode ->
> TSOP-IR-Empfänger -> UART Pico
--
Ist Frank Ms Variante wohl einfacher zu gestalten?
Gast #7119029
Lesenswert?

Ernst H. schrieb:
> [X] Nur vom 4B zum Pico?

Einen der GPIO-Pins 12,13,18,19 wählen.
Kleinen Basiswiderstand, Transistor, IR-Diode und passend berechneten 
Vorwiderstand.

Da.Bla. des TSOP bereit halten.

GPIO auf PWM mit passender Frequenz zB. 38kHz programmieren.
Durch setzen des ›duty-cycle‹ (0%/50%) IR-Diode gepulst übertragen 
lassen.

An den passenden Burst (und Recovery) denken.
2400bd max. Geschwindigkeit.
Über Manchester Kodierung der Signale nachdenken.
Checksummen senden!

Auf der Pico Seite den TSOP an einen Pin. Mit PIO die Pulse und Pausen 
messen lassen und über FIFO ans Programm schieben.
Dekodieren.
Checksummen prüfen!
OP (Firma: Laboratorium_S1) #7119037
Lesenswert?

Norbert schrieb:
> Einen der GPIO-Pins 12,13,18,19 wählen.
> Kleinen Basiswiderstand, Transistor, IR-Diode und passend berechneten
> Vorwiderstand.
>
> Da.Bla. des TSOP bereit halten.
>
> GPIO auf PWM mit passender Frequenz zB. 38kHz programmieren.
> Durch setzen des ›duty-cycle‹ (0%/50%) IR-Diode gepulst übertragen
> lassen.
>
> An den passenden Burst (und Recovery) denken.
> 2400bd max. Geschwindigkeit.
> Über Manchester Kodierung der Signale nachdenken.
> Checksummen senden!

Das war's, oder? Was heißt Da.Bla.?
Vielen Dank und beste Grüße,
euer Ernst.
#7119047
Lesenswert?

Ernst H. schrieb:
> Das war's, oder? Was heißt Da.Bla.?

Datenblatt. Eine dämliche Abkürzung.

In deiner Schaltung fehlt der Vorwiderstand der LED, ebenso der 
Basiswiderstand. Außerdem wird dein Transitor nicht als Verstärker, nur 
als Schalter bzw- UND-Verknüpfung. Das wird nix, die IOs des Raspberry 
Pi sind eher schwach.

Tu dir den Gefallen und mach es richtig. Z.B. mit meiner Schaltung. Die 
kann man auf Lochraster aufbauen.
#7119049
Lesenswert?

Man kann es, wie bereits mehrfach beschrieben, auch komplett ohne 
externe ICs machen, bestenfalls einen Transistor als Verstärker, damit 
die LED mehr Strom kriegt. Dann muss man aber einen Timer-Interrupt oder 
ähnliches im Raspberry Pi nutzen, um die PWM passend zu steuern und 
damit den Datenstrom zu erzeugen. Das Trägersignal macht das PWM-Modul 
allein.
Beim Arduino ist das mit dem Timer-Interrupt einfach, beim Raspberry Pi 
braucht es dazu deutlich mehr Know How, denn dort kann man das nicht so 
einfach machen.
OP (Firma: Laboratorium_S1) #7119721
Lesenswert?

Falk B. schrieb:
> In deiner Schaltung fehlt der Vorwiderstand der LED, ebenso der
> Basiswiderstand. Außerdem wird dein Transitor nicht als Verstärker, nur
> als Schalter bzw- UND-Verknüpfung. Das wird nix, die IOs des Raspberry
> Pi sind eher schwach.

Dann ändere ich die Schaltung um wie folgt:
1
PWM o---------------------------------------+
2
                                            |
3
                                          |   |
4
                                          | R |
5
                                          |   |
6
                                            |
7
                                   IR-LED   V
8
                                           ---
9
                                            |
10
                                         | /
11
                                         |/
12
GPIO-Pin als Schalter o-----|   R   |----|
13
                                         |\
14
                                         | \
15
                                            V
16
                                            |
17
                                            o
18
                                            GND
So müsste es funktionieren.

Mod: ASCII-Art in [ code ] ... [ /code] eingebettet, damit dieses auf 
Mobilgeräten mit Proportionalschrift nicht total geschreddert wird.

@TO: Bitte zukünftig für so etwas [ code ] .... [ /code ] (ohne 
Leerzeichen innerhalb der Klammern) verwenden.
OP (Firma: Laboratorium_S1) #7119789
Lesenswert?

Falk B. schrieb:
> Ernst H. schrieb:
>> So müsste es funktionieren.
>
> Nur dann, wenn deine IR-LED mit vielleicht 2-5mA ausreichend hell
> leuchtet.

Tatsächlich sehe ich (bzw. mein Fotoapparat) nur ein schwaches Leuchten.
Demzufolge brauche ich erneut einen stärkeren Stromkreis.

Diesen baue ich wie folgt ein:
1
5V mit viel Ampere o------------------------+
2
                                            |
3
                                            |
4
                                            |
5
                                         | /
6
                                         |/
7
PWM-Pin o--------------------------------|
8
                                         |\
9
                                         | \
10
                                            V
11
                                            |
12
                                            |
13
                                            |
14
                                            |
15
                                            |
16
                                          |   |
17
                                          | R |
18
                                          |   |
19
                                            |
20
                                   IR-LED   V
21
                                           ---
22
                                            |
23
                                         | /
24
                                         |/
25
GPIO-Pin als Schalter o-----|   R   |----|
26
                                         |\
27
                                         | \
28
                                            V
29
                                            |
30
                                            o
31
                                            GND
"Mit viel Ampere" ist noch etwas sehr salopp ausgedrückt.
Ansonsten müsste es funktionieren.
OP (Firma: Laboratorium_S1) #7119986
Lesenswert?

Falk B. schrieb:
> Reicht. Deine IR-LED braucht vielleicht 100-200mA Pulsstrom.

Ich wollte die Schaltung, siehe ...

Ernst H. schrieb:
> Diesen baue ich wie folgt ein:

...zusammenbauen und dafür einen BC547C- und einen BC337-Transistor 
verwendet. Den Vorwiderstand habe ich auf 18 Ohm berechnet. Welchen 
Widerstand muss R des GPIO-Pins haben und ist dieser überhaupt nötig?
Gast #7120011
Lesenswert?

Ernst H. schrieb:
> Welchen
> Widerstand muss R des GPIO-Pins haben und ist dieser überhaupt nötig?

Der Widerstand ist nicht für den GPIO Pin, sondern für den Transistor. 
Er bestimmt, wie viel Strom in die Basis fließt. Ohne Widerstand wären 
es unendlich viele Ampere (bzw. Raspi kaputt).

Zur Berechnung schau dir mal Kapitel 2.2.2 an.
http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%202.pdf
#7120036
Lesenswert?

Ernst H. schrieb:

> ...zusammenbauen und dafür einen BC547C- und einen BC337-Transistor
> verwendet.

2x der gleiche Typ reicht, nimm 2xBC337.

> Den Vorwiderstand habe ich auf 18 Ohm berechnet.

Mal nachrechnen. Der obere Transistor arbeitet in Kollektorschaltung, 
dessen Emitter hat 0,7V weniger als die Basis. Die hängt an 3,3V vom IO 
Pin, macht ca. 2,6V. Der untere Transistor in Emitterschaltung wird voll 
durchgesteuert, da bleiben vielleicht 0,1V UCE übrig. Macht 2,5V für die 
LED + Vorwiderstand. IR-LEDs haben ca. 1,2V Flußspannung, bleibt ca. 
1,4V für den Vorwiderstand. Bei 18 Ohm macht das ~100mA. Passt.

> Welchen
> Widerstand muss R des GPIO-Pins haben

Sagen wir 1k.

> und ist dieser überhaupt nötig?

Ja, siehe Basiswiderstand.
Gast #7120241
Lesenswert?

Ernst H. schrieb:
1
>                                             |
2
>                                             |
3
>                                           |   |
4
>                                           | R |
5
>                                           |   |
6
>                                             |
7
>                                    IR-LED   V
8
>                                            ---
9
>                                             |
10
>                                          | /
11
>                                          |/
12
> GPIO-Pin als Schalter o-----|   R   |----|
13
>                                          |\
14
>                                          | \
15
>                                             V
16
>                                             |
17
>                                             o
18
>                                             GND
19
>

Willst du als GPIO Pin nun den TX Pin des Raspberry UART für eine 
serielle Übertragung nutzen, oder dein Programm selbst am GPIO wackeln 
lassen?

Falls du ersteres vorhast, muss der TX Ausgang noch invertiert werden. 
Das wurde in deinem anderen Thread auch schon gesagt. Weiss hier jemand, 
ob man den UART entsprechend umkonfigurieren kann?
OP (Firma: Laboratorium_S1) #7120690
Lesenswert?

Rainer schrieb:
> Willst du als GPIO Pin nun den TX Pin des Raspberry UART für eine
> serielle Übertragung nutzen, oder dein Programm selbst am GPIO wackeln
> lassen?

Aktuell bin ich der Meinung, dass Variante zwei einfacher sei.
Den TX Pin und UART werde ich, wenn überhaupt, erst sehr viel später 
nutzen.

ERGÄNZUNG: Es funktioniert nun, nachdem ich bemerkt hatte, dass ich die 
Transistoren falsch herum anschloss und die falsche PIN-Nummer im Code 
angab.

Jedoch leuchtet das Lämpchen etwas sehr schwach (siehe Video).
Woran liegt das?
Angehängte Dateien:
#7120845
Lesenswert?

Ernst H. schrieb:
> Jedoch leuchtet das Lämpchen etwas sehr schwach (siehe Video).
> Woran liegt das?

Weil du Infrarot nicht sehen kannst und auch deine Kamera im Normalfall 
nicht, denn die hat einen IR-Filter. Der ist nicht perfekt, deswegen 
sieht sie es doch ein wenig. Aber wie stark die IR-Quelle dann ist, kann 
man nicht sagen. Das ist bestenfalls schätzen. Bau mal zum Test eine 
normale rote LED ein. Aber ein "normale", keine Superhelle. Denn 
letztere haben eher 3,3V Flußspannung, da leuchtet mit deiner schaltung 
dann gar nichts mehr. Normale rote haben um die 1,8V, da sieht man noch 
ansatzweise was.
OP (Firma: Laboratorium_S1) #7120968
Lesenswert?

Falk B. schrieb:
> Aber wie stark die IR-Quelle dann ist, kann
> man nicht sagen. Das ist bestenfalls schätzen. Bau mal zum Test eine
> normale rote LED ein.

Habe ich gemacht. Tatsächlich leuchtet diese rote LED etwas heller, als 
die IR-LED im Bild des Fotoapparates.
Lag es wirklich nur am Fotoapparat? Wenn ja, mache ich jetzt mit der 
Protokoll-Programmierung weiter.

Viele Grüße und vielen Dank an alle Helferinnen und Helfer dieses 
Beitrages,
euer Ernst H.

Übrigens: Was heißt "TO"?
#7121001
Lesenswert?

Ernst H. schrieb:
> Habe ich gemacht. Tatsächlich leuchtet diese rote LED etwas heller, als
> die IR-LED im Bild des Fotoapparates.

Du hast einen Fotoapparat? Eher nicht. Wohle eher eine Digitalkamera. 
;-)

> Lag es wirklich nur am Fotoapparat? Wenn ja, mache ich jetzt mit der
> Protokoll-Programmierung weiter.

Tu das.

> Übrigens: Was heißt "TO"?

Thread Opener, neudeutsch für Diskussionsstarter. Also du.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren