Vấn đề với nút ấn trên PI mâm xôi


7

Tôi hiện đang làm việc với Raspberry Pi . Tôi đã thực hiện chương trình nút nhấn (chuyển đổi) bằng python . Nhưng, khi tôi nhấn công tắc, thì ifđiều kiện là truevà dữ liệu được lưu nhưng khi tôi nhả nút công tắc thì chương trình của tôi bị kẹt. Tại sao?

Kịch bản của tôi:

#!/usr/bin/python

import RPi.GPIO as GPIO

switch_1 = 17

GPIO.setmode(GPIO.BCM)

GPIO.setup(switch_1, IN.OUT)

while(True):
    sw1_status = GPIO.input(switch_1)

    print 'Switch_1 : ', sw1_status

    if sw1_status == True:
        print ('Data stored')
        while(sw1_status != 0): // here my program stuck.
            pass

Điều này là khá gọn gàng.
Wogsland

Câu trả lời:


9

Chương trình của bạn bị kẹt vì bạn đã tạo một vòng lặp vô hạn trong đó. Tại thời điểm bạn nhận được đến while(sw1_status != 0)dòng, sw1_statusđược đảm bảo TrueTrue != 0sẽ luôn luôn đánh giá True.

Có lẽ bạn phải đợi cho đến khi nút được phát hành, trong trường hợp đó bạn muốn cập nhật sw1_statustrong vòng lặp, bằng cách thay thế passbằng sw1_status = GPIO.input(switch_1).


1

Ngoài ra, tôi đã sử dụng

while((GPIO.input(switch_1)) == 1):
              pass

thay vì

while(sw1_status != 0): // here my program stuck.
            pass

Nó hoạt động tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.