Daftar Isi:

Charlieplexing LEDs- Teori: 7 Langkah (dengan Gambar)
Charlieplexing LEDs- Teori: 7 Langkah (dengan Gambar)

Video: Charlieplexing LEDs- Teori: 7 Langkah (dengan Gambar)

Video: Charlieplexing LEDs- Teori: 7 Langkah (dengan Gambar)
Video: Cara kerja septic tank 2024, Juni
Anonim
Charlieplexing LED- Teorinya
Charlieplexing LED- Teorinya
Charlieplexing LED- Teorinya
Charlieplexing LED- Teorinya

Instruksi ini bukan merupakan proyek build Anda sendiri dan lebih merupakan deskripsi teori charlieplexing. Ini cocok untuk orang-orang dengan dasar-dasar elektronik, tetapi bukan pemula yang lengkap. Saya telah menulisnya sebagai tanggapan atas banyak pertanyaan yang saya dapatkan di Instructables saya yang diterbitkan sebelumnya.

Apa itu 'Charlieplexing'? Ini menggerakkan banyak LED dengan hanya beberapa pin. Jika Anda bertanya-tanya Charlieplexing dinamai Charles Allen di Maxim yang mengembangkan teknik ini. Ini bisa berguna untuk banyak hal. Anda mungkin perlu menampilkan informasi status pada mikrokontroler kecil, tetapi hanya memiliki beberapa pin cadangan. Anda mungkin ingin menampilkan dot matrix atau tampilan jam yang mewah tetapi tidak ingin menggunakan banyak komponen. Beberapa proyek lain yang mendemonstrasikan charlieplexing yang mungkin ingin Anda lihat adalah: Cara menggerakkan banyak LED dari beberapa pin mikrokontroler. oleh Westfw:- https://www.instructables.com/id/ED0NCY0UVWEP287ISO/ Dan beberapa proyek saya sendiri, Jam tangan The Microdot:- https://www.instructables.com/id/EWM2OIT78OERWHR38Z/ Jam Minidot 2: - https://www.instructables.com/id/E11GKKELKAEZ7BFZAK/ Contoh keren lainnya dari penggunaan charlieplexing adalah di: https://www.jsdesign.co.uk/charlie/ Jam Minidot 2 memperkenalkan skema charlieplexing canggih untuk memudar/peredupan yang tidak akan dibahas di sini. PEMBARUAN 19 Agustus 2008: Saya telah menambahkan file zip dengan sirkuit yang mungkin dapat memanfaatkan matriks charliplexing untuk LED daya tinggi yang dibahas (panjangnya:)) di bagian komentar. Ini memiliki tombol tekan + encoder posisi untuk melakukan antarmuka pengguna, ditambah sirkuit untuk kontrol komputer USB atau RS232. Masing-masing rel tegangan sisi tinggi dapat diatur ke salah satu dari dua tegangan, katakanlah 2.2V untuk LED MERAH dan 3.4V untuk hijau/biru/putih. Tegangan untuk rel sisi tinggi dapat diatur oleh trimpot. Saya membayangkan bahwa kabel pita IDC 20kawat dicolokkan ke papan, dan konektor IDC 20pin ditambahkan di sepanjang pita, setiap papan LED memiliki tautan ke kabel apa pun dalam matriks yang diinginkan. Rangkaiannya ada di Eagle Cad dan dirender pada sub gambar di bawah ini. Rangkaian sisi tinggi diimplementasikan dengan menggunakan optocoupler yang menurut saya mungkin cocok. Saya belum benar-benar menguji sirkuit ini atau menulis perangkat lunak apa pun karena kurangnya waktu, tetapi telah memberikan komentar, saya sangat tertarik dengan implementasi optocoupler. Siapa pun yang cukup berani untuk mencobanya … silakan posting hasil Anda. UPDATE 27 Agustus 2008: Bagi mereka yang tidak menggunakan EagleCad….ditambahkan di bawah ini adalah pdf dari skema

Langkah 1: Beberapa Teori LED

Beberapa Teori LED
Beberapa Teori LED
Beberapa Teori LED
Beberapa Teori LED

Charlieplexing bergantung pada sejumlah aspek yang berguna dari LED dan mikrokontroler modern.

Pertama apa yang terjadi ketika Anda menghubungkan LED ke listrik. Diagram utama di bawah ini menunjukkan apa yang disebut kurva If v Vf dari LED daya rendah 5mm yang khas. If singkatan dari 'forward current' Vf singkatan dari 'forward voltage' Sumbu vertikal dengan kata lain menunjukkan arus yang akan mengalir melalui LED jika Anda menempatkan tegangan sumbu horizontal di terminal itu. Ia bekerja sebaliknya juga, jika Anda mengukur bahwa saat ini dari beberapa nilai, Anda dapat melihat ke sumbu horizontal dan melihat tegangan LED akan hadir di terminal itu. Diagram kedua menunjukkan representasi skematis dari LED dengan If dan Vf berlabel. Dari diagram utama saya juga memberi label area grafik yang menarik. - Area pertama adalah tempat LED 'mati'. Lebih tepatnya LED memancarkan cahaya begitu redup sehingga Anda tidak akan dapat melihatnya kecuali Anda memiliki semacam penguat gambar super-duper. - Area kedua memiliki LED yang hanya sedikit memancarkan cahaya redup. - Area ketiga adalah tempat LED biasanya dioperasikan dan memancarkan cahaya sesuai dengan peringkat pabrikan. - Area keempat adalah di mana LED dioperasikan di luar batas operasinya, mungkin bersinar sangat terang tetapi sayangnya hanya untuk waktu yang singkat sebelum asap ajaib di dalam keluar dan tidak akan beroperasi lagi……yaitu di area ini terbakar karena terlalu banyak arus yang mengalir melaluinya. Perhatikan bahwa kurva If/Vf atau kurva operasi LED adalah kurva 'non-linier'. Artinya, itu bukan garis lurus… ada belokan atau lekukan di dalamnya. Terakhir diagram ini adalah untuk LED merah 5mm khas yang dirancang untuk beroperasi pada 20mA. LED yang berbeda dari produsen yang berbeda memiliki kurva operasi yang berbeda. Misalnya dalam diagram ini pada 20mA tegangan maju LED akan menjadi sekitar 1.9V. Untuk LED 5mm biru pada 20mA tegangan maju mungkin 3.4V. Untuk LED luxeon putih berdaya tinggi pada 350mA, tegangan maju mungkin sekitar 3,2V. Beberapa paket LED mungkin beberapa LED secara seri atau paralel, mengubah kurva Vf/If lagi. Biasanya pabrikan akan menentukan arus operasi yang aman untuk menggunakan LED pada, dan tegangan maju pada arus tersebut. Biasanya (tetapi tidak selalu) Anda mendapatkan grafik yang mirip dengan di bawah ini di lembar data. Anda perlu melihat lembar data untuk LED untuk menentukan tegangan maju pada arus operasi yang berbeda. Mengapa grafik ini sangat penting? Karena menunjukkan bahwa ketika tegangan melintasi LED, arus yang akan mengalir akan sesuai dengan grafik. Turunkan tegangan dan lebih sedikit arus yang mengalir…..dan LED akan 'mati'. Ini adalah bagian dari teori charlieplexing, yang akan kita bahas di langkah berikutnya.

Langkah 2: Hukum (Elektronik)

Hukum (Elektronik)
Hukum (Elektronik)
Hukum (Elektronik)
Hukum (Elektronik)
Hukum (Elektronik)
Hukum (Elektronik)

