mikrocontroller.net

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


Autor: Andreas Horneff (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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!

Autor: Werner A. (Gast)
Datum:

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

Werner

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jörg Bar* (joerg_b)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Michael Nagler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas K. (thkais)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas Horneff (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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???

Autor: Uwe Große-Wortmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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...

Autor: Andreas Horneff (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Andreas Lang (andreas) (Gast)
Datum:

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

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

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas Horneff (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andreas Lang (andreas) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.