Forum: Mikrocontroller und Digitale Elektronik TSOP macht was er will, hilfe


von Andreas Horneff (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen. Ich hab ein Problem mit einem TSOP 1740. Der TSOP macht
was er will, ich versteh das einfach nicht.
Ich habe folgende einfache Schaltung (siehe Anhang).

Ich wollte erst mal so weit kommen, dass die LED aus geht, wenn ein
IR-Impuls kommt. Ist ja eigentlich nicht schwer.

Wenn ich aber folgenden Code benutze:

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/delay.h>
#include <stdint.h>
#include <avr/delay.h>
#include <avr/signal.h>
#include <stdbool.h>

static void io_init(void)
{

  PORTA =0xff;  //eingänge
  DDRA = 0x0;
  // PortB
  PORTB = 0x0;  //ausgänge
  DDRB = 0xff;
  // PortC
  PORTC = 0x0;  //ausgänge
  DDRC = 0xff;
  // PortD
  PORTD = 0xff;  //eingänge
  DDRD = 0x0;

  ACSR = 0x80;
}

void interruptinit(void){
  MCUCR = 0xF;//(1<<ISC11) | (1<<ISC10);
  GICR = (1<<INT0); //| (1<<INT1);
}

SIGNAL(SIG_INTERRUPT0)
  {
    PORTB = 0x00;
  }

int main(void)
{
  io_init();
  interruptinit();
  PORTB = 0x1;
  on = true;


  while(1)
  {

  }
  return(0);
}


Damit sollte doch die LED ausgehen, wenn ich einen IR-Impuls erzeuge,
z.B. mal auf meine Fernbedienung vom TV drücke. Das Problem ist aber,
dass die LED gar nicht an bleibt.
Irgendwas stört den TSOP. Wenn ich einschalte, bleibt die LED kurz an,
dann geht sie wieder aus. Wenn ich meine Schreibtischlampe direkt auf
den TSOP richte (damit mein ich, dass die Glühbirne min. 10cm davor
sein muss), dann bleibt die LED so lange an, bis ich auf ne Taste von
der Fernbedienung drücke.
=> die Schaltung und die Software müsste eigentlich stimmen.

Was ist da los?!?!

Hab jetzt schon viel über den TSOP gelesen und immer wieder gelesen,
dass man den normal nicht entstören muss.

Kann mir jm. weiter helfen, was da faul sein könnte???

Danke!

von Werner A. (Gast)


Lesenswert?

Must du die Interrupts nicht noch freigeben (sei oder sowas)?

Werner

von Hubert.G (Gast)


Lesenswert?

Wenn das die tatsächliche Beschaltung ist?
An Reset des Mega 10k 0,1µ
Zwischen VCC und GND nahe am Mega 0,1µ
An den TSOP so nah wie möglich zwischen VCC und GND zusätzlich 0,1µ
AVCC beschalten? Wenn Port A verwendet wird.
Wie sieht die Stromversorgung aus? C direkt am Spannungsregler?

von Jörg B. (joerg_b)


Lesenswert?

Wenn du ne LED vom Portpin gegen GND schaltest, geht sie aus sobald du
den Pin auf 0 setzt. Änder den Wert in der INT Routine mal auf 0xFF und
versuch es nochmal ;-)

von Michael Nagler (Gast)


Lesenswert?

Hallo Andreas,
ich glaube, das Übel kommt vom 10K Widerstand zwischen TSOP-Ausgang und
Masse. Der TSOP besitzt intern zwischen Vcc und Ausgang einen Widerstand
mit 80K (Pull Up). Bei Deinen 10K gegen Masse bleibt kein Ausgangssignal
mehr übrig.
Das Ausgangssignal des TSOP ist low-aktiv. Im Ruhezustand liegt der
Ausgang auf Vcc.

Lösung: Den 10K Widerstand ersatzlos entfernen.

Gruß
Michael

von Thomas K. (thkais)


Lesenswert?

Häng mal ein Oszilloskop direkt an den Ausgang des TSOP und Du wirst das
Verhalten verstehen...
Der TSOP schraubt die Signalverstärkung hoch, sobald er kein Signal
empfängt. In diesem Zustand ist so ziemlich jede IR-Quelle ein Sender,
Du bekommst permanent Peaks. Die Schreibtischlampe "blendet" den
TSOP, dadurch fährt er die Verstärkung runter - und schon klappts.
Du wirst die IR-Codes der Fernbedienung richtig dekodieren müssen,
damit es wirklich klappt.

von Andreas Horneff (Gast)


Lesenswert?

Hallo zusammen. Erst mal DANKE für eure Hilfe!
Da ich leider kein Oszilloskop hab, kann ich mir das leider nicht
anschauen, klingt aber logisch und würde auch das Phänomen mit der
Schreibtischlampe erklären.

