Доброе время суток! Посоветовали обратиться с вопрос на этот форум. Купил себе Raspberry Pi, поиграться. Хочу научится использовать GPIO в своих целях. Т.к. в программировании я новичок решил использовать Python, и с GPIO разберусь и с Python.
Почитав сайты на эту тему решил попробовать сделать что-то сам. Написал вот такой скрипт:
На русском это звучит так: Слушаем GPIO 7 и если на нем 0, выводим на экран его статус, ждем 5 секунд и снова слушаем GPIO 7.
Но тут подкралась проблема, если убрать "while True" и все что ниже, а оставить только это:
То на GPIO 7 действительно постоянно есть 1, и переходит он в 0 только тогда когда я замыкаю GPIO 7(на нем 3.3в) на землю, проверял несколько раз!!!
Но если я добавляю в код эту часть:
То получаю странное поведение. Стоит мне на порт GPIO 7 надеть перемычку, просто надеть не замыкать на землю, я получаю вывод на экран "0"!
Вопрос как?! Наводок быть не может, т.к. там 3.3в, т.е. 1, а чтобы убрать 1 нужно его замкнуть на землю + к этому, если отсутствует блок while True, то на порту постоянно есть 1, хоть с перемычкой, хоть без нее. Значит что-то не так написал, но смотрел примеры ошибок не нашел.
Помогите, уже 2ю ночь спать не могу, мучает меня эта зараза.
Заранее спасибо!
Раздел: Arduino и Raspberry Pi
Почитав сайты на эту тему решил попробовать сделать что-то сам. Написал вот такой скрипт:
#!/usr/bin/python
#-*- coding: UTF8 -*-
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(7, GPIO.IN)
GPIO.setup(7, GPIO.IN, pull_up_down=GPIO.PUD_UP)
signal = GPIO.input(7)
print(signal)
while True :
current_state = GPIO.input(7)
if current_state!=1:
print("!",signal)
time.sleep(5)
На русском это звучит так: Слушаем GPIO 7 и если на нем 0, выводим на экран его статус, ждем 5 секунд и снова слушаем GPIO 7.
Но тут подкралась проблема, если убрать "while True" и все что ниже, а оставить только это:
#!/usr/bin/python
#-*- coding: UTF8 -*-
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(7, GPIO.IN)
GPIO.setup(7, GPIO.IN, pull_up_down=GPIO.PUD_UP)
signal = GPIO.input(7)
print(signal)
То на GPIO 7 действительно постоянно есть 1, и переходит он в 0 только тогда когда я замыкаю GPIO 7(на нем 3.3в) на землю, проверял несколько раз!!!
Но если я добавляю в код эту часть:
while True :
current_state = GPIO.input(7)
if current_state!=1:
print("!",signal)
time.sleep(5)
То получаю странное поведение. Стоит мне на порт GPIO 7 надеть перемычку, просто надеть не замыкать на землю, я получаю вывод на экран "0"!
Вопрос как?! Наводок быть не может, т.к. там 3.3в, т.е. 1, а чтобы убрать 1 нужно его замкнуть на землю + к этому, если отсутствует блок while True, то на порту постоянно есть 1, хоть с перемычкой, хоть без нее. Значит что-то не так написал, но смотрел примеры ошибок не нашел.
Помогите, уже 2ю ночь спать не могу, мучает меня эта зараза.
Заранее спасибо!
Раздел: Arduino и Raspberry Pi