mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfänger Problem mit der Beleuchtung vom LCD


Autor: Michael Mayer (eos400dman)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe mich heute erst angemeldet und schon die erste Frage. Seit zwei 
Wochen beschäftige ich mich jetzt ausführlicher mit µCs. Heute habe ich 
zum ersten Mal versucht ein LCD anzusteuern, diese zeigt auch den Text 
an nur kann ich die Beleuchtung nicht zusammen mit dem Text ansteuern. 
Setze ich den Pin der Beleuchtung in einem anderen Programm dann geht 
sie auch. An der Hardware kann es also nicht liegen. Die Anode liegt auf 
PIN 7 an PORTD, die Kathode auf  GND. DB 4-8 gehen auf PIN 0-4. Ich weiß 
jetzt nicht wie ich in der LCD Routine PORT 7 ansteuern kann. Im Anhang 
mal das Programm es (noch) entspricht fast komplett dem LCD Tutorial. 
Kann mir vielleicht jemand erklären wie ich hier vorgehen muss.

Gruß Michael und Danke im Voraus

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Anode liegt auf PIN 7 an PORTD, die Kathode auf  GND

Du produzierst beim Einschalten also quasi einen Kurzschluss.

Es gehört ein VORWIDERSTAND vor die Hintergrundbeleuchtung,
denn das ist eine LED, nicht ohne Grund heissen die Anschlüsse
A und K.

Und es ist zu vermuten, daß mehr als die 20mA benötigt werden,
die so ein Portausgang schalten kann. Also sollte ein Portausgang
erst einen Transistor schalten, der in Folge die Beluchtung schaltet.

Aber um genauers sagen zu können braucht man kein Programm,
sondern das LC-Display Datenblatt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du die Beleuchtung so angeschlossen hast, wie du beschreibst, dann 
musst du den Pin D7 auf 1 setzen. Denn dann liegt am µC Ausgang D7 die 1 
an, also 5V und deine Beleuchtung hat an ihrer ANode 5V und an ihrer 
Kathode 0V. Ergo ein Spannungsgefälle und damit leuchten die LED.

Also nicht

    cbi  PORTD, 7

sondern

    sbi  PORTD, 7


Und wenn dir der Unterschied zwischen cbi und sbi nicht klar ist, dann 
empfehle ich das AVR-Tutorial vom ersten Kapitel an durchzumachen. Dort 
ist beschrieben, wie man einen Ausganag auf 0 bzw wie man ihn auf 1 
setzt.


Die Aussage "Aber im Tut wird auch ein cbi benutzt um eine LED zum 
leuchten zu bringen", die gilt nicht. Denn dein µC weiß nichts von einer 
LED. Die interessiert ihn auch gar nicht. Für den µC ist nur 
interessant, ob er den Ausgang auf 5V (logisch 1) oder auf 0V (logisch 
0) bringen soll. Wie diese Ausgansgwerte dann die dahtiner liegende 
Hardware ansteuern, wird durch die Anschaltung der Hardware geregelt.

Im Tutorial sind die LED so angeschlossen



   AusgansgPin o---------------- LED ----------- +5V

Damit so eine LED leuchten kann, muss der Ausgansgpin auf 0 sein. Nur 
dann hat die LED an den beiden Pins unterschiedliche Potentiale und 
leuchtet. Ist der Ausgangspin auf 1, dann hat die LED links 5V und 
rechts 5V. Also keine Potentialdifferenz und damit rinnt dann auch kein 
Strom.

Deine Beleuchtung ist aber anders angeschlossen


   AusgangsPin o--------------- LED ------------ 0V

Und daher muss der Ausgansgpin auf 1 (+5V) gebracht werden, damit die 
LED an den beiden Anschlusspins wieder eine Potentialdifferenz hat und 
Strom rinnen kann.


Und im übrigen wirst du an deiner Hintergrundbeleuchtung, wenn du sie so 
einfach angeschlossen hast, nicht viel Freude haben. Die überlastet den 
µC.

Autor: Michael Mayer (eos400dman)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja den Widerstand hatte ich vergessen zu erwähnen.
Ich hab 250R drin. Bei einer UF von 3 V am Display gibt das einen Strom 
von 8mA das sollte der Atmega ja noch ohne Transistor können. Oder irre 
ich mich?
Ich habe mal das Datenblatt rausgesucht und angehängt. Hab das Display 
mit 4x16.

Gruß Michael

EDIT: Der Unterschied zwischen sbi und cbi ist mir bekannt. Das habe ich 
nur aus Verzweifeln probiert aber mit sbi (so wie ich es erst hatte) 
geht es ja auch nicht.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael Mayer schrieb:
> Ja den Widerstand hatte ich vergessen zu erwähnen.
> Ich hab 250R drin. Bei einer UF von 3 V am Display gibt das einen Strom
> von 8mA das sollte der Atmega ja noch ohne Transistor können. Oder irre
> ich mich?

8mA ist aber schon sehr dunkel. Das wirst du schon noch sehen
Aber prinzipiell ist es für den µC mit 8mA machbar.

Autor: Michael Mayer (eos400dman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl Heinz Buchegger schrieb:
> Und im Datenblatt steht auch, dass die LED Beleuchtung eine
> Flussspannung von 3.6V braucht. Mit 3V ist da nichts mehr.

Stimmt, ist schon etwas her das ich den Schaltplan gezeichnet hab. Hatte 
gerade nur noch 3V statt 3,6V im Kopf. Gibt dann 5,6mA. Aber die 
Beleuchtung Funktioniert ja gut und ist, meinem Geschmack nach auch 
nicht zu dunkel.
Ich bekomme es nur nicht hin PORT D 7 auf 1 zusetzen und gleichzeitig 
einen Text zu übertragen.

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.