Masih belum pada keajaiban charlieplexing …. kita perlu pergi ke beberapa dasar hukum elektronik. Hukum bunga pertama menyatakan bahwa tegangan total di setiap rangkaian komponen yang terhubung dalam rangkaian listrik sama dengan jumlah individu tegangan di seluruh komponen. Ini ditunjukkan pada diagram utama di bawah ini. Ini berguna saat menggunakan LED karena baterai rata-rata atau pin keluaran mikrokontroler Anda tidak akan pernah memiliki tegangan yang tepat untuk menjalankan LED Anda pada arus yang disarankan. Misalnya mikrokontroler biasanya akan berjalan pada 5V dan pin outputnya akan berada pada 5V saat aktif. Jika Anda hanya menghubungkan LED ke pin output mikro, Anda akan melihat dari kurva operasi di halaman sebelumnya terlalu banyak arus akan mengalir di LED dan akan menjadi panas dan terbakar (mungkin merusak mikro juga). Namun jika kami memperkenalkan komponen kedua secara seri dengan LED, kami dapat mengurangi sebagian dari 5V sehingga tegangan yang tersisa tepat untuk menjalankan LED pada arus operasi yang tepat. Ini biasanya resistor, dan ketika digunakan dengan cara ini disebut resistor pembatas arus. Metode ini sangat umum digunakan dan mengarah pada apa yang disebut 'hukum ohm'….dinamakan sesuai dengan nama Mr. Hukum Ohm. Hukum Ohm mengikuti persamaan V = I * R di mana V adalah tegangan yang akan muncul pada resistansi R ketika arus I mengalir melalui resistor. V dalam volt, I dalam ampere dan R dalam ohm. Jadi jika kita memiliki 5V untuk dibelanjakan, dan kita ingin 1.9V melintasi LED untuk menjalankannya pada 20mA maka kita ingin resistor memiliki 5-1.9=3.1 V di seberangnya. Hal ini dapat kita lihat pada diagram kedua. Karena resistor dirangkai seri dengan LED, arus yang sama akan mengalir melalui resistor seperti LED, yaitu 20mA. Jadi mengatur ulang persamaan kita dapat menemukan resistansi yang kita butuhkan untuk membuat ini bekerja. V = I * RsoR = V / Isubstitusi nilai dalam contoh kita, kita mendapatkan:R = 3.1 / 0.02 = 155ohms(catatan 20mA = 0.02Amps)Masih dengan saya sejauh ini… keren. Sekarang lihat diagram 3. Ini memiliki LED terjepit di antara dua resistor. Menurut hukum pertama yang disebutkan di atas, kita memiliki situasi yang sama pada diagram kedua. Kami memiliki 1.9V di seluruh LED sehingga berjalan sesuai dengan lembar spesifikasinya. Kami juga memiliki masing-masing resistor mengurangi 1,55V masing-masing (dengan total 3,1). Menambahkan tegangan bersama-sama, kita memiliki 5V (pin mikrokontroler) = 1,55V (R1) + 1,9V (LED) + 1,55V (R2) dan semuanya seimbang. Dengan menggunakan hukum ohm, kami menemukan resistor masing-masing harus 77,5 ohm, yang merupakan setengah dari jumlah yang dihitung dari diagram kedua. Tentu saja dalam praktiknya Anda akan kesulitan menemukan resistor 77,5ohm, jadi Anda cukup mengganti nilai terdekat yang tersedia, katakanlah 75ohm dan berakhir dengan arus yang lebih sedikit. LED atau 82ohm agar aman dan memiliki sedikit lebih sedikit. Mengapa kita harus melakukan resistor ini untuk menggerakkan LED sederhana ….. baik jika Anda memiliki satu LED, semuanya agak konyol, tetapi ini adalah instruksi tentang charlieplexing dan berguna untuk langkah selanjutnya.

Langkah 3: Memperkenalkan 'Drive komplementer'

Memperkenalkan 'Drive komplementer'
Memperkenalkan 'Drive komplementer'

Nama lain yang lebih tepat untuk menggambarkan 'charlieplexing' adalah 'complementary drive'.

