raspberry pi GIPO LCD-Anzeige für mpc
von pinguin2008- SNIPPET_DESC:
- Python Code
- SNIPPET_CREATION_TIME:
- 04.11.2013 22:08:48
- SNIPPET_PRUNE_TIME:
- Unendlich
- SNIPPET_TEXT:
-
- #!/usr/bin/python
- # -*- coding: utf-8
- import time
- import RPi.GPIO as GPIO
- import re
- import subprocess
- import os
- #######RADIO-CODE##########################################################
- #
- # read radio station
- f=os.popen("mpc current -f [%name%]")
- station = ""
- station+=''
- for i in f.readlines():
- station += i
- f=os.popen("mpc current -f [%title%]")
- station1 = ""
- station1+=''
- for i in f.readlines():
- station1 += i
- # Zuordnung der GPIO Pins (ggf. anpassen)
- DISPLAY_RS = 7
- DISPLAY_E = 8
- DISPLAY_DATA4 = 25
- DISPLAY_DATA5 = 24
- DISPLAY_DATA6 = 23
- DISPLAY_DATA7 = 18
- DISPLAY_WIDTH = 16 # Zeichen je Zeile
- DISPLAY_LINE_1 = 0x80 # Adresse der ersten Display Zeile
- DISPLAY_LINE_2 = 0xC0 # Adresse der zweiten Display Zeile
- DISPLAY_LINE_3 = 0x90 # Adresse der dritten Display Zeile
- DISPLAY_LINE_4 = 0xD0 # Adresse der vierten Display Zeile
- DISPLAY_CHR = True
- DISPLAY_CMD = False
- E_PULSE = 0.00005
- E_DELAY = 0.00005
- def main():
- while True:
- GPIO.setmode(GPIO.BCM)
- GPIO.setup(DISPLAY_E, GPIO.OUT)
- GPIO.setup(DISPLAY_RS, GPIO.OUT)
- GPIO.setup(DISPLAY_DATA4, GPIO.OUT)
- GPIO.setup(DISPLAY_DATA5, GPIO.OUT)
- GPIO.setup(DISPLAY_DATA6, GPIO.OUT)
- GPIO.setup(DISPLAY_DATA7, GPIO.OUT)
- display_init()
- lcd_byte(DISPLAY_LINE_1, DISPLAY_CMD)
- lcd_string(station)
- lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD)
- lcd_string(station1)
- time.sleep(20)
- def display_init():
- lcd_byte(0x33,DISPLAY_CMD)
- lcd_byte(0x32,DISPLAY_CMD)
- lcd_byte(0x28,DISPLAY_CMD)
- lcd_byte(0x0C,DISPLAY_CMD)
- lcd_byte(0x06,DISPLAY_CMD)
- lcd_byte(0x01,DISPLAY_CMD)
- def lcd_string(message):
- message = message.ljust(DISPLAY_WIDTH," ")
- for i in range(DISPLAY_WIDTH):
- lcd_byte(ord(message[i]),DISPLAY_CHR)
- def lcd_byte(bits, mode):
- GPIO.output(DISPLAY_RS, mode)
- GPIO.output(DISPLAY_DATA4, False)
- GPIO.output(DISPLAY_DATA5, False)
- GPIO.output(DISPLAY_DATA6, False)
- GPIO.output(DISPLAY_DATA7, False)
- if bits&0x10==0x10:
- GPIO.output(DISPLAY_DATA4, True)
- if bits&0x20==0x20:
- GPIO.output(DISPLAY_DATA5, True)
- if bits&0x40==0x40:
- GPIO.output(DISPLAY_DATA6, True)
- if bits&0x80==0x80:
- GPIO.output(DISPLAY_DATA7, True)
- time.sleep(E_DELAY)
- GPIO.output(DISPLAY_E, True)
- time.sleep(E_PULSE)
- GPIO.output(DISPLAY_E, False)
- time.sleep(E_DELAY)
- GPIO.output(DISPLAY_DATA4, False)
- GPIO.output(DISPLAY_DATA5, False)
- GPIO.output(DISPLAY_DATA6, False)
- GPIO.output(DISPLAY_DATA7, False)
- if bits&0x01==0x01:
- GPIO.output(DISPLAY_DATA4, True)
- if bits&0x02==0x02:
- GPIO.output(DISPLAY_DATA5, True)
- if bits&0x04==0x04:
- GPIO.output(DISPLAY_DATA6, True)
- if bits&0x08==0x08:
- GPIO.output(DISPLAY_DATA7, True)
- time.sleep(E_DELAY)
- GPIO.output(DISPLAY_E, True)
- time.sleep(E_PULSE)
- GPIO.output(DISPLAY_E, False)
- time.sleep(E_DELAY)
- if __name__ == '__main__':
- main()
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN