Дисплей Adafruit 16x2 с не работающей клавиатурой, принимая кнопку ввода на RasPi B + 3 - PullRequest
0 голосов
/ 08 ноября 2018

В настоящее время я работаю над школьным проектом и использую RasPi B + 3 и дисплей Adafruit 16x2 с клавиатурой.

Я использую их для отображения имен и очков двух игроков, играющих за столом для аэрохоккея. Кому нужно вводить свои имена, используя 5 кнопок (вверх, вниз, вправо, влево, выберите), вверх и вниз управляют символом: если нажимается вверх, измените A на B, B на C при повторном нажатии. Если нажата кнопка вниз, замените C на B, B на A при повторном нажатии. Справа и слева находятся для управления местом символа, который вы меняете: если нажата левая кнопка, переместите символ влево, а если нажата правая, переместитесь к персонажу справа.

Проблема, с которой я столкнулся, заключается в том, что ни одна из вышеуказанных опций не работает, ЖК-дисплей загорается только при запуске кода, но на ЖК-дисплее не отображаются символы

Кто-нибудь знает в чем может быть проблема?

Я использую python3

Это мой код:

import time
import Adafruit_CharLCD as LCD


# Initialize the LCD using the pins
lcd = LCD.Adafruit_CharLCDPlate()

button_1 = (LCD.SELECT, 'Select', (1,1,1))
button_2 = (LCD.LEFT,   'Left'  , (1,0,0))
button_3 = (LCD.UP,     'Up'    , (1,0,1))
button_4 = (LCD.DOWN,   'Down'  , (1,1,0))
button_5 = (LCD.RIGHT,  'Right' , (1,0,1))

while cycle == true:
    x = 65
    y = 65
    part = 1
    while True:
#Part 1
#This part is for the name of player1
    if part == 1:
        if lcd.is_pressed(button_1):
            part += 1
            #To continue to part2
        if lcd.is_pressed(button_3):

            lcd.noblink
            x += 1
            cc=ord(x)
            x_2 = cc

            if x_2 > 90:
                x_2 -= 25
            #For moving from Z to A
            lcd.message(char(x_2))
            #moving the characters up 1 (A, B, C....)
        if lcd.is_pressed(button_4):

            lcd.noblink
            x -= 1
            cc=ord(x)
            x_2 = cc

            if x_2 < 65:
                x_2 += 25

                #For moving from A to Z
            lcd.message(char(x_2))
        #moving the characters down 1 Z, X, Y....)
        if lcd.is_pressed(button_2):
            remove(x_2)
            lcd.move_left
            x = 65
            #moving the editable character to the left
        if lcd.is_pressed(button_5):
            append(x_2)
            lcd.move_right
            x = 65

            #moving the editable character to the right
#Part 2
#This part is for the name of player2           
    if part == 2:
        if lcd.is_pressed(button_1):
            part += 1
            #To continue to the next part (visualis the names)
        if lcd.is_pressed(button_3):

            lcd.noblink
            y += 1
            cc=ord(y)
            y_2 = cc

            if y_2 > 90:
                y_2 -= 25
                #For moving from Z to A
            lcd.message(char(y_2))
            #moving the characters up 1 (A, B, C....)
        if lcd.is_pressed(button_4):

            lcd.noblink
            y -= 1
            cc=ord(y)
            y_2 = cc

            if y_2 < 65:
                y_2 += 25
                #For moving from A to Z 
            lcd.message(char(y_2))
            #moving the characters down 1 (Z, X, Y....)
        if lcd.is_pressed(button_2):
            remove(y_2)
            lcd.move_left
            y = 65
            #moving the editable character to the left 
        if lcd.is_pressed(button_5):
            append(y_2)
            lcd.move_right
            y = 65
            #moving the editable character to the right
#Part 3
#This part is for displaying the first 7 Characters of the names   (16/2=8  8-1=7 (this is for the spacing between the names) )
    if part == 3:
        # here must go the array to display the first and the second name
...