关于用LCD屏替换VFD屏

有没有大虾做过用LCD屏替换VFD屏的项目,感觉国外的VFD屏太贵了,想换成LCD的。有没有大虾知道怎么做?!

这两种屏的驱动接口是完全不一样的,不知道你是怎么个替换法。
如果是重新设计,那就没什么好说的,按LCD的方式去设计就行
如果是成品硬件上替换屏幕,首先肯定要把LCD模块做成和VFD一样的硬件接口,然后如果单片机程序可以改,那就改单片机程序;如果单片机程序不可以改,那就要做个协议转换电路,把VFD控制信号转成LCD控制信号。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    作为一名资深的IT专家,我可以给出一个解决方案来用LCD屏幕替代VFD屏幕。

    首先,你需要明确你现有的系统是如何和VFD屏幕交互的。通常,VFD屏幕需要一个专用的驱动芯片来控制,而LCD屏幕可能需要不同的驱动方式。

    其次,你需要选择一款合适的LCD屏幕,并查找该屏幕的驱动程序和开发文档。这些信息通常可以在LCD屏幕的厂家网站上找到。

    然后,你需要修改你的系统代码以适配新的LCD屏幕。具体的修改方式取决于你现有的系统,但通常需要更改驱动程序和显示代码。如果你不熟悉代码编写,可以考虑请一名程序员来协助你完成这个过程。

    最后,你需要进行测试以确保新的LCD屏幕可以正常工作。你需要测试所有的显示功能和交互方式,确保与原来的VFD屏幕相当或更好。

    下面是一个可能的代码示例,演示如何在Raspberry Pi上控制LCD屏幕。

    import RPi.GPIO as GPIO
    import time
    
    # Set up GPIO pins for LCD screen
    LCD_RS = 7
    LCD_E = 8
    LCD_D4 = 25
    LCD_D5 = 24
    LCD_D6 = 23
    LCD_D7 = 18
    LCD_WIDTH = 16
    LCD_CHR = GPIO.HIGH
    LCD_CMD = GPIO.LOW
    LCD_LINE_1 = 0x80
    LCD_LINE_2 = 0xC0
    LCD_LINE_3 = 0x94
    LCD_LINE_4 = 0xD4
    
    def lcd_init():
        # Set up GPIO
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(LCD_E, GPIO.OUT)
        GPIO.setup(LCD_RS, GPIO.OUT)
        GPIO.setup(LCD_D4, GPIO.OUT)
        GPIO.setup(LCD_D5, GPIO.OUT)
        GPIO.setup(LCD_D6, GPIO.OUT)
        GPIO.setup(LCD_D7, GPIO.OUT)
    
        # Initialise display
        lcd_byte(0x33,LCD_CMD)
        lcd_byte(0x32,LCD_CMD)
        lcd_byte(0x28,LCD_CMD)
        lcd_byte(0x0C,LCD_CMD)
        lcd_byte(0x06,LCD_CMD)
        lcd_byte(0x01,LCD_CMD)
    
    def lcd_byte(bits, mode):
    
        # Send byte to data pins
        GPIO.output(LCD_RS, mode)
        GPIO.output(LCD_D4, bits&0x10==0x10)
        GPIO.output(LCD_D5, bits&0x20==0x20)
        GPIO.output(LCD_D6, bits&0x40==0x40)
        GPIO.output(LCD_D7, bits&0x80==0x80)
    
        # Toggle E pin
        lcd_toggle_enable()
    
        # Send other half of byte to data pins
        GPIO.output(LCD_D4, bits&0x01==0x01)
        GPIO.output(LCD_D5, bits&0x02==0x02)
        GPIO.output(LCD_D6, bits&0x04==0x04)
        GPIO.output(LCD_D7, bits&0x08==0x08)
    
        # Toggle E pin
        lcd_toggle_enable()
    
    def lcd_toggle_enable():
        # Toggle E pin
        time.sleep(0.0005)
        GPIO.output(LCD_E, GPIO.HIGH)
        time.sleep(0.0005)
        GPIO.output(LCD_E, GPIO.LOW)
        time.sleep(0.0005)
    
    def lcd_string(message,line):
        # Send string to display
        message = message.ljust(LCD_WIDTH," ")
    
        lcd_byte(line, LCD_CMD)
    
        for i in range(LCD_WIDTH):
            lcd_byte(ord(message[i]),LCD_CHR)
    
    # Example Usage
    lcd_init()
    lcd_string("Hello World", LCD_LINE_1)
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^