Dalam mikrokontroler rata-rata Anda, dalam firmware, Anda dapat memberi tahu mikro untuk mengatur pin keluaran menjadi '0' atau '1', atau untuk menghadirkan tegangan 0V pada output atau tegangan 5V pada output. Diagram di bawah ini sekarang menunjukkan LED yang diapit dengan pasangan terbalik….atau LED pelengkap, oleh karena itu penggerak komplementer. Pada paruh pertama diagram, mikro mengeluarkan 5V ke pin A, dan 0V ke pin B. Dengan demikian arus akan mengalir dari A ke B. Karena LED2 diorientasikan mundur ke LED1 tidak ada arus yang akan mengalir melaluinya dan tidak akan binar. Itulah yang disebut bias terbalik. Kami memiliki situasi yang setara dengan halaman sebelumnya. Kita pada dasarnya dapat mengabaikan LED2. Panah menunjukkan aliran arus. LED pada dasarnya adalah dioda (karenanya Light Emitting Diode). Dioda adalah perangkat yang memungkinkan arus mengalir ke satu arah, tetapi tidak ke arah lain. Skema semacam LED menunjukkan ini, arus akan mengalir ke arah panah …… tetapi diblokir sebaliknya. Jika kita menginstruksikan mikro untuk sekarang mengeluarkan 5V ke pin B dan 0V pada pin A, kita memiliki kebalikannya. Sekarang LED1 dibias mundur, LED2 dibias maju dan akan memungkinkan aliran arus. LED2 akan menyala dan LED1 akan menjadi gelap. Sekarang mungkin ide yang baik untuk melihat skema dari berbagai proyek yang disebutkan dalam pendahuluan. Anda akan melihat banyak pasangan komplementer ini dalam sebuah matriks. Tentu saja pada contoh di bawah ini kita mengendarai dua LED dengan dua pin mikrokontroler….bisa dibilang kenapa repot. Nah bagian selanjutnya adalah di mana kita sampai pada nyali charlieplexing dan bagaimana memanfaatkan pin keluaran mikrokontroler secara efisien.

Langkah 4: Akhirnya….matriks Charlieplex

Akhirnya….matriks Charlieplex
Akhirnya….matriks Charlieplex
Akhirnya….matriks Charlieplex
Akhirnya….matriks Charlieplex

Seperti disebutkan dalam pendahuluan, charliplexing adalah cara praktis untuk menggerakkan banyak LED dengan hanya beberapa pin pada mikrokontroler. Namun di halaman sebelumnya kami belum benar-benar menyimpan pin apa pun, menggerakkan dua LED dengan dua pin …. teriak besar!

