Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
computer:raspberrypi:displays [2013/06/21 14:50] ristigl [mini-Displays] |
computer:raspberrypi:displays [2018/03/16 21:11] (aktuell) |
||
---|---|---|---|
Zeile 9: | Zeile 9: | ||
Einbau und Ansteuerung: | Einbau und Ansteuerung: | ||
* http://www.schnatterente.net/technik/raspberry-pi-32-zeichen-hitachi-hd44780-display | * 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}} | ||
+ | |||
+ | <code python> | ||
+ | #!/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() | ||
+ | |||
+ | </code> | ||
+ | |||
+ | 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|}} | ||
* | * | ||
- | ===== kleine-Displays ===== | + | ===== Auto-Monitore ===== |
- | Auto-Monitore, z.b.: | + | 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.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 | * 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 | + | 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 | ||
+ | |||
+ |