Wenn ich nur den Widerstand entferne, bringt das leider keinerlei
Verbesserung. Hab mich eben mal hingesetzt und von Thomas Kaiser
inspiriert ein Timer eingebaut, der überprüft, ob in einer halben sec
mehr als 14 IR-Impulse kommen (glaub mich daran zu erinnern, dass eine
Philips Fernbedienung 15Impulse sendet).

Des Weiteren hab ich noch ein Kondensator mit 4,7mykroF an Plus / Minus
meiner Spannungsquelle gehängt.
Das Ergebniss von dem ganzen überrascht mich sehr.
Wenn ich mit dem eben beschriebenen Programm den Kondensator weg lasse,
hab ich immer noch das gleiche Phänomen, wie die ganze Zeit. TSOP macht,
was er will.
Wenn ich den Kondesator dran habe, dann schaltet er nicht mehr, sondern
nur noch, wenn er ein IR-Signal von meiner Fernbedienung bekommt (also
das sind ja mehrere, wenn ich eine Taste drücke...).

Jetzt kommt aber das ABER:
Die LED schaltet nicht einfach aus, sondern wird erst ca. ne viertel
sec dunkler und dann geht sie aus. Gleiche, wenn ich die dann wieder
anschalte. Fäng an zu leuchten, aber nicht so hell und wird dann auf
ein Schlag ganz hell...

Kann mir das jm. erklären? Kann der ganze Spuk von meiner
Spannungsquelle herkommen? Sollte ich vllt mal einen größeren
Kondensator parallel zur Spannungsquelle schalten, z.B. 100nF, könnte
das was bringen? Habe leider kein da, muss erst kaufen, aber was meint
ihr???

von Uwe Große-Wortmann (Gast)


Angehängte Dateien:

Lesenswert?

Wenn schnell getaktete ICs wie der AVR nicht jeweils mit einem eigenen
Kondensator in unmittelbarer Nähe entstört sind, gibt es lustige Muster
auf den Versorgungsleitungen... siehe Anhang

Faustregel: 100nF in induktivitätsarmer Bauart an jeden
Versorgungsanschluss, plus nen zentral sitzenden großen Elko...

von Andreas Horneff (Gast)


Lesenswert?

Also direkt parallel an den GND, Vcc Anschluss vom AVR ein 100nF
Kondensator und dann noch einen direkt vor die Spannungsquelle?!
Was verstehst du unter 'großen' Elko???

Also anders kann ich mir das auch nicht mehr erklären, ist nämlich
wirklich sehr komisch. Die LED geht in 2 Helligkeitsstufen aus, bzw.
an. Sprich, wenn sie an ist und ich drück, wirds dunkler, dann aus
(passiert in ca. 1/4 sec). Wenn ich anschalte, das gleiche, nur anders
rum.

Was auch interessant ist, manchmal geht die LED gar nicht aus, sondern
wird nur dunkler und dann gleich wieder hell???????

Oh man, ich bin als Laihe total überfordert *gg.

Super, dass ihr mir alls so helft. Ich probiere das jetzt also mal mit
Kondesatoren aus, wenn mir also noch jm. schreiben würde, was mein
Vorredner mit einem 'großen' Elko meint, wäre ich glücklich :)

von Andreas Lang (andreas) (Gast)


Lesenswert?

100µ sollten für das bisschen fast schon reichen, 220µ erst recht.

Die LED wird übrigens nicht dunkler, sondern die blinkt!

von Hubert.G (Gast)


Lesenswert?

Zeige auch mal deine Stromversorgung, dann kann man etwas genauere
Auskunft geben. Am besten den kompletten Schaltplan wenn es nicht
gerade ein Labornetzteil ist.
Bei einfachen Netzteilen rechnet man 1000µ je Ampere.

von Andreas Horneff (Gast)


Lesenswert?

Hi!

Also es ist ein Labornetzteil.
Der Schaltplan ist der ganze Schaltplan. Vcc und GND gehen an ein
Netzteil, das auch ~5,0 - 5,2V eingestellt ist. Das die LED blinkt
dacht ich mir beinahe ;), weil es geht ja nur entweder 0, bzw. 5V :).
Aber warum zum Kuckuck blinkt die LED...
Kann das mit dem Kondensator zusammen hängen?

Ich werde also morgen mal 2 Kondensatoren kaufen (2 * 22µF) und dann
mal einen parallel zum Netzteil und dann noch eine parallel zum
Controller.

Meint ihr, dann wird's besser???

Kann am Netzteil was sein?

von Andreas Lang (andreas) (Gast)


Lesenswert?

Timer-Interrupt? Interrupt-Maske? Stimmt da wirklich alles?
Ich denke, dass hier eher die Software schuld ist. Klemm den TSOP mal
ab und klemm den Pin direkt nach GND, wenn's dann noch immer blinkt
ist's der Code

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.