- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 16

Thema: LCD-Hintergrundbeleuchtung funktioniert nicht

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    15.11.2010
    Ort
    Oberbayern
    Alter
    38
    Beiträge
    38

    LCD-Hintergrundbeleuchtung funktioniert nicht

    Hallo zusammen,

    habe ein ANAG VISION AV1640 16x4 LCD-Modul per I2C-Port-Expander PCF8574P im 4-Bit-Modus an eine C-Control Pro 128 angeschlossen - gemäß angehängtem Schaltplan.
    Funktioniert alles wunderbar, nach 3 Tagen Kopfarbeit weiß ich nun auch, wie die Kommunikation abläuft und wie das LCD Befehle und Daten entgegen nimmt.

    Eines will aber einfach nicht laufen: die LCD-Hintergrundbeleuchtung. Wenn ich Pin 15 mittels der Funktion LCD_EnableBL() auf high (0b10000000) schalte, sollte der BC557B doch von Emitter auf Kollektor durchschalten. Das Display bleibt jedoch dunkel, auch ein Ersetzen des Transistors durch eine Brücke hilft nicht.

    Das Display sollte auf jeden Fall eine Beleuchtung besitzen, es hat ja auch 16 Pins.

    Was mache ich falsch?

    Wenn es hilft, hier noch mein Code:

    Code:
    #define I2C_PCF_ADDR	0x40		'Slave-Adresse des PCF8574P
    #define LCD_BL			0b10000000	'Backlight high
    #define LCD_ENABLE		0b01000000	'Enable high
    #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_EnableBL_I2C()  '<-- Funktioniert nicht!
    End Sub
    
    
    Sub LCD_Init_I2C()
        'Initialisierungssequenz für 4-Bit-Modus.
        I2C_Out(0x3)
        AbsDelay(1)
        I2C_Out(0x3 + LCD_ENABLE)
        AbsDelay(1)
        I2C_Out(0x3)
    
        I2C_Out(0x2 + LCD_ENABLE)
        I2C_Out(0x2)
    
        '*** 4-Bit-Modus ***
    
    	'DISPLAY ON/OFF CONTROL
        'Display ein, Cursor aus, Blinken aus
        LCD_Write_I2C(0, 0b00001100)
    
    	'FUNCTION SET
        '4-Bit-Modus, 5x7 dots?, F=0?
        LCD_Write_I2C(0, 0b00101000)
    End Sub
    
    Sub LCD_Clear_I2C()
    	'Display löschen und Cursor zurücksetzen.
        LCD_Write_I2C(0, 0b00000001)
        LCD_Write_I2C(0, 0b00000010)
    End Sub
    
    Sub LCD_EnableBL_I2C()  '<-- Funktioniert nicht!
    	LCD_Write_I2C(0, LCD_BL)
    End Sub
    
    Sub LCD_Write_I2C(bRS As Byte, bData As Byte)
    	'RS high (bRS = 0x20) für Datenausgabe
        'RS low (bRS = 0x00) für Befehlsübergabe
        'bData enthält Befehle u./o. Daten
    
        Dim bDataOut As Byte
    
        '*** High Nibble ***
        bDataOut = bRS Or (bData >> 4)
        I2C_Out(bDataOut)
        bDataOut = bDataOut + LCD_ENABLE
        I2C_Out(bDataOut)
        AbsDelay(1)
        bDataOut = bDataOut - LCD_ENABLE
        I2C_Out(bDataOut)
        AbsDelay(1)
    
        '*** Low Nibble ***
        bDataOut = bRS Or (bData And 0b00001111)
        I2C_Out(bDataOut)
        bDataOut = bDataOut + LCD_ENABLE
        I2C_Out(bDataOut)
        AbsDelay(1)
        bDataOut = bDataOut - LCD_ENABLE
        I2C_Out(bDataOut)
        AbsDelay(1)
    End Sub
    
    Sub I2C_Out(bData As Byte)
        I2C_Start()
        I2C_Write(I2C_PCF_ADDR)
        I2C_Write(bData)
        I2C_Stop()
    End Sub

    Danke für's Lesen.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken av1640.jpg  

Berechtigungen

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

12V Akku bauen