Hallo BlackJack
ich probiere seit 4h eine Schleife zur Ausgabe mit dem Code zu machen:
Code: Alles auswählen
#!/usr/bin/python
#
# HD44780 LCD Test Script for
# Raspberry Pi
#
# Author : Matt Hawkins
# Site : http://www.raspberrypi-spy.co.uk
#
# Date : 26/07/2012
#
# The wiring for the LCD is as follows:
# 1 : GND
# 2 : 5V
# 3 : Contrast (0-5V)*
# 4 : RS (Register Select)
# 5 : R/W (Read Write) - GROUND THIS PIN
# 6 : Enable or Strobe
# 7 : Data Bit 0 - NOT USED
# 8 : Data Bit 1 - NOT USED
# 9 : Data Bit 2 - NOT USED
# 10: Data Bit 3 - NOT USED
# 11: Data Bit 4
# 12: Data Bit 5
# 13: Data Bit 6
# 14: Data Bit 7
# 15: LCD Backlight +5V**
# 16: LCD Backlight GND
#import
import RPi.GPIO as GPIO
import time
# Define GPIO to LCD mapping
LCD_RS = 7
LCD_E = 8
LCD_D4 = 25
LCD_D5 = 24
LCD_D6 = 23
LCD_D7 = 18
# Define some device constants
LCD_WIDTH = 16 # Maximum characters per line
LCD_CHR = True
LCD_CMD = False
LCD_LINE_1 = 0x80 # LCD RAM address for the 1st line
LCD_LINE_2 = 0xC0 # LCD RAM address for the 2nd line
# Timing constants
E_PULSE = 0.00005
E_DELAY = 0.00005
def main():
# Main program block
GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbers
GPIO.setup(LCD_E, GPIO.OUT) # E
GPIO.setup(LCD_RS, GPIO.OUT) # RS
GPIO.setup(LCD_D4, GPIO.OUT) # DB4
GPIO.setup(LCD_D5, GPIO.OUT) # DB5
GPIO.setup(LCD_D6, GPIO.OUT) # DB6
GPIO.setup(LCD_D7, GPIO.OUT) # DB7
# Initialise display
lcd_init()
# Send some test
lcd_byte(LCD_LINE_1, LCD_CMD)
lcd_string("Rasbperry Pi")
lcd_byte(LCD_LINE_2, LCD_CMD)
lcd_string("Model B")
time.sleep(3) # 3 second delay
# Send some text
lcd_byte(LCD_LINE_1, LCD_CMD)
lcd_string("Raspberrypi-spy")
lcd_byte(LCD_LINE_2, LCD_CMD)
lcd_string(".co.uk")
time.sleep(20)
def lcd_init():
# 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_string(message):
# Send string to display
message = message.ljust(LCD_WIDTH," ")
for i in range(LCD_WIDTH):
lcd_byte(ord(message[i]),LCD_CHR)
def lcd_byte(bits, mode):
# Send byte to data pins
# bits = data
# mode = True for character
# False for command
GPIO.output(LCD_RS, mode) # RS
# High bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x10==0x10:
GPIO.output(LCD_D4, True)
if bits&0x20==0x20:
GPIO.output(LCD_D5, True)
if bits&0x40==0x40:
GPIO.output(LCD_D6, True)
if bits&0x80==0x80:
GPIO.output(LCD_D7, True)
# Toggle 'Enable' pin
time.sleep(E_DELAY)
GPIO.output(LCD_E, True)
time.sleep(E_PULSE)
GPIO.output(LCD_E, False)
time.sleep(E_DELAY)
# Low bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x01==0x01:
GPIO.output(LCD_D4, True)
if bits&0x02==0x02:
GPIO.output(LCD_D5, True)
if bits&0x04==0x04:
GPIO.output(LCD_D6, True)
if bits&0x08==0x08:
GPIO.output(LCD_D7, True)
# Toggle 'Enable' pin
time.sleep(E_DELAY)
GPIO.output(LCD_E, True)
time.sleep(E_PULSE)
GPIO.output(LCD_E, False)
time.sleep(E_DELAY)
if __name__ == '__main__':
main()
leider schaffe ich es nicht in Send some Text es so zu machen,
das meine Ausgabe aus der csv angezeigt wird.
Ich habe es mit deinem Code:
Code: Alles auswählen
import csv
NEXT_KEY, PREVIOUS_KEY, FIRST_KEY, LAST_KEY = range(4)
def load_data(filename):
with open(filename, 'r', newline='') as csv_file:
reader = csv.reader(csv_file, delimiter=';', quotechar='|')
next(reader) # Skip header.
return [[row[0], row[4]] for row in reader]
def input_int(prompt, minimum, maximum):
prompt = prompt.format(min=minimum, max=maximum)
while True:
try:
result = int(input(prompt))
except ValueError:
print('Eingabe muss eine Zahl sein.')
if minimum <= result <= maximum:
return result
else:
print(
'Eingabe muss zwischen {0} und {1} liegen.'.format(
minimum, maximum
)
)
def show_values(index, values):
value_a, value_b = values
print(index, value_a)
print(value_b)
def get_key():
key_mapping = {
'': NEXT_KEY, 'z': PREVIOUS_KEY, 'r': FIRST_KEY, 'e': LAST_KEY
}
while True:
user_choice = input('weiter mit(Enter),zurück(z),restart(r),Ende(e): ')
try:
return key_mapping[user_choice]
except KeyError:
print('Unknown key: {0!r}'.format(user_choice))
def main():
filename = 'Test.csv'
data = load_data(filename)
if not data:
raise ValueError('{0!r} is empty.'.format(filename))
last_index = len(data) - 1
index = input_int('Startpunkt eingeben ({min}..{max}): ', 0, last_index)
while True:
show_values(index, data[index])
key = get_key()
if key == NEXT_KEY:
if index != last_index:
index += 1
else:
print('Ende')
elif key == PREVIOUS_KEY:
if index != 0:
index -= 1
else:
print('Anfang')
elif key == FIRST_KEY:
index = 0
elif key == LAST_KEY:
index = last_index
else:
assert False, 'Unexpected key code'
if __name__ == '__main__':
main()
probiert, ich weis aber nicht an welcher Stelle ich den einfügen muß.
Kannst du mir nen Tipp geben?
Danke
Gruß
Cardeto