Nah, kita dapat memperluas gagasan drive komplementer ke dalam matriks charlieplex. Diagram di bawah menunjukkan matriks charlieplex minimum yang terdiri dari tiga resistor dan enam LED dan hanya menggunakan tiga pin mikrokontroler. Sekarang apakah Anda melihat betapa bergunanya metode ini? Jika Anda ingin menggerakkan enam LED dengan cara biasa …. Anda memerlukan enam pin mikrokontroler. Bahkan dengan N pin mikrokontroler Anda berpotensi menggerakkan LED N * (N - 1). Untuk 3 pin ini adalah 3 * (3-1) = 3 * 2 = 6 LED. Banyak hal menumpuk dengan cepat dengan lebih banyak pin. Dengan 6 pin Anda dapat mengemudikan 6 * (6 - 1) = 6 * 5 = 30 LED….wow! Sekarang untuk sedikit charlieplexing. Lihatlah diagram di bawah ini. Kami memiliki tiga pasangan komplementer, satu pasang di antara setiap kombinasi pin keluaran mikro. Satu pasang antara A-B, satu pasang antara B-C dan satu pasang antara A-C. Jika Anda memutuskan pin C untuk saat ini, kami akan memiliki situasi yang sama seperti sebelumnya. Dengan 5V pada pin A dan 0V pada pin B, LED1 akan menyala, LED2 dibias mundur dan tidak akan menghantarkan arus. Dengan 5V pada pin B dan 0V pada pin A LED2 akan menyala dan LED1 dibias mundur. Ini mengikuti untuk pin mikro lainnya. Jika kita melepaskan pin B dan mengatur pin A ke 5V dan pin C ke 0V maka LED5 akan menyala. Membalik sehingga pin A adalah 0V dan pin C adalah 5V maka LED6 akan menyala. Sama untuk pasangan komplementer antara pin B-C. Tunggu, saya mendengar Anda berkata. Mari kita lihat kasus kedua sedikit lebih dekat. Kami memiliki 5V pada pin A dan 0V pada pin C. Kami telah memutuskan pin B (yang tengah). OK, jadi arus mengalir melalui LED5, arus tidak mengalir melalui LED6 karena bias balik (begitu juga LED2 dan LED4)….tetapi ada juga jalur untuk mengambil arus dari pin A, melalui LED1 dan LED3 tidak ada? Mengapa LED ini tidak menyala juga. Inilah inti dari skema charlieplexing. Memang ada arus yang mengalir baik LED1 dan LED3, namun tegangan di kedua gabungan ini hanya akan sama dengan tegangan LED5. Biasanya mereka akan memiliki setengah tegangan yang dimiliki LED5. Jadi jika kita memiliki 1.9V melintasi LED5, maka hanya 0,95V yang akan melintasi LED1 dan 0,95V melintasi LED3. Dari kurva If/Vf yang disebutkan di awal artikel ini, kita dapat melihat bahwa arus pada setengah tegangan ini jauh lebih rendah dari 20mA…..dan LED tersebut tidak akan menyala secara kasat mata. Ini dikenal sebagai pencurian arus. Jadi sebagian besar arus akan mengalir melalui LED yang kita inginkan, jalur paling langsung melalui jumlah LED paling sedikit (yaitu satu LED), daripada kombinasi seri LED. Jika Anda melihat aliran arus untuk kombinasi penempatan 5V dan 0V pada dua pin drive matriks charlieplex, Anda akan melihat hal yang sama. Hanya satu LED yang akan menyala pada satu waktu. Sebagai latihan, lihat situasi pertama. 5V pada pin A dan 0V pada pin B, lepaskan pin C. LED1 adalah rute terpendek untuk mengambil arus, dan LED 1 akan menyala. Arus kecil juga akan melewati LED5, lalu back up LED4 ke pin B…..tetapi sekali lagi, kedua LED ini secara seri tidak akan mampu menyedot arus yang cukup dibandingkan dengan LED 1 untuk bersinar terang. Dengan demikian kekuatan charlieplexing terwujud. Lihat diagram kedua yang merupakan skema untuk jam tangan Microdot saya…..30 LED, dengan hanya 6 pin. Jam Minidot 2 saya pada dasarnya adalah versi yang diperluas dari Microdot …. 30 LED yang sama diatur dalam sebuah array. Untuk membuat pola dalam array, setiap LED yang akan menyala dinyalakan sebentar, lalu mikro bergerak ke yang berikutnya. Jika dijadwalkan untuk menyala, lampu akan dinyalakan kembali untuk waktu yang singkat. Dengan cepat memindai melalui LED cukup cepat prinsip yang disebut 'kegigihan visi' akan memungkinkan array LED untuk menunjukkan pola statis. Artikel Minidot 2 memiliki sedikit penjelasan tentang prinsip ini. Tapi tunggu….. Sepertinya saya telah sedikit mengabaikan deskripsi di atas. Apa ini 'putuskan pin B', 'putuskan pin C'. Tolong bagian selanjutnya.

Langkah 5: Tri-states (bukan Becak)

Tri-negara bagian (bukan Becak)
Tri-negara bagian (bukan Becak)
Tri-negara bagian (bukan Becak)
Tri-negara bagian (bukan Becak)

Pada langkah sebelumnya kami menyebutkan mikrokontroler dapat diprogram untuk mengeluarkan tegangan 5V atau tegangan 0V. Untuk membuat matriks charlieplex berfungsi, kami memilih dua pin dalam matriks, dan memutuskan pin lainnya.

Tentu saja melepas pin secara manual agak sulit dilakukan, terutama jika kita memindai sesuatu dengan sangat cepat untuk menggunakan efek persistensi penglihatan untuk menunjukkan pola. Namun pin output mikrokontroler juga dapat diprogram menjadi pin input juga. Ketika pin mikro diprogram untuk menjadi input, pin tersebut masuk ke dalam apa yang disebut 'impedansi tinggi' atau 'tri-status'. Artinya, ia menghadirkan resistansi yang sangat tinggi (dengan orde megaohm, atau jutaan ohm) ke pin. Jika ada resistansi yang sangat tinggi (lihat diagram) maka pada dasarnya kita dapat menganggap pin terputus, dan skema charliplex bekerja. Diagram kedua menunjukkan pin matriks untuk setiap kombinasi yang memungkinkan untuk menerangi masing-masing dari 6 LED dalam contoh kita. Biasanya tri-state dilambangkan dengan 'X', 5V ditampilkan sebagai '1' (untuk logika 1) dan 0V sebagai '0'. Dalam firmware mikro untuk '0' atau '1' Anda akan memprogram pin menjadi output dan statusnya terdefinisi dengan baik. Untuk tri-state Anda memprogramnya untuk menjadi input, dan karena ini adalah input, kami tidak benar-benar tahu apa statusnya….maka 'X' untuk tidak diketahui. Meskipun kita mungkin mengalokasikan pin menjadi tri-state atau input, kita tidak perlu membacanya. Kami hanya memanfaatkan fakta bahwa pin input pada mikrokontroler memiliki impedansi tinggi.

Langkah 6: Beberapa Hal Praktis

Keajaiban charlieplexing bergantung pada fakta bahwa voltase individual yang disajikan di beberapa LED secara seri akan selalu lebih kecil daripada voltase di satu LED ketika LED tunggal paralel dengan kombinasi seri. Jika tegangannya lebih kecil, maka arusnya lebih kecil, dan mudah-mudahan arus dalam kombinasi seri akan sangat rendah sehingga LED tidak akan menyala. Namun ini tidak selalu terjadi. Katakanlah Anda memiliki dua LED merah dengan tipikal tegangan maju 1,9V dalam matriks Anda dan LED biru dengan tegangan maju 3,5V (katakanlah LED1=merah, LED3=merah, LED5=biru dalam 6 contoh LED kami). Jika Anda menyalakan LED biru, Anda akan mendapatkan 3,5/2 = 1,75V untuk setiap LED merah. Ini mungkin sangat dekat dengan area pengoperasian LED yang redup. Anda mungkin menemukan LED merah akan menyala redup ketika biru menyala. Oleh karena itu, adalah ide yang baik untuk memastikan tegangan maju dari setiap LED berwarna yang berbeda dalam matriks Anda kira-kira sama pada arus operasi, atau gunakan warna yang sama. LED dalam matriks. Dalam proyek Microdot/Minidot saya, saya tidak perlu khawatir tentang hal ini, saya menggunakan LED SMD biru/hijau efisiensi tinggi yang untungnya memiliki tegangan maju yang sama dengan merah/kuning. Namun jika saya menerapkan hal yang sama dengan LED 5mm, hasilnya akan lebih bermasalah. Dalam hal ini saya akan menerapkan matriks charlieplex biru/hijau dan matix merah/kuning secara terpisah. Saya perlu menggunakan lebih banyak pin …. tapi begitulah. Masalah lain adalah melihat penarikan Anda saat ini dari mikro dan seberapa terang Anda menginginkan LED. Jika Anda memiliki matriks besar, dan memindainya dengan cepat, maka setiap LED hanya menyala sebentar. Ini akan tampak relatif redup dibandingkan dengan tampilan statis. Anda dapat menipu dengan meningkatkan arus melalui LED dengan mengurangi resistor pembatas arus, tetapi hanya sampai titik tertentu. Jika Anda menarik terlalu banyak arus dari mikro terlalu lama, Anda akan merusak pin keluaran. Jika Anda memiliki matriks yang bergerak lambat, katakanlah status atau tampilan siklon, Anda dapat menjaga arus turun ke tingkat yang aman tetapi masih memiliki tampilan LED yang terang karena setiap LED menyala untuk waktu yang lebih lama, mungkin statis (dalam kasus indikator status). Beberapa keuntungan dari charlieplexing:- hanya menggunakan beberapa pin pada mikrokontroler untuk mengontrol banyak LED- mengurangi jumlah komponen karena Anda tidak memerlukan banyak chip driver/resistor dllBeberapa kelemahan:- firmware mikro Anda perlu menangani pengaturan baik status tegangan dan status input/output pin- perlu berhati-hati dengan pencampuran warna yang berbeda- Tata letak PCB sulit, karena matriks LED lebih kompleks.

Langkah 7: Referensi

Ada banyak referensi tentang charlieplexing di web. Selain tautan di bagian depan artikel, beberapa di antaranya adalah: Artikel asli dari Maxim, ini banyak berbicara tentang mengemudi tampilan 7 segmen yang juga memungkinkan. https://www.maxim-ic.com/appnotes.cfm/appnote_number/1880A entri wikihttps://en.wikipedia.org/wiki/Charlieplexing

Direkomendasikan: