Hallo Forum
ich bitte euch mich nicht gleich zu zerreißen aber ich komme nicht wirklich weiter und eine wirkliche schlüssige Anleitung ist so eine Sache....
Zu meinen Problem: ICh wollte das 16x2 LCD Display an einen PI 2 anschließen soweit OK Kontrast ist auch ok (Habe ich nochmal nachgelesen)
Jetzt habe ich mir gedacht kaufe ich mir ein Buch Titel Paspberry Pi Das umfassende Handbuch soweit so gut alles recht gut beschriben bei dem LCD greifen die auf die Adafruit Quode
Sammelung zurück. Ok das mich zum ersten stört der Link im buch giebt es nicht kein Thema auch schon gefunden.
Meine erste Frage ist das gut das so zu lösen? oder direcht ansprechen? die Lösung im Buch wollte so nicht also Googel mus rann
Habe auch einen Quode gefunden
import time
import RPi.GPIO as GPIO
import os
# 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_CHR = True
DISPLAY_CMD = False
E_PULSE = 0.00005
E_DELAY = 0.00005
def get_cpu_temp():
tempFile = open("/sys/class/thermal/thermal_zone0/temp")
cpu_temp = tempFile.read()
tempFile.close()
return float(cpu_temp)/1000
def get_cpu_speed():
tempFile = open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq")
cpu_speed = tempFile.read()
tempFile.close()
return float(cpu_speed)/1000
def main():
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("CPU Temp: " + str(round(get_cpu_temp(), 2)))
lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD)
lcd_string("CPU Speed: " + str(round(get_cpu_speed(), 2)))
GPIO.cleanup()
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()
Alles anzeigen
Der Quode tut seinen Dienst. was ich nicht verstehe wenn ich den Zeilen für den Inhalt was ändere kommt nur PIIIP bei rum. Macht der eine kontrolle oder ist der Quoder generell schitte.
Brauche einen Quode der für MPC /MPD geht habe schon einige beiträge gesehen aber da schreiben die nicht den Quode rein so wie er am ende TUT ::(
Danke euer Sam