Cahaya LED dengan GPIO Raspberry Pi

Awal tahun ini anda mendapat lawatan ke GPIO Raspberry Pi dan juga mengesyorkan papan pelayaran yang sangat berguna untuk mengenal pasti nombor pin. Hari ini kami meneruskan tema itu dan mula menggunakan pin ini digabungkan dengan kod dan perkakasan.

GPIO adalah bagaimana Raspberry Pi berbincang dengan dunia luar - "perkara sebenar" - menggunakan kod untuk memprogram isyarat dan tegasan ke dan dari header header 40-pin.

Pengekodan dengan GPIO cukup mudah untuk dimulakan, terutamanya untuk projek pemula seperti LED dan buzzer. Dengan hanya beberapa komponen dan beberapa baris kod anda boleh menyala atau memancarkan LED sebagai sebahagian daripada projek anda.

Artikel ini akan menunjukkan kepada anda apa yang anda perlukan untuk menyalakan LED menggunakan kod Python pada Raspberry Pi anda, menggunakan kaedah 'RPi.GPIO' tradisional.

01 04

Apa yang anda perlukan

Hanya beberapa bahagian yang mudah dan murah diperlukan untuk projek ini. Richard Saville

Berikut adalah senarai semua yang anda perlukan untuk projek starter kecil ini. Anda harus dapat mencari item ini di kedai pembuat kegemaran anda atau laman lelongan dalam talian.

02 04

Buat Litar - Langkah 1

Sambungkan setiap pin ke papan roti dengan wayar jumper. Richard Saville

Kami akan menggunakan 2 pin GPIO untuk projek ini, pin tanah (pin fizikal) untuk kaki tanah LED, dan PIN GPIO generik (GPIO 21, pin fizikal 40) untuk memacu LED - tetapi hanya apabila kami membuat keputusan - yang mana kodnya masuk.

Pertama, matikan Raspberry Pi anda. Sekarang, dengan menggunakan wayar jumper, hubungkan pin tanah ke lorong di papan roti anda. Seterusnya buat yang sama untuk PIN GPIO, menyambung ke lorong yang berbeza.

03 dari 04

Buat Litar - Langkah 2

LED dan perintang melengkapkan litar. Richard Saville

Seterusnya kita menambah LED dan perintang ke litar.

LED mempunyai polariti - bermakna mereka perlu kabel dengan cara tertentu. Mereka biasanya mempunyai satu kaki lagi iaitu kaki anod (positif), dan biasanya pinggiran rata pada kepala plastik LED yang menandakan kaki katod (negatif).

Perintang digunakan untuk melindungi kedua-dua LED daripada menerima terlalu banyak arus, dan pin GPIO dari 'memberi' terlalu banyak - yang boleh merosakkan kedua-duanya.

Terdapat sedikit penarafan perintang generik untuk LED standard - 330ohm. Terdapat beberapa matematik di belakangnya, tetapi sekarang mari kita memberi tumpuan kepada projek - anda sentiasa boleh melihat ke dalam hukum ohm dan topik yang berkaitan selepas itu.

Sambungkan satu kaki perintang ke lorong GND pada papan roti anda, dan kaki perintang lain ke lorong yang disambungkan ke kaki yang lebih pendek dari LED anda.

Kaki yang lebih panjang daripada LED sekarang perlu menyertai lorong yang disambungkan ke pin GPIO.

04 04

Kod GPIO Python (RPi.GPIO)

RPi.GPIO adalah perpustakaan yang sangat baik untuk menggunakan pin GPIO. Richard Saville

Pada masa ini, kami mempunyai litar berwayar dan bersedia untuk pergi, tetapi kami belum memberitahu PIN GPIO kami untuk menghantar apa-apa kuasa lagi, jadi LED anda tidak seharusnya dinyalakan.

Mari buat fail Python untuk memberitahu PIN GPIO kami untuk menghantar beberapa kuasa selama 5 saat dan kemudian berhenti. Versi terbaru Raspbian akan mempunyai perpustakaan GPIO necassary yang telah dipasang.

Buka tetingkap terminal dan buat skrip Python baru dengan memasukkan arahan berikut:

sudo nano led1.py

Ini akan membuka fail kosong untuk memasukkan kod kami. Masukkan garisan di bawah:

#! / usr / bin / python # Mengimport perpustakaan yang kami perlukan impor RPi.GPIO sebagai masa import GPIO # Tetapkan GPIO mode GPIO.setmode (GPIO.BCM) # Tetapkan LED GPIO number = 21 # Tetapkan PIN GPIO LED sebagai output GPIO.setup (LED, GPIO.OUT) # Putar pin GPIO di GPIO.output (LED, Benar) # Tunggu 5 detik time.sleep (5) # Matikan PIN GPIO.output (LED, Palsu)

Tekan Ctrl + X untuk menyimpan fail. Untuk menjalankan fail tersebut, masukkan arahan berikut di terminal dan tekan enter:

sudo python led1.py

LED perlu menyala selama 5 saat kemudian mematikan, mengakhiri program.

Mengapa tidak cuba menukar nombor 'time.sleep' untuk menyalakan LED untuk masa berlainan, atau cuba ubah 'GPIO.output (LED, Benar)' ke 'GPIO.output (LED, Palsu)' dan lihat apa yang berlaku?