Я считал себя из такого рода вещей начального уровня давным-давно, но я полагаю, что я не настолько умен, как я думал, потому что у меня, похоже, исключительный уровень проблем с этим!
Итак, я наконец-то закончил экзамены и могу поиграть со своей новой игрушкой, поэтому первым делом я настроил ЖК-дисплей персонажа над UART. У меня это работает без проблем, поэтому мне очень трудно понять, почему мне так тяжело с этой кнопкой!
Итак, я установил кнопку, аналогичную той, которую можно сделать с Arduino; с резистором 1 кОм, подключенным к земле. Я использовал свой мультиметр, чтобы убедиться, что кнопка работает, и выдает правильное количество энергии, которое есть. Я подключаю SSH к своей оболочке, вставляю кнопку в контакт 7 GPIO и захожу в python. Вот что я попробовал:
GPIO.pinout(GPIO.BOARD)
GPIO.setup(7,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
while 1==1:
inputval = GPIO.input(7)
print inputval
Это дает мне бесконечный цикл False
независимо от того, как я нажимаю кнопку. Я тоже попробовал GPIO.PUD_UP
и получил бесконечный цикл True
вместо. Я тоже попробовал это GPIO.PUD_OFF
и получил больше False
.
Я что-то здесь упускаю?
GPIO.PUD_UP
. Какое напряжение вы видите приGPIO.PUD_UP
включенной и нажатой кнопке?Ответы:
Мой GPIO не имеет
pinout
, я должен был изменить его наsetmode
Поскольку вы используете
GPIO.BOARD
контакт 7, он помеченGPIO 4(GPCLK0)
. Если вы хотели использоватьGPIO 7(CE1)
, вы должны использоватьGPIO.setmode(GPIO.BCM)
вместоЯ проверил код, коснувшись резистора 1 кОм от
3V3 Power
доGPIO 4(GPCLK0)
источник
GPIO.BOARD
была распиновка самой платы, как показано на рисунках, а не схема нумерации физических выводов. Когда я вернусь домой с работы, я попробую это, и я уверен, что это сработает.Я никогда не использую "pull_up_down = GPIO.PUD_DOWN" при настройке пина. Попробуй это:
Как сказал Гнибблер, убедитесь, что PinNum предназначен для BCM GPIO.
источник