====== Displays ====== ===== mini-Displays ===== Die Displays werden meist über einen Controller-Chip (HD47780) an die GPIO angeschlossen (4-Datenleitungen). Zum Beispiel: * http://www.pollin.de/shop/dt/NzczOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_C0802_04.html Einbau und Ansteuerung: * http://www.schnatterente.net/technik/raspberry-pi-32-zeichen-hitachi-hd44780-display * Skirpt (anpassen an die eigenen Pins!): http://www.schnatterente.net/code/raspberrypi/displaytest.py {{ :computer:raspberrypi:raspberry-pi-display-aufbau.png}} #!/usr/bin/python import time import RPi.GPIO as GPIO # 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 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("Schnatterente") lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD) lcd_string("Nak nak nak!") time.sleep(5) lcd_byte(DISPLAY_LINE_1, DISPLAY_CMD) lcd_string("Dein Display") lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD) lcd_string("funktioniert! :)") time.sleep(5) 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() Kleines Skipt, um Daten von der Shell anzeigen zu können: [[computer:raspberrypi:programme:display_from_shell|]] ==== Datenblätter ==== * {{:computer:raspberrypi:lcd-c0802-04.pdf|}} * ===== Auto-Monitore ===== Z.B.: * http://www.pollin.de/shop/dt/ODI5OTkzOTk-/HiFi_Car_HiFi_Video_TV/TV/Fernseher/17_8_cm_7_LCD_Monitor_PremiumBlue_Nova_M7.html * http://www.amazon.de/Iharbort-Zoll-Monitor-R%C3%BCckfahrkamera-monitor/dp/B00C09LVES/ref=lh_ni_t?ie=UTF8&psc=1&smid=A10J6HLB3153R2 Angeschlossen werden die Monitore über Cinch-Kabel. ==== Umbau von 12V auf 5V ==== Die Monitore sind für den 12-Volt-Betrieb auselegt, da die meisten Autos mit der 12V-Spannung arbeiten. Beim RaspberryPi kann das ungünstig sein, denn hier arbeiten wir mit 5V. Zwar werden die Monitore mit 12 von außen versorgt, der Betrieb erfolgt aber intern mit 5V. Also wird die 12V-Spannung, die auch unregelmäßiger sein kann als die Versorgung beim RaspberryPi auf 12V gedrosselt. Hierfür ist der kleine Chip XL1509 zuständig. Das Datenblatt (http://bbs.dianyuan.com/bbs/u/65/1617951209993662.pdf oder {{:computer:raspberrypi:xl1509.pdf|}}) ergibt, dass man 5V an den Pin 2 anlegen muss. Zu beachten ist weiterhin, dass das Netzteil mehr Strom liefern muss. Mein Pi läuft zwar mit dem Monitor, beim Hereinstecken in die USB-Buchse bootet der Pi aber neu. Ich nutzte 5V mit 1A. Quellen: * http://www.raspberrypi.org/phpBB3/viewtopic.php?f=64&t=17651 * http://www.wisegai.com/2012/11/29/raspberry-pi-using-a-3-5-tft-car-monitor-optional-powered-using-usb/ * http://www.raspberrypi.org/phpBB3/viewtopic.php?f=64&t=17651&start=125