TSOP4838 am Attiny24a

Gast #5009594
Lesenswert?

Hallo,

ich versuche mich gerade in die Materie IR-Empfänger und Sender rein zu 
fuchsen.

Im Anhang findet Ihr meine Schaltung und ein Bild meines Problems.
Bevor ich jetzt gleich Schimpfe bekomme, die Symbole sind nicht korrekt 
gezeichnet. Aber das wichtigste ist denk ich vorhanden.

Wenn ich den Pin des µC ablöte funktioniert der Empfänger ohne Probleme.

Mein Ziel ist erst mal bei Betätigung einer Fernbedienung eine LED 
einzuschalten.

Hier den Code dazu:
1
/*
2
 *
3
 * Created: 16.04.2017 20:41:08
4
 * Author : Jürgen
5
 */
6

7
#include <avr/io.h>
8

9

10
int main(void)
11
{
12
    /* Replace with your application code */
13
    DDRB |= (1 << DDB0); //LED
14
    DDRB &= ~(1 << DDB2); //Empfänger
15

16

17
    while (1)
18
    {
19
          if ( !(PINB & (1<<PINB2)) ) //Pin auf 0 ?
20
          {
21
               PORTB &= ~(1 << PB0); //an
22
          }
23
     }
24
}

Wenn ich richtig gelesen habe, brauch ich einen 4,7µF. Hab ich aber 
leider nicht. was ich noch hier hätte ist ein 2,2µF.
Muss ich dann den R anpassen? Wie? Oder liegt es gar nicht am Tiefpass?

Danke für die Hilfe.
Angehängte Dateien:
Gast #5009699
Lesenswert?

chuckwalla schrieb:
> Wenn ich den Pin des µC ablöte funktioniert der Empfänger ohne Probleme.

Bemühe dich genau zu bezeichnen welchen Pin du meinst. Man kann nur 
vermuten, daß du PB2 meinst.

> Wenn ich richtig gelesen habe, brauch ich einen 4,7µF. Hab ich aber
> leider nicht. was ich noch hier hätte ist ein 2,2µF.
> Muss ich dann den R anpassen? Wie? Oder liegt es gar nicht am Tiefpass?

Die Werte sind unkritisch und sollen nur die Betriebsspannung des TSOP 
glätten. Daran liegt es nicht.

Vielleicht hast du Anschlußpins vertauscht. Oder beim Löten irgendwo 
einen Kurzschluß fabriziert. Vielleicht ist die USB Spannung nicht gut 
oder liefert zu wenig Strom.

...
(Firma: matzetronics) #5009734
Lesenswert?

Zu Gunsten des TE nehme ich mal an, das er die Spannung vom 'USB' schon 
gefiltert hat und auch die Abblockung des Tiny mit 100nF zwischen VCC 
und GND nicht vergessen hat. Es lohnt sich evtl. noch, den Pullup am IR 
Eingang zu aktivieren.
Und ja, es ist normal, das ein inaktiver IR Empfänger am Ausgang 
Störungen produziert, da die interne AGC den Vorverstärker aufreisst. 
Die Aufgabe, diese Störungen zu ignorieren und nur auf gültige Codes zu 
reagieren, obliegt dem auswertenden Dekoder. Aber zum Glück gibts ja 
IRMP :-)
https://www.mikrocontroller.net/articles/IRMP
Gast #5009793
Lesenswert?

Matthias S. schrieb:
> 100nF zwischen VCC
> und GND

Wurde natürlich eingelötet ;-)

Matthias S. schrieb:
> Es lohnt sich evtl. noch, den Pullup am IR
> Eingang zu aktivieren.

Ist mit folgender Zeile nachgeholt:
1
DDRB |= (1 << DDB0); //LED
2
DDRB &= ~(1 << DDB2); //Empfänger
3
PORTB |= (1 << PB2); //Pull-Up

hirsch schrieb:
> Bemühe dich genau zu bezeichnen welchen Pin du meinst. Man kann nur
> vermuten, daß du PB2 meinst.

Ist soweit richtig. Der Ausgang des IR hängt am PB2.

hirsch schrieb:
> Vielleicht ist die USB Spannung nicht gut
> oder liefert zu wenig Strom.

Habs jetzt mit drei Spannungsquellen versucht. Eine davon war eine neue 
4,5V Batterie.

Noch ne Idee?
Gast #5009870
Lesenswert?

chuckwalla schrieb:
> Logisch, die Störung ist dadurch ja immer noch auf dem Eingang.

Was du als "Störung" bezeichnest, ist das Rauschen der Welt. Ohne ein 
IR-Signal von der Fernbedienung, erscheint das prinzipbedingt am Ausgang 
deines TSOP4838. Solange er nichts besseres (IR-Signal von der 
Fernbedienung) findet, reißt der mit seiner AGC die Verstärkung auf, so 
weit er kann.

Anders sähe das mit einem TSOP4038 aus, der keine AGC besitzt. Für eine 
Fernbedienung will man die i.A. aber gerne haben, damit der Empfänger 
gut mit unterschiedlich starken Signalen zurecht kommt.
Gast #5009982
Lesenswert?

Klaus R. schrieb:
> Passiert denn was wenn du PB2 manuell auf low ziehst?

Die LED geht an.

Wolfgang schrieb:
> Solange er nichts besseres (IR-Signal von der
> Fernbedienung) findet, reißt der mit seiner AGC die Verstärkung auf, so
> weit er kann.

Macht er das dann nur, wenn was am Ausgang hängt oder wieso sind die 
"Störungen" weg wenn ich den Kontroller vom Ausgang des IR löse und mit 
dem Osci direkt am Ausgang messe?
Gast #5016679
Lesenswert?

Hi,

hab etwas rumgespielt.
Der µC hat mich verarscht. Ich hab immer nur am Empfänger mit dem Osci 
gemessen. Ausgang vom Empfänger am Controller angelötet -> Wildes Zeug 
am Ausgang des Empfängers. Ausgang weg -> Störung weg am Ausgang des 
Empfängers.
Jetzt hab ich am Ausgang des µC gemessen ohne das was angelötet ist, 
siehe da, das wilde Zeug ist schon ohne was am Eingang zu messen.

wenn ich das folgende Programm laufen lass, blinkt die LED wenn ich Pin 
PB2 auf GND lege. Die Störungen sind aber am PB0 zu messen.
1
/*
2
 *
3
 * Created: 16.04.2017 20:41:08
4
 * Author : Jürgen
5
 */
6

7
#include <avr/io.h>
8
#include "util/delay.h"
9

10

11
int main(void)
12
{
13
    /* Replace with your application code */
14
    DDRB |= (1 << DDB0); //LED
15
    DDRB &= ~(1 << DDB2); //Empfänger
16
    PORTB |= (1 << PB2); //Pul-up
17

18
    while (1)
19
    {
20
        if ( !(PINB & (1<<PINB2)) ) //Pin auf 0
21
        {
22
            PORTB |= (1 << PB0); //auf 1 LED aus
23
            _delay_ms(500);
24
            _delay_ms(500);
25
            _delay_ms(500);
26
            _delay_ms(500);
27
            _delay_ms(500);
28
            PORTB &= ~(1 << PB0); //auf 0 LED an
29
            _delay_ms(500);
30
            _delay_ms(500);
31

32
        }
33
        else
34
        {PORTB |= (1 << PB0);} //auf 1 LED aus
35
    }
36
}

Wie geht das wenn ich den Pull-Up aktiviert habe?

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