- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: LCD-Hintergrundbeleuchtung funktioniert nicht

  1. #11
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Anzeige

    Powerstation Test
    Zitat Zitat von dariegel
    Dann leg ich Pin 15 u. 16 auf GND und reiß den ganzen Transistor-Kram raus, oder?
    Jo, Transistor brauchst Du ja nicht mehr. Pin 15 u. 16 würd ich aber einfach offen lassen wenn man nicht genau weis, ob da nicht doch und wenn ja, was auf der LCD Platine dranhängt.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    15.11.2010
    Ort
    Oberbayern
    Alter
    39
    Beiträge
    38
    Alles klar, dann lass ich die offen. Für den Fall, dass ich irgendwann noch ein kompatibles Display mit Beleuchtung auf die Platine mit dem PCF8574P draufstecke, kann ich dann immer noch die Transistor-Schaltung nachträglich drauflöten.

    Danke Euch, habt mir sehr geholfen. :P


    Grüße

  3. #13
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    @ dariegel

    Willst du dir wirklich die ganz unnötige Arbeit mit dem Lötkolben antun ?

    Ich würde es nur dann machen, wenn das wirklich meine letzte Bauteile wären, die ich sofort für anderen Zweck brauche.

    Es reicht doch nur den Basiswiderstand vom PCF8574P ablöten, oder ?

    MfG

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    15.11.2010
    Ort
    Oberbayern
    Alter
    39
    Beiträge
    38
    So, hier bin ich wieder. Tut mir leid, dass es eine Weile gedauert hat.

    Aktueller Stand: habe leider das grüne Display mechanisch... ähm ja, ins Jenseits befördert.

    Das habe ich zum Anlass genommen, mir ein LCD mit LED-Hintergrundbeleuchtung zu besorgen - gleiches Modell, gleiche Größe - nur diesmal eben nicht das 18334, sondern das blau-weiße 181656 (Danke an Searcher!)

    Zudem habe ich in der Zwischenzeit eine Unterbauplatine für das neue LCD gelötet und in Sandwichbauweise damit verschraubt. Schaut lecker aus und funktioniert hervorragend.

    Der Schaltplan (angehängt) ist der gleiche wie in meinem ersten Posting, nur diesmal passt R3 mit 33 Ohm auch zum Bedarf der LCD-Beleuchtung. Diese braucht 3,5 V und 60 mA. Somit sollte auch der verbaute Transistor zum Schalten der LED-Last ausreichen.

    Lange Rede, kurzer Sinn: LCD funktioniert, Beleuchtung funktioniert, allerdings kann ich sie nicht per I2C steuern. Nach dem Programmstart (C-Control Pro) geht die Beleuchtung an, d.h. wohl, dass der Startzustand des Pins P7 vom PCF8574P den Transistor durchschalten lässt. Offenbar ist also der Aufbau richtig.

    Nur was muss ich tun, um ihn wieder aus- und einzuschalten?

    Mein Code bewirkt gar nichts, die Beleuchtung bleibt einfach an.


    Code:
    #define I2C_PCF_ADDR	0x40		'Slave-Adresse des PCF8574P
    #define LCD_E			0b01000000	'Enable high = Befehl/Daten übernehmen
    #define LCD_RS			0b00100000	'RS high = Datenausgabe
    #define LCD_RW			0b00010000	'R/W high = Lesemodus
    
    
    Sub main()
    	I2C_Init(I2C_100kHz)
        LCD_Init_I2C()
        LCD_Clear_I2C()
    
        LCD_Write_I2C(0, 0b10000000)   '<-- Hier passiert leider gar nichts!
    	AbsDelay(2000)
    End Sub
    
    Sub LCD_Write_I2C(bIsData As Byte, bData As Byte)
    	Dim bDataOut As Byte
    
    	'RS high setzen falls Datenausgabe gewünscht (bRS = 1).
        If bIsData > 0 Then : bIsData = LCD_RS : End If
    
        '*** High Nibble ***
        bDataOut = bIsData Or (bData >> 4)
        I2C_Out(bDataOut, 1)
    
        '*** Low Nibble ***
        bDataOut = bIsData Or (bData And 0b00001111)
        I2C_Out(bDataOut, 1)
    End Sub
    
    Sub I2C_Out(bData As Byte, bPulseE As Byte)
        If bPulseE > 0 Then
        	I2C_Start()
            I2C_Write(I2C_PCF_ADDR)
            I2C_Write(bData + LCD_E)
            I2C_Stop()
    
            AbsDelay(1)
        End If
    
        I2C_Start()
        I2C_Write(I2C_PCF_ADDR)
        I2C_Write(bData)
        I2C_Stop()
    End Sub

    Wäre toll, wenn sich das mal jemand anschauen könnte. Vielen Dank.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken av1640_201.jpg  

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    15.11.2010
    Ort
    Oberbayern
    Alter
    39
    Beiträge
    38
    Ähm ja, hat sich erledigt, nachdenken hilft.

    Ein einfaches:

    I2C_Out(0b10000000, 0) 'Beleuchtung aus

    bzw.

    I2C_Out(0b00000000, 0) 'Beleuchtung ein

    reicht aus und es funktioniert. Natürlich, da die Übertragung von High und Low Nibble nur für das Display im 4-Bit Modus da ist. Dem PCF8574P kann ich direkt per I2C_Out Bits senden.

    Kopf -> Tischkante.

    Seht es als Resumée zur Hintergrundbeleuchtung und deren Steuerung mittels Transistor.

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Danke für die Lösung!

    Ähm ja, hat sich erledigt, nachdenken hilft.
    Hab ich schon oft festgestellt. Da, wo es nicht geklappt hat, hab ich es jemandem erzählt. Das hat oft ausgereicht, und wenn nicht, hab ich dann vielleicht gute Antworten bekommen.

    Viel Erfolg weiterhin
    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests