3.6. Dasar-dasar elektronika

Mengendalikan perangkat eksternal dari pin GPIO memerlukan rangkaian di sisi lain pin tersebut. Tiga konsep dasar elektronika -- tegangan, arus, dan hubungan keduanya melalui resistor -- muncul di setiap rangkaian semacam itu.

3.6.1. Tegangan, arus, resistansi

  • Tegangan (volt, V) adalah beda potensial antara dua titik dalam rangkaian. Rel catu daya chip mungkin berada pada 3,3 V relatif terhadap ground; pin GPIO yang diaktifkan tinggi berada pada tegangan yang sama, yaitu 3,3 V.

  • Arus (ampere, A, atau miliampere, mA) adalah aliran muatan melalui kabel. Arus selalu kembali ke asalnya, sehingga agar arus dapat mengalir, rangkaian harus membentuk loop lengkap dari catu daya kembali ke ground.

  • Resistansi (ohm, Ω) adalah seberapa besar jalur menghambat aliran tersebut. Tujuan resistor adalah menetapkan arus ke nilai yang diketahui pada tegangan yang diketahui.

Hukum Ohm menghubungkan ketiganya:

A triangle divided into three regions labelled V at top, I and R at the bottom; the rearranged forms V = IR, I = V/R, R = V/I appear around it.

Hukum Ohm dalam tiga bentuknya.

Dengan kata lain: tegangan pada sebuah resistor sama dengan arus yang melewatinya dikalikan resistansinya. Mengetahui dua dari tiga besaran tersebut memberikan besaran ketiga melalui aljabar.

3.6.2. Dioda

Dioda adalah komponen dua terminal yang menghantarkan arus dalam satu arah (dari anoda ke katoda) dan memblokir arus dalam arah sebaliknya.

A diode schematic symbol -- a triangle pointing right into a vertical bar -- with anode marked on the left and cathode on the right. An LED variant adds two outward arrows next to the symbol indicating emitted light.

Dioda hanya menghantarkan dari anoda ke katoda. LED adalah dioda yang memancarkan cahaya saat menghantarkan arus.

Dioda juga memiliki tegangan maju (Vf) -- penurunan tegangan di atasnya saat arus mengalir dalam arah penghantaran. Begitu tegangan yang diterapkan mencapai Vf, dioda berperilaku hampir seperti kawat; di bawahnya, hampir tidak ada arus yang mengalir.

3.6.3. LED

Light-emitting diode (LED) adalah dioda yang mengubah arus konduksinya menjadi cahaya tampak atau inframerah. Kecerahan berbanding lurus dengan arus; warna ditentukan oleh bahan kimia LED, bukan oleh pengendaliannya.

Tegangan maju LED yang umum:

  • Merah: 1,8 -- 2,2 V

  • Hijau atau kuning: 2,0 -- 2,4 V

  • Biru atau putih: 2,8 -- 3,4 V

Arus operasi yang berguna untuk LED indikator adalah 5 -- 20 mA. Arus yang lebih tinggi lebih terang tetapi mempersingkat umur LED dan dapat melampaui batas daya pin GPIO.

3.6.4. Resistor pembatas arus

Menghubungkan LED langsung antara pin GPIO dan ground akan memungkinkan arus yang hampir tidak terbatas mengalir: begitu tegangan maju tercapai, LED terlihat seperti rangkaian hampir hubung singkat. Resistor seri antara pin dan LED menetapkan arus ke nilai yang aman.

A circuit: GPIO pin connects through a resistor R to the anode of an LED; the LED's cathode goes to ground. Labels mark Vsupply at the pin, V_R across the resistor, Vf across the LED, and the current If flowing around the loop.

Resistor seri menetapkan arus LED.

Tegangan catu daya terbagi antara resistor dan LED: LED menanggung tegangan majunya, resistor menanggung sisanya. Berdasarkan hukum Ohm:

R = (Vsupply - Vf) / If

Untuk LED merah (Vf 2.0 V) yang dikendalikan dari pin GPIO 3,3 V pada 10 mA:

R = (3.3 - 2.0) / 0.010 = 130 Ω

Dalam praktiknya, pilih nilai standar yang lebih besar terdekat (150 Ω atau 220 Ω). Hasilnya adalah LED yang sedikit lebih redup dengan margin keamanan yang lebih baik. Gunakan 200 -- 470 Ω sebagai nilai default yang masuk akal ketika kecerahan yang tepat tidak penting.

3.6.5. Mengapa setiap bagian penting

Bentuk setiap rangkaian output GPIO berasal dari empat konsep di atas:

  • Tegangan menetapkan energi yang tersedia pada pin. GPIO 3,3 V memiliki 3,3 V untuk digunakan di sepanjang apa pun yang dihubungkan antara pin tersebut dan ground.

  • Dioda (dalam hal ini, LED) mengonsumsi sebagian tegangan tersebut sebagai penurunan majunya dan menolak untuk menghantarkan dalam arah yang salah -- ini menetapkan arah mana dan bagian tetap.

  • Resistor pembatas arus mengonsumsi sisa tegangan dan mengubah anggaran yang tersisa menjadi arus yang terkendali. Tanpanya, LED akan menarik arus sebesar yang dapat disuplai pin -- biasanya cukup untuk merusak salah satu atau keduanya.

  • Hukum Ohm adalah yang membuat nilai resistor dapat dihitung: diberikan sisa tegangan dan arus yang diinginkan, R diperoleh melalui aljabar.

Tegangan, arus, resistansi, dioda, dan satu persamaan yang disusun ulang sudah cukup untuk merancang setiap tahap output GPIO dasar.

Bagian-bagian yang sama telah tersembunyi di balik LED on-board sepanjang waktu. machine.LED("LED_RED").on() menyalakan LED karena board kamera sudah menyediakan segalanya di sekelilingnya -- resistor pembatas arus, kabel ke ground, LED itu sendiri -- dan class tersebut hanya mengalihkan GPIO silikon di belakangnya. Tampilan "satu baris menyalakan LED" memang benar; itu hanya cara singkat untuk mengatakan "kendalikan rangkaian itu". Lepaskan abstraksinya dan tepat rangkaian di atas adalah yang tersisa.

machine.Pin adalah silikon yang sama yang diekspos tanpa bagian-bagian di sekelilingnya. Skrip mengendalikan tegangan pin secara langsung; Anda menyediakan resistor (yang ukurannya ditentukan oleh hukum Ohm), LED, dan jalur kembali ke ground. Empat konsep yang sama muncul kembali, dalam kombinasi yang sedikit berbeda, di balik debouncing switch, pemfilteran PWM, dan pengendalian motor.