Saya menganggap diri saya keluar dari hal-hal tingkat pemula semacam ini sejak lama, tapi saya kira saya tidak secerdas yang saya kira karena saya tampaknya memiliki tingkat masalah yang luar biasa dengan itu!
Jadi saya akhirnya menyelesaikan ujian dan dapat bermain dengan mainan baru saya, jadi hal pertama yang saya lakukan adalah mendapatkan tampilan karakter LCD yang dipasang di atas UART. Saya mendapatkan bahwa tidak ada masalah, jadi saya mengalami kesulitan untuk mencari tahu mengapa saya mengalami kesulitan dengan tombol ini!
Jadi saya sudah menyiapkan tombol yang mirip dengan cara orang dengan Arduino; dengan resistor 1k yang terhubung ke ground. Saya menggunakan multimeter saya untuk memastikan bahwa tombolnya berfungsi dan memadamkan jumlah daya yang tepat. Saya SSH ke shell saya, pasang tombol ke GPIO pin 7 dan masuk ke python. Inilah yang saya coba:
GPIO.pinout(GPIO.BOARD)
GPIO.setup(7,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
while 1==1:
inputval = GPIO.input(7)
print inputval
Ini memberi saya loop tanpa akhir False
terlepas dari bagaimana saya menekan tombol. Saya mencobanya GPIO.PUD_UP
juga dan mendapat loop tak berujung True
sebagai gantinya. Saya juga mencobanya GPIO.PUD_OFF
dan mendapat lebih banyak False
.
Apakah saya melewatkan sesuatu di sini?
GPIO.PUD_UP
. Tegangan apa yang Anda lihat denganGPIO.PUD_UP
hidup dan tombol ditekan?Jawaban:
GPIO saya tidak punya
pinout
, saya harus mengubahnyasetmode
Karena Anda menggunakan
GPIO.BOARD
pin 7 adalah yang berlabelGPIO 4(GPCLK0)
. Jika Anda bermaksud untuk menggunakanGPIO 7(CE1)
, Anda harus menggunakanGPIO.setmode(GPIO.BCM)
bukanSaya menguji kode dengan menyentuh resistor 1k dari
3V3 Power
keGPIO 4(GPCLK0)
sumber
GPIO.BOARD
adalah untuk pinout dari papan itu sendiri seperti yang ditunjukkan dalam gambar, bukan skema penomoran pin fisik. Ketika saya pulang kerja, saya akan mencobanya dan saya yakin itu akan berhasil.Saya tidak pernah menggunakan "pull_up_down = GPIO.PUD_DOWN" dalam pengaturan pin. Coba ini:
Seperti yang dikatakan gnibbler, pastikan PinNum untuk BCM GPIO.
sumber