mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C Expander + LCD: Backlight auslesen


Autor: FrickelFranz (Gast)
Datum:
Angehängte Dateien:

Bewertung
3 lesenswert
nicht lesenswert
Beim Chinamann gibt es ja nicht nur die billigen ks0066u kompatiblen 
1602 LCD Module, sondern auch passende Aufsteckboards um diese mittels 
eines PCF8574 an einen I2C Bus zu klemmen. Bei diesen Boards wird gerne 
auch eine Leitung des PCF8574 verwendet um die Hintergrundbeleuchtung 
des LCDs zu steuern. Mich hat dabei geärgert, dass ich zwar prima das 
Licht an/aus machen konnte, aber nicht abfragen konnte, ob es gerade an 
/ aus ist. Der Grund war, dass als Treibertransistor ein einfacher NPN 
verwendet wurde. So kann natürlich nie ein Pegel über der BE Spannung 
anliegen - man liest immer low.
   5V
    +------+
    |      |
   4.7k   LED
    |     /
i/o-+----|
          \
          GND

Ersetzt man jedoch den Bipolartransistor durch einen Mosfet (z.B. 
2N7002), dann funzt das prima. Passte auf meinem Adapterboard auch vom 
Pinout.
Problem solved.

: Bearbeitet durch Admin
Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo FrickelFranz,

das verstehe ich nicht!
Wenn ich das BL einschalte weis ich es doch schon, warum sollte ich den 
Zustand zurück lesen wollen?

Autor: FrickelFranz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du weißt es nur, wenn Du es Dir merkst. In bestimmt > 90% der 
Anwendungen wird es sicherlich einfacher sein sich dieses eine Bit 
irgendwo zu merken. Wenn man aber so wie ich die Designentscheidung 
trifft, die Zustände von 16 LCDs nicht im knappen Ram des µCs spiegeln 
zu wollen, dann kann man diesen einen Transistor austauschen und dieses 
eine Bit Ram durch ein paar Dutzend Bytes Code im Flash kompensieren. Je 
nach Aufgabenstellung schmeißt man da natürlich mit dem Schinken nach 
der Wurst.

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
16 LCDs an einem MC und dabei die Beleuchtung getrennt schaltbar, ist 
schon ungewöhnlich.
Und ob das wirklich ein so kleiner MC schaftt, wo 2 Byte RAM schon 
zuviel sein können.

FrickelFranz schrieb:
> Je
> nach Aufgabenstellung schmeißt man da natürlich mit dem Schinken nach
> der Wurst.

Ja, der Overhead für das Rücklesen, Manipulieren und Schreiben dürfte 
recht hoch sein.

Autor: FrickelFranz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Och geht eigentlich - zumindest was den Code betrifft. Den Code für I2C 
und den PCF8574 braucht man sowieso. Und ob ich nun beim Verwalten des 
Backlight Status aufs Ram oder auf den PCF8574 zugreife macht nicht viel 
Unterschied. Bei der Lauf- und Antwortzeit sieht das dann natürlich ganz 
anders aus. Aber ob Beleuchtung einschalten nun 500ns oder 300ms dauert 
ist ziemlich wumpe. Helligkeitsreglung per PWM via I2C mach ich nicht, 
wäre ja auch eher ein fragwürdiges Unterfangen.

Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke FrickelFranz,

ich interessiere mich häufig für die Fragestellung und die gewonnene 
Lösung.
Danke für die ausführliche Darstellung !

Daumen hoch !

FrickelFranz schrieb:
> Du weißt es nur, wenn Du es Dir merkst. In bestimmt > 90% der
> Anwendungen wird es sicherlich einfacher sein sich dieses eine Bit
> irgendwo zu merken. Wenn man aber so wie ich die Designentscheidung
> trifft, die Zustände von 16 LCDs nicht im knappen Ram des µCs spiegeln
> zu wollen, dann kann man diesen einen Transistor austauschen und dieses
> eine Bit Ram durch ein paar Dutzend Bytes Code im Flash kompensieren. Je
> nach Aufgabenstellung schmeißt man da natürlich mit dem Schinken nach
> der Wurst.

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Typische "Deutscheland-Mann" Verschlimmbesserungs-Lösung.

Wenn man schon unbedingt 2 Byte(!) RAM einsparen muss, und sich der 
ausgewählte I2C Expander die Output-Bits nicht merken kann, dann nimmt 
man eben einfach einen anderen, passenden Expander (z.B. TCA9534). Das 
kostet keinen Cent mehr und man muss nicht an fertigen Boards 
rumbasteln.

Autor: FrickelFranz (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Joe F. schrieb:
> Typische "Deutscheland-Mann" Verschlimmbesserungs-Lösung.

Moa! Also Deine Nörlgelei hat viel mehr "typisch deutsch" im aller 
übelsten und negativsten Sinne als meine LÖSUNG! Du nörgelst erst mal 
rum, ganz offensichtlich ohne überhaupt ansatzweise das Problem 
begriffen zu haben. Sonst würdest Du schließlich nicht gleich von einen 
ganzen Expander-Tausch brabbeln, obwohl der überhaupt nichts mit den 
Problem zu tun hat. Genau das ist die Art von Deutschtum, für die man 
sich nur schämen kann.

Fail! Ungenügend! Setzen!

Nächster bitte.

Autor: Joe F. (easylife)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
FrickelFranz schrieb:
> ohne überhaupt ansatzweise das Problem
> begriffen zu haben

Guck dir die Unterschiede zwischen dem TCA9534 und dem PCF8574 erstmal 
an. Vor allem in Bezug auf die Möglichkeit den Ausgangsstatus 
rückzulesen...

FrickelFranz schrieb:
> Deutschtum, für die man
> sich nur schämen kann.

Apropos schämen, "Chinamann" kommt sehr rassistisch rüber.

: Bearbeitet durch User
Beitrag #5019035 wurde vom Autor gelöscht.
Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An der Lösung gibt es natürlich nichts auszusetzen, auch wenn man das 
Register nicht zurück lesen will.
Ich setze vorzugsweise nur noch FETs zum Schalten von Lasten ein. Der 
Spannunsgabfall ist geringer und man braucht keinen Basisstrom.
Es gibt nur noch wenige Anwendungen, wo ein BJT Vorteile hat.

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.