Baterai 9 volt terhubung ke transistor yang mengendalikan LED dengan Arduino

8

Saya mencoba menambahkan pengaturan pencahayaan LED khusus ke komputer gaming desktop saya. Dalam pengaturan ini saya ingin set kecil LED dapat dinyalakan terpisah dari set lainnya. Ini agar saya dapat menyalakan set yang berbeda pada waktu yang berbeda untuk membuat "pertunjukan cahaya".

Saya menggunakan pin I / O digital Arduino untuk mengontrol transistor (BC547B) yang akan memasok daya dari baterai 9 volt ke LED. LED diberi peringkat 1.9v dan saya memiliki beberapa set 5 LED (5 * 1.9 = 9.5 - tidak perlu untuk resistor ... kan?) Terhubung secara seri dan "set ganda" tersebut harus dihubungkan secara paralel.

Namun, karena kurangnya transistor, saya mudah (sampai saya mendapatkan lebih banyak transistor) menghubungkan 2 set dari 5 LED per transistor. Bingung? Biarkan saya menyatukan ini dalam skema menggunakan hanya 1 transistor (dalam versi final akan ada lebih banyak):

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Jadi, pada dasarnya masalahnya adalah, ketika saya menyalakan pin 5 di Arduino saya, LED tidak menyala. Kenapa ini? . Saya mungkin melakukan sesuatu yang salah di sini, tetapi, jika saya melakukannya, saya tidak bisa mengetahuinya.

Ini adalah kode sementara untuk Arduino yang saya gunakan, kalau-kalau ada yang ingin melihatnya:

void setup() {
    pinMode(5, OUTPUT);
}

void loop() {
    digitalWrite(5, HIGH);
    delay(1000);
    digitalWrite(5, LOW);
    delay(1000);
}

Yang dilakukannya hanyalah menyalakan pin 5, tunggu sebentar, matikan, tunggu sebentar, dan ulangi.

Terima kasih sebelumnya.

PS Permintaan maaf untuk judul yang aneh.

EDIT:

Saya juga harus mencatat bahwa saya sangat baru dalam hal-hal semacam ini. Saya melakukan ini untuk semacam proyek pembelajaran (dan komputer saya dapat terlihat keren).

RobertR
sumber
Saya mengambil kembali bendera saya. Ini membutuhkan jawaban yang lebih mendalam. Juga, +1 untuk mengajukan pertanyaan yang jelas lengkap dengan skema, kode, tata bahasa yang baik, dan penjelasan yang lengkap!
uint128_t
Anda memiliki terlalu banyak leds dalam seri untuk 9V Anda. Coba 3. Jangan gunakan pengikut Anda karena tidak akan ada cukup volt dari mikro untuk menggerakkannya. Gunakan pengumpul terbuka dan lakukan wastafel arus yang tepat untuk string seri.
Autis

Jawaban:

13

Pertama, seluruh "5 * 1.9V = 9.5V -> tidak perlu resistor" tidak akan berfungsi. Tegangan maju tidak tepat, dan 9V Anda juga tidak. Berikut ini penjelasan mengapa tegangan maju == tegangan suplai menjadi masalah . Juga, akan ada penurunan tegangan pada transistor Anda.

Sirkuit Anda memiliki banyak masalah.

  1. Untuk menghidupkan transistor, Arduino perlu output 5 * 1.9V + ~ 0.7V = ~ 10.2V. Pin Arduino menghasilkan 5V, jadi itu tidak langsung. Jika Anda meng-ground emitor dan menghubungkan LED ke kolektor, itu kemungkinan besar akan berhasil.

  2. Transistor Anda memerlukan resistor dasar untuk membatasi arus yang melewatinya. Anda berisiko merusak Arduino dan transistor Anda. Ketika menjenuhkan transistor (yang ingin Anda lakukan untuk membuatnya berfungsi seperti saklar), basis akan berada di ~ 0.7V. Tanpa basis resistor, pin Arduino drive ke 5V dan banyak arus mengalir ke basis, membakar Arduino yang buruk. Oleh karena itu, resistor basis diperlukan; nilainya tergantung pada berapa banyak arus yang Anda inginkan melalui LED dan gain transistor saat ini. Tanpa melakukan perhitungan, sesuatu antara 220Ω dan 1kΩ mungkin bagus.

  3. LED atau untaian LED secara paralel membutuhkan masing-masing resistor. Ada banyak jawaban di situs ini yang dapat menjelaskan alasannya secara lebih rinci; pada dasarnya, tegangan maju bersih pada untaian LED yang berbeda akan berbeda, menyebabkan ketidakseimbangan arus. Secara matematis,Vs-nVfsayaf=Rdimana Vs adalah tegangan suplai Anda, n adalah jumlah LED dalam untai seri dan Vf,sayaf masing-masing adalah tegangan maju LED dan arus maju yang diinginkan.

  4. Ketika Anda berhasil, baterai 9V Anda mungkin tidak akan memadai (baterai 9V memiliki kapasitas yang sangat kecil dan kemampuan arus yang rendah). Kutil dinding 9V atau sejenisnya akan jauh lebih tepat. Juga, transistor itu hanya dinilai untuk arus kolektor maksimum 100mA. Beberapa helai LED akan melebihi itu dan transistor Anda akan dipanggang. Transistor yang lebih besar, atau lebih baik lagi, MOSFET yang gemuk, akan memastikan Anda dapat dengan aman mengganti banyak LED. Untuk satu untai, atau mungkin dua, transistor itu baik-baik saja. Jika Anda menggunakan PSU PC 12V, tidak masalah, pastikan untuk menghitung resistor pembatas Anda saat ini dengan 12V, bukan 9V.

Jadi, gunakan empat LED secara seri dan resistor pembatas arus yang sesuai, ubah koneksi transistor, dan tambahkan basis resistor. Setidaknya itu harus membantu Anda memulai.

uint128_t
sumber
Ok terima kasih! Tapi ada beberapa pertanyaan. Pertama, untuk poin 2, ke mana resistor itu harus pergi? Di pin dasar transistor? Juga, untuk poin 3, apakah Anda mengatakan saya perlu resistor di depan setiap untai LED? Dan ya baterai 9v hanya sementara; Saya lupa menyebutkan itu. Saya berencana untuk hanya menghubungkan ke konektor molex 12v pada catu daya komputer saya.
RobertR
1
Ya, basis resistor berjalan antara basis dan ATmega. Dan ya, Anda perlu resistor secara seri dengan setiap untai LED untuk membatasi arus. Saya akan memperluas jawaban saya untuk mencakup beberapa pertanyaan Anda.
uint128_t
1
wrt point 4: jika LED harus di-flash dengan siklus tugas yang cukup rendah, kapasitor elektrolitik besar yang paralel dengan baterai mungkin bisa membantu. Pastikan untuk mendapatkan satu nilai 15V atau lebih (mis. Terlalu spesifik).
Chris H
Ok jadi satu pertanyaan lagi: apa resistansi resistor yang disebutkan dalam poin 3? Menggunakan Hukum Ohms melalui persamaan yang Anda berikan, itu akan menjadi (9 - 9,5) / 0,04 = -12,5 . Nilai 0,04 digunakan untuk arus maju karena setiap LED dinilai pada 20mA dan saya memiliki 2 untai secara paralel sehingga arus maju keseluruhan adalah 40mA atau 0,04A.
RobertR
1
Ya, itu adalah petunjuk mengapa Anda tidak harus menggunakan 5 LED secara seri. Seperti yang saya katakan sebelumnya, Anda harus memiliki resistor terpisah untuk setiap untai, jadi jika Anda menggunakan 4 LED secara seri dengan resistor, perhitungannya adalah (9V-4 * 1.9V) / 20mA = 70Ω.
uint128_t