www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Display Kontrast und HG Beleuchtung mit AVR Steuern


Autor: Herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ist es möglich den Kontrast und die Hintergrundbeleuchtung über den AVR 
zu steuern???

wie würde die Schaltung aussehen derzeitig habe ich jeweils ein Poti 
10k.

und wo wird es am AVR (ich habe einen 128) angeschlossen ???

PWM????


Gruß

Herrmann

Autor: christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin

also PWM hört sich schon ganz gut an damit würde i aber die helligkeit 
steuern oder die helligkeit über ein VCO (RC4151 8polig) regeln und den 
kontrast über PWM regeln oder beides über den RC4151

christian

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für was braucht man hier bitte einen VCO ?

Die Helligkeit und den Kontrast kann man ganz einfach über PWM steuern. 
Beim Kontrast braucht man noch einen Glättungskondensator.
Es kann nur Probleme geben, wenn das LCD Spannungen in der Nähe von 0V 
braucht, dann muss man bei der PWM -> Spannungswandlung etwas tricksen.

Autor: Michael K. (mmike) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benedikt K.: Das mit dem Kontrast regeln mit PWM hab ich auch mal 
probiert, aber leider mit wenig Erfolg. Was rauskam, war ein Display, 
was immer Kontrast rein - Kontrast raus gemacht hat. Nur mit Kondensator 
glätten reicht nicht, denn wenn der nicht belastet wird, dann lädt der 
sich auf bis VCC. Hängt man dann noch einen Widerstand parallel dazu, 
dann sinkt zwar die Effektivspannung, jedoch sieht man genau am Display 
wann der Kondensator in der PWM high Phase aufgeladen wird und wann er 
sich über den Widerstand entlädt. Hast Du keine Probleme gehabt ? Wenn 
nein wie war Dein Aufbau?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du einen Kondensator über einen Widerstand mit PWM ansteuerst, dann 
läd sich dieser nicht auf Vcc auf, sondern auf eine Spannung, die 
proportional dem Tastverhältnis ist.
Wenn du die PWM auf dem LCD siehst ist die Frequenz zu niedrig oder der 
Kondensator zu klein.

Autor: christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin

i bins noch ma ha!!! na ganz einfach den VCO brauchst du dafür in dem 
man über ein ldr die spannung an den VCO gibt und der dann die 
helligkeit steuert weil i denke bei 1kHz (je nach geschmack) is dat auge 
ein wenig trääääge und den kontrast kann man denn über pwm als i würde 
ne diode in pfad tun nen wiederstand und den C denn wenn das 
rechtecksignal auf masse geht verhindert die diode das der C in richtung 
AVR entladen wird und die ganz energie geht ins LCD oder is das zu 
komplitiert????

christian

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lern erstmal deutsch, dann versteht man vielleicht auch was du sagen 
willst...

Autor: Michele B.. (luxx) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nimm ein digigateles poti fürn kontrast?!

Autor: Udo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also:

Zur Steuerung der Hintergrundbeleuchtung genüg ein einfaches 8-Bit-PWM 
mit einer Frequenz über 200 Hz (augenfreundlich, auch beim Vorbeigehen). 
Dieses PWM schaltet man direkt über Vorwiderstand auf die Basis eines 
npn-Transistors und dessen Kollektor dann an die Beleuchtung, welche 
über Vorwiderstand an Vcc hängt. Dieses PWM arbeitet nichtinvertierend, 
also große OCR-Variable für helles Licht, kleine für dunkles Licht oder 
aus.

Zur Steuerung des Kontrastes nimmt man einen Spannungsteiler, der das 
Display auf gerade maximalen Kontrast einstellt. Größenordnung so 470 
Ohm nach Masse und 20kOhm nach Vcc, kann je nach Display variieren. Der 
Spannungsteiler liegt mit der Mittelverbindung direkt am Kontrastpin. 
Daran kommt außerdem nach Masse ein 100nF Keramik-Kondensator. Mit einem 
Serienwiderstand von 2k2 bis 4k7 (ausprobieren) geht man direkt an einen 
weiteren PWM Pin. Auch hier reichen dann 8 Bit, die Frequenz sollte aber 
über 1kHz sein, damit der Kontrast nicht pumpt durch zu hohe Welligkeit. 
Dieses PWM arbeitet dann invertierend, also bei großer OCR-Variable 
wenig oder kein Kontrast und bei kleiner hoher Kontrast.
Tja, und das war´s auch schon. Diese Schaltungen habe ich schon mehrfach 
mit "Electronic Assembly", "Pollin" und "no-name" Displays getestet und 
erfolgreich am Laufen.

Autor: Herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Travelrec

Dies scheint die bessere variante zu sein kannst Du mir einen Schaltplan 
zukommen lassen von Deiner Schaltung????

Danke


Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Kontrast habe ich nen anderen Vorschlag.
Bei Text-Displays spar ich mir den Poti zwischen Vcc und GND.
Ich verbinde den Kontrastanschluss über eine Diode mit GND, somit ist 
der Kontrast hoch, aber nicht auf Maximum (da sieht man auch die 
nichtangesteuerten Pixel). Und der Schaltungsaufwand ist gleich Null.

Autor: Herrmann (Gast)
Datum:
Angehängte Dateien:
  • preview image for sp.JPG
    sp.JPG
    32,4 KB, 321 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Hallo


Bin erst jetzt dazu gekommen um die Schlatung Auszuprobieren.

und zwar die von travel rec.

Habe mal den SP vom Hintergrund LED angehängt ist das so OK oder sollte 
zwischen Basis und GND noch ein WIederstand.

Kann mir vieleicht einer verraten wie hoch die Wiederstände sein 
müssen???
Für R2 und R1.

Danke

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, ist leider falsch. Anode von der Display HG über einen Widerstand 
nach Vcc (5V). Kathode von der Display HG zum Kollektor des npn. Emitter 
des npn an Masse. Basis des npn über Vorwiderstand an den AVR-PWM Pin. 
Vorwiderstand für die Basis ist 4,7k, Widerstand für die Display HG ist 
10 bis 100 Ohm, je nach Effektivität der HG.

Autor: Herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja jetzt sieht es besser aus die HG leuchtet.

Nur jetzt habe ich das Problem mit dem 2 PWM's.

Habe auch schon im GCC Forum nachgefragt aber noch keine antwort.

Wenn Du das Ja so nutz könnstest du mir mal einen Code zusenden?

Danke

Autor: Herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe mal folgenden Code dabei tut sich was am Kontrast aber an der HG 
nicht.

void init_pwm()
{
DDRB|=(1<<PB5);
DDRB|=(1<<PB6);
TCCR1A = (1<<WGM10)|(1<<COM1B1) | (1<<COM1A0) | (1<<COM1A1);
TCCR1B = (1<<CS11);
OCR1B=0;    //HG Display 0 oder 255 es verändert sich nichts.
OCR1A=120;   // Kontrast Display 120 Kontrast OK
}


Ich habe zwishcen Anode und 5V 82 Ohm Wiederstand drin.

und zwishcen PWM und Basis einen 3,7K

Als Transistor habe ich einen BC847A drin SMD.

Danke

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

Bewertung
0 lesenswert
nicht lesenswert
> Die HG ist über Vorwiederstand an dei Basis eines NPN Transi und
> mit dem collector über vorwiederstand an die HG Anode. Emitter
> auf masse und Kathode auf Masse PWM port OC1B.

Ich werd aus dieser Beschreibung nicht wirklich schlau.

Die HG hat mit dem Kontrast schaltungstechnisch überhaupt nichts
zu tun.

Für die HG baust du das so auf

                         -----+------  Vcc
                              |
                              |
                             ---
                             | |  10 - 100 Ohm
                             | |
                             ---
                              |
                             ---
                             \ /   HG Led im Display
                             ---
                              |
                              /
            -------         |/
   Pin -----|     |---------|       npn-Transi
            -------         |\
            ~4.7 k            \
                              |
                              |
                            --+-- GND

Der Transistor wird als reiner Schalter betrieben, der die Katode
der HG-Led nach Masse durchschaltet, wenn an seiner Basis der
µC Pin eine 1 anlegt.

Darf ich vorschlagen, dass du dich zunächst mal nur um die
HG-Led kümmerst und nicht einen 2 Fronten krieg führst.

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

Bewertung
0 lesenswert
nicht lesenswert
Das hier ist ein Setup für einen ATMega16 (kein 128)

8 Bit Fast PWM, beide OC1x Ausgänge aktiviert.
Beim Mega16 liegen die OC1x Augänge am Port D, hier
musst du also anpassen:
  DDRD = 0x30;    // OC1A und OC1B auf Ausgang

  TCCR1A = ( 1 << WGM10 ) |
           ( 1 << COM1B1 ) | ( 1 << COM1B0 ) |
           ( 1 << COM1A1 ) | ( 1 << COM1A0 );

  TCCR1B = ( 1 << CS11 );

  OCR1A = 5;
  OCR1B = 5;

Da der Timer1 aber ein sehr mächtiger Timer ist, würde ich
mir das noch gut überlegen, ob ich den für eine LCD Steuerung
hernehmen würde. Ich würde die beiden PWMs wahrscheinlich
eher per Software-PWM mit einem 8 Bit Timer machen um den
16-Bit Timer freizuhalten.

Autor: Herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Die Schaltung ist so jetzt aufgebaut.

Es wird besser sein das Per Software zu machen und die Ports auf einen 
I/O Pin zu hängen ist das so OK???

Wie macht man denn ein Soft PWM????

Mein AVR ist ein 128Iger.


DANKE

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

Bewertung
0 lesenswert
nicht lesenswert
Herrmann wrote:
> Hallo
>
> Die Schaltung ist so jetzt aufgebaut.

Und, funktionierts?

>
> Es wird besser sein das Per Software zu machen und die Ports auf einen
> I/O Pin zu hängen ist das so OK???

Ob das besser ist, musst du entscheiden.
Wenn das eine Spezialplatine für einen bestimmten Einsatz
wird, dann kannst du natürlich den Timer1 für die PWM nehmen,
wenn er nicht anderweitig gebraucht wird.

Wenn das aber eine Universalplatine zum experimentieren ist,
würde ich mir wegen dem LCD nicht den Timer1 blockieren.

>
> Wie macht man denn ein Soft PWM????

Sie muss genau dasselbe wie die Hardware-PWM machen.
Ein Zähler läuft durch. Ist der Zählerstand unter einem Grenzwert,
wird die LED eingeschaltet, ist er drüber wird die LED ausgeschaltet.
Durch Variation des Grenzwertes wird das Ein/Aus Verhältnis
geregelt. Als Zähler nimmt man einen uint8_t (eine
8 Bit Variable reicht völlig für den geplanten Zweck) und
mit einem Timer samt ISR wird diese regelmässig erhöht. In
der ISR noch abfragen ob der Software-Zähler über oder
unter dem jeweiligen Grenzwert liegt und jenachdem den
Output-Port-Pin auf 1 oder 0 setzen.

Aber: Du kannst jeden beliebigen Timer nehmen, du kannst die
LED (bzw. Kontrast) an jeden beliebigen µC Pin anschliessen
und die paar % Rechenleistung (wenn überhaupt) die dafür
draufgehen, merkst du im restlichen Programm nicht.

Ob du das so machen willst hängt letztenendes nur vom
geplanten Einsatzzweck ab: Spezialplatine oder Universal-
Experimentierboard.

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.