Isi kandungan:

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

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

Video: LED Charlieplexing- Teori: 7 Langkah (dengan Gambar)
Video: How Charlieplexing Works 2024, November
Anonim
LED Charlieplexing- Teori
LED Charlieplexing- Teori
LED Charlieplexing- Teori
LED Charlieplexing- Teori

Instruksional ini kurang membina projek anda sendiri dan lebih banyak penerangan mengenai teori charlieplexing. Ia sesuai untuk orang yang mempunyai asas elektronik, tetapi bukan pemula yang lengkap. Saya telah menulisnya sebagai tindak balas kepada banyak soalan yang saya dapati dalam Instructables yang saya terbitkan sebelum ini.

Apa itu 'Charlieplexing'? Ia menggerakkan banyak LED dengan hanya beberapa pin. Sekiranya anda tertanya-tanya Charlieplexing diberi nama Charles Allen di Maxim yang mengembangkan teknik ini. Ini boleh berguna untuk banyak perkara. Anda mungkin perlu memaparkan maklumat status pada mikrokontroler kecil, tetapi hanya mempunyai sedikit pin. Anda mungkin mahu menunjukkan matriks dot atau jam yang menarik tetapi tidak mahu menggunakan banyak komponen. Beberapa projek lain yang menunjukkan charlieplexing yang mungkin anda ingin perhatikan adalah: Cara menggerakkan banyak LED dari beberapa pin mikrokontroler. oleh Westfw: - https://www.instructables.com/id/ED0NCY0UVWEP287ISO/ Dan beberapa projek saya sendiri, The Microdot menonton: - https://www.instructables.com/id/EWM2OIT78OERWHR38Z/ Jam Minidot 2: - https://www.instructables.com/id/E11GKKELKAEZ7BFZAK/ Contoh menarik lain penggunaan charlieplexing adalah di: https://www.jsdesign.co.uk/charlie/ Jam Minidot 2 memperkenalkan skema charlieplexing lanjutan untuk pudar / redup yang tidak akan dibincangkan di sini. KEMASKINI 19 Ogos 2008: Saya telah menambah fail zip dengan litar yang mungkin dapat memanfaatkan charliplexing matriks untuk LED kuasa tinggi yang dibincangkan (panjang lebar:)) di bahagian komen. Ia mempunyai pengekod kedudukan butang + untuk melakukan antara muka pengguna, ditambah litar untuk kawalan komputer USB atau RS232. Setiap rel voltan sisi tinggi dapat diatur ke salah satu dari dua voltan, misalnya 2.2V untuk LED MERAH dan 3.4V untuk hijau / biru / putih. Voltan untuk rel sisi tinggi boleh ditetapkan oleh trimpot. Saya membayangkan bahawa kabel pita IDC 20wire dipasang ke papan, dan penyambung IDC 20pin ditambahkan sepanjang panjang pita, setiap papan LED mempunyai pautan ke wayar apa pun di matriks yang diinginkan. Litar berada di Eagle Cad dan ditunjukkan dalam sub gambar di bawah. Litar sisi tinggi dilaksanakan dengan menggunakan optocoupler yang saya rasa mungkin sesuai. Saya sebenarnya tidak menguji rangkaian ini atau menulis perisian kerana kekurangan masa, tetapi telah memberikan komen, saya sangat berminat dengan pelaksanaan optocoupler. Sesiapa yang cukup berani untuk mencuba … sila hantar hasil anda. UPDATE 27 Ogos 2008: Bagi mereka yang tidak menggunakan EagleCad….ditambahkan di bawah adalah pdf skema

Langkah 1: Beberapa Teori LED

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

Charlieplexing bergantung pada sebilangan aspek berguna LED dan mikrokontroler moden.

Pertama apa yang berlaku semasa anda menyambungkan LED ke elektrik. Gambarajah utama di bawah menunjukkan apa yang disebut lengkung If v Vf LED kuasa rendah 5mm khas. Sekiranya bermaksud 'arus maju' Vf bermaksud 'voltan hadapan' Paksi menegak dengan kata lain menunjukkan arus yang akan mengalir melalui LED jika anda meletakkan voltan paksi mendatar di terminalnya. Ia juga berfungsi sebaliknya, jika anda mengukur bahawa arus mempunyai nilai, anda boleh melihat ke arah paksi mendatar dan melihat voltan yang akan ditunjukkan oleh LED di terminalnya. Gambar rajah kedua menunjukkan gambaran skematik LED dengan label If dan Vf. Dari rajah utama saya juga melabelkan kawasan grafik yang menarik. - Kawasan pertama adalah di mana LED 'mati'. Lebih tepatnya LED memancarkan cahaya sehingga samar-samar anda tidak akan dapat melihatnya kecuali anda mempunyai semacam penguat gambar super-duper. - Kawasan kedua mempunyai LED sedikit memancarkan cahaya redup. - Kawasan ketiga adalah di mana LED biasanya dikendalikan dan memancarkan cahaya pada peringkat pengeluar. - Kawasan keempat adalah di mana LED dikendalikan melebihi had operasi, mungkin menyala dengan sangat terang tetapi sayangnya hanya dalam waktu yang singkat sebelum asap sihir di dalamnya melarikan diri dan ia tidak akan beroperasi lagi …… iaitu di kawasan ini ia terbakar kerana terlalu banyak arus mengalir melaluinya. Perhatikan bahawa lengkung If / Vf atau operasi LED adalah lengkung 'tidak linear'. Maksudnya, itu bukan garis lurus … ia mempunyai selekoh atau keriting di dalamnya. Terakhir, rajah ini adalah untuk LED merah khas 5mm yang dirancang untuk beroperasi pada 20mA. LED yang berbeza dari pengeluar yang berbeza mempunyai keluk operasi yang berbeza. Contohnya dalam rajah ini pada 20mA voltan hadapan LED akan lebih kurang 1.9V. Untuk LED 5mm biru pada 20mA voltan hadapan mungkin 3.4V. Untuk LED luxeon putih berkuasa tinggi pada 350mA voltan hadapan mungkin sekitar 3.2V. Beberapa pakej LED mungkin beberapa LED secara bersiri atau selari, mengubah keluk Vf / If lagi. Biasanya pengeluar akan menentukan arus operasi yang selamat menggunakan LED di, dan voltan hadapan pada arus itu. Biasanya (tetapi tidak selalu) anda mendapat grafik yang serupa dengan di bawah dalam lembar data. Anda perlu melihat lembar data LED untuk menentukan voltan hadapan pada arus operasi yang berbeza. Mengapa graf ini sangat penting? Kerana menunjukkan bahawa ketika voltan melintasi LED, arus yang akan mengalir akan sesuai dengan grafik. Turunkan voltan dan arus kurang akan mengalir…..dan LED akan ‘mati’. Ini adalah sebahagian daripada teori charlieplexing, yang akan kita bahas pada langkah seterusnya.

Langkah 2: Undang-undang (Elektronik)

Undang-undang (Elektronik)
Undang-undang (Elektronik)
Undang-undang (Elektronik)
Undang-undang (Elektronik)
Undang-undang (Elektronik)
Undang-undang (Elektronik)

Masih belum pada keajaiban charlieplexing lagi …. kita perlu pergi ke beberapa asas undang-undang elektronik. Undang-undang kepentingan pertama menyatakan bahawa jumlah voltan merentasi sebarang siri komponen yang bersambung dalam litar elektrik sama dengan jumlah individu voltan merentasi komponen. Ini ditunjukkan dalam rajah utama di bawah. Ini berguna semasa menggunakan LED kerana bateri atau pin output mikrokontroler purata anda tidak akan betul-betul voltan yang tepat untuk menjalankan LED anda pada arus yang disyorkan. Contohnya mikrokontroler biasanya berjalan pada 5V dan pin outputnya akan berada pada 5V ketika dihidupkan. Sekiranya anda hanya menyambungkan LED ke pin output mikro, anda akan melihat dari keluk operasi di halaman sebelumnya terlalu banyak arus akan mengalir dalam LED dan ia akan menjadi panas dan terbakar (mungkin juga merosakkan mikro) Walau bagaimanapun, jika kita memperkenalkan komponen kedua secara bersiri dengan LED, kita dapat mengurangkan sebahagian dari 5V sehingga voltan kiri tepat untuk menjalankan LED pada arus operasi yang betul. Ini biasanya perintang, dan apabila digunakan dengan cara ini disebut perintang penghad arus. Kaedah ini digunakan sangat biasa dan membawa kepada apa yang disebut 'undang-undang ohm' …. sehingga dinamakan Mr Ohm. Undang-undang Ohm mengikuti persamaan V = I * R di mana V adalah voltan yang akan muncul melintasi rintangan R ketika arus I mengalir melalui perintang. V berada dalam volt, saya berada dalam amp dan R berada dalam ohm. Oleh itu, jika kita mempunyai 5V untuk menghabiskan, dan kita mahu 1.9V melintasi LED agar dapat berjalan pada 20mA maka kita mahu perintang mempunyai 5-1.9 = 3.1 V di seberang. Kita dapat melihatnya dalam rajah kedua. Kerana perintangnya bersiri dengan LED, arus yang sama akan mengalir melalui perintang seperti LED, iaitu 20mA. Oleh itu, menyusun semula persamaan, kita dapat mencari rintangan yang kita perlukan untuk membuat ini berfungsi. V = I * RsoR = V / Mengganti nilai dalam contoh kita dapat: R = 3.1 / 0.02 = 155ohms (nota 20mA = 0.02Amps) Masih bersama saya setakat ini … sejuk. Sekarang lihat rajah 3. Ia mempunyai LED yang terpasang di antara dua perintang. Menurut undang-undang pertama yang disebutkan di atas, kita mempunyai situasi yang sama pada rajah kedua. Kami mempunyai 1.9V di seluruh LED sehingga berjalan sesuai dengan lembaran spesifikasinya. Kami juga mempunyai setiap perintang yang mengurangkan 1.55V setiap satu (untuk jumlah 3.1). Menambah voltan bersama-sama kita mempunyai 5V (pin mikrokontroler) = 1.55V (R1) + 1.9V (LED) + 1.55V (R2) dan semuanya mengimbangkan. Dengan menggunakan undang-undang ohm, kita dapati perintang masing-masing mestilah 77.5 ohm, yang merupakan separuh daripada jumlah yang dikira dari rajah kedua. Sudah tentu dalam praktiknya anda akan sukar untuk mencari perintang 77.5ohm, jadi anda hanya akan menggantikan nilai yang tersedia terdekat, katakan 75ohms dan berakhir dengan arus lebih sedikit di LED atau 82ohms supaya selamat dan sedikit kurang. Mengapa di bumi kita harus melakukan pasir perintang ini untuk menggerakkan LED yang mudah….. baik jika anda mempunyai satu LED itu semua agak bodoh, tetapi ini boleh diarahkan pada charlieplexing dan sangat berguna untuk langkah seterusnya.

Langkah 3: Memperkenalkan 'Drive pelengkap'

Memperkenalkan 'Drive pelengkap'
Memperkenalkan 'Drive pelengkap'

Nama lain yang lebih tepat untuk menggambarkan 'charlieplexing' adalah 'pelengkap pemacu'.

Dalam mikrokontroler purata anda, dalam firmware anda dapat memberitahu mikro untuk menetapkan pin output menjadi '0' atau '1', atau untuk menunjukkan voltan 0V pada output atau voltan 5V pada output. Gambarajah di bawah sekarang menunjukkan LED sandwic dengan pasangan terbalik….atau LED pelengkap, dan seterusnya pemacu pelengkap. Pada separuh pertama rajah, mikro mengeluarkan 5V ke pin A, dan 0V ke pin B. Oleh itu, arus akan mengalir dari A ke B. Kerana LED2 berorientasikan ke belakang ke LED1 tidak ada arus yang akan melaluinya dan ia tidak akan bersinar. Inilah yang disebut bias terbalik. Kami mempunyai keadaan yang setara dengan halaman sebelumnya. Pada dasarnya kita boleh mengabaikan LED2. Anak panah menunjukkan aliran semasa. LED pada dasarnya adalah diod (oleh itu Diod Pemancar Cahaya). Diod adalah peranti yang membolehkan arus mengalir dalam satu arah, tetapi tidak ke arah yang lain. Skema jenis LED menunjukkan ini, arus akan mengalir ke arah anak panah …… tetapi disekat sebaliknya. Sekiranya kita memerintahkan mikro sekarang mengeluarkan 5V ke pin B dan 0V pada pin A, kita mempunyai sebaliknya. Sekarang LED1 dipusingkan terbalik, LED2 ke depan bias dan akan membenarkan aliran arus. LED2 akan menyala dan LED1 akan gelap. Sekarang mungkin idea yang baik untuk melihat skema dari pelbagai projek yang disebutkan dalam pengenalan. Anda mesti melihat banyak pasangan pelengkap ini dalam matriks. Sudah tentu dalam contoh di bawah ini kita menggerakkan dua LED dengan dua pin mikrokontroler …. anda boleh mengatakan mengapa bersusah payah. Nah, bahagian seterusnya adalah di mana kita dapat mengetahui keberanian charlieplexing dan bagaimana ia menggunakan pin output mikrokontroler yang cekap.

Langkah 4: Akhirnya…. Charlieplex Matrix

Akhirnya…. Charlieplex Matrix
Akhirnya…. Charlieplex Matrix
Akhirnya…. Charlieplex Matrix
Akhirnya…. Charlieplex Matrix

Seperti disebutkan dalam pendahuluan, charliplexing adalah cara yang berguna untuk menggerakkan banyak LED dengan hanya beberapa pin pada mikrokontroler. Walau bagaimanapun di halaman sebelumnya kami tidak menyimpan pin apa pun, menggerakkan dua LED dengan dua pin….besar!

Baiklah kita dapat mengembangkan idea pemacu pelengkap ke dalam matriks charlieplex. Rajah di bawah menunjukkan matriks charlieplex minimum yang terdiri daripada tiga perintang dan enam LED dan hanya menggunakan tiga pin mikrokontroler. Sekarang anda melihat bagaimana kaedah ini berguna? Sekiranya anda ingin menggerakkan enam LED dengan cara biasa …. anda memerlukan enam pin mikrokontroler. Sebenarnya dengan pin N mikrokontroler, anda berpotensi menggerakkan LED N * (N - 1). Untuk 3 pin ini ialah 3 * (3-1) = 3 * 2 = 6 LED. Segala sesuatu dapat disusun dengan cepat dengan lebih banyak pin. Dengan 6 pin anda boleh memandu 6 * (6 - 1) = 6 * 5 = 30 LED….wow! Sekarang ke bit charlieplexing. Lihat rajah di bawah. Kami mempunyai tiga pasangan pelengkap, satu pasangan antara setiap kombinasi pin output mikro. Satu pasangan antara A-B, satu pasangan antara B-C dan satu pasangan antara A-C. Sekiranya anda memutuskan pin C untuk masa ini, kami akan mengalami situasi yang sama seperti sebelumnya. Dengan 5V pada pin A dan 0V pada pin B, LED1 akan menyala, LED2 terbalik dan tidak akan mengalirkan arus. Dengan 5V pada pin B dan 0V pada pin A, LED2 akan bersinar dan LED1 terbalik. Ini berikut untuk pin mikro yang lain. Sekiranya kita memutuskan pin B dan menetapkan pin A ke 5V dan pin C ke 0V maka LED5 akan bersinar. Berbalik sehingga pin A 0V dan pin C 5V maka LED6 akan menyala. Sama untuk pasangan pelengkap antara pin B-C. Tunggu, saya dengar awak cakap. Mari kita lihat kes kedua dengan lebih dekat. Kami mempunyai 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 kerana bias terbalik (dan begitu juga LED2 dan LED4) …. tetapi ada juga jalan untuk arus yang diambil dari pin A, melalui LED1 dan LED3 tidak ada? Mengapa LED ini juga tidak menyala. Inilah inti skema charlieplexing. Memang ada arus yang mengalir kedua LED1 dan LED3, namun voltan di kedua-dua gabungan ini hanya akan sama dengan voltan melintasi LED5. Biasanya mereka akan mempunyai separuh voltan yang terdapat pada LED5. Oleh itu, jika kita mempunyai 1.9V merentasi LED5, maka hanya 0.95V di seberang LED1 dan 0.95V di seluruh LED3. Dari kurva If / Vf yang disebutkan di awal artikel ini kita dapat melihat bahawa arus pada voltan separuh ini jauh lebih rendah daripada 20mA…..dan LED tersebut tidak akan menyala dengan jelas. Ini dikenali sebagai pencurian semasa. Oleh itu, sebahagian besar arus akan mengalir walaupun LED yang kita mahukan, jalan paling langsung melalui bilangan LED yang paling sedikit (iaitu satu LED), dan bukannya gabungan siri LED apa pun. Sekiranya anda melihat aliran semasa untuk sebarang kombinasi meletakkan 5V dan 0V pada dua pin pemacu matriks charlieplex, anda akan melihat perkara yang sama. Hanya satu LED yang akan menyala pada satu masa. Sebagai latihan, perhatikan keadaan pertama. 5V pada pin A dan 0V pada pin B, cabut pin C. LED1 adalah laluan terpendek untuk arus, dan LED 1 akan menyala. Arus kecil juga akan melalui LED5, kemudian menyandarkan LED4 ke pin B….. tetapi sekali lagi, kedua-dua LED ini secara bersiri tidak akan dapat menyedot arus yang cukup berbanding dengan LED 1 untuk menyala dengan terang. Oleh itu kekuatan charlieplexing direalisasikan. Lihat rajah kedua yang merupakan skema untuk jam tangan Microdot saya…..30 LED, dengan hanya 6 pin. Jam Minidot 2 saya pada dasarnya adalah versi diperluas dari Microdot….sama 30 LED yang disusun dalam satu array. Untuk membuat corak dalam array, setiap LED yang akan diterangi akan dihidupkan sebentar, kemudian mikro bergerak ke yang berikutnya. Sekiranya dijadualkan untuk diterangi, ia akan dihidupkan semula untuk waktu yang singkat. Dengan mengimbas LED dengan cepat dengan cepat, prinsip yang disebut 'persisten penglihatan' akan membolehkan pelbagai LED menunjukkan corak statik. Artikel Minidot 2 mempunyai sedikit penjelasan mengenai prinsip ini. Tetapi tunggu….. Saya nampaknya telah banyak menerangkan keterangan di atas. Apa ini perniagaan 'putuskan pin B', 'putuskan pin C'. Bahagian seterusnya sila.

Langkah 5: Tri-keadaan (bukan roda tiga)

Tri-keadaan (bukan roda tiga)
Tri-keadaan (bukan roda tiga)
Tri-keadaan (bukan roda tiga)
Tri-keadaan (bukan roda tiga)

Pada langkah sebelumnya kami menyebutkan mikrokontroler dapat diprogramkan untuk menghasilkan voltan 5V atau voltan 0V. Untuk menjadikan matriks charlieplex berfungsi, kami memilih dua pin dalam matriks, dan memutuskan sambungan pin lain.

Tentunya melepaskan pin secara manual agak sukar dilakukan, terutamanya jika kita mengimbas sesuatu dengan cepat untuk menggunakan daya tahan kesan penglihatan untuk menunjukkan corak. Walau bagaimanapun, pin output mikrokontroler juga dapat diprogramkan menjadi pin input juga. Apabila pin mikro diprogram untuk menjadi input, ia masuk ke dalam apa yang disebut 'high-impedence' atau 'tri-state'. Iaitu rintangan yang sangat tinggi (dari urutan megaohms, atau berjuta-juta ohm) ke pin. Sekiranya terdapat rintangan yang sangat tinggi (lihat gambar rajah) maka pada dasarnya kita dapat menganggap pin itu terputus, dan skema charliplex berfungsi. Gambar rajah kedua menunjukkan pin matriks untuk setiap kombinasi yang mungkin untuk menerangi setiap 6 LED dalam contoh kita. Biasanya keadaan tiga dilambangkan dengan 'X', 5V ditunjukkan sebagai '1' (untuk logik 1) dan 0V sebagai '0'. Dalam firmware mikro untuk '0' atau '1' anda akan memprogram pin menjadi output dan keadaannya ditentukan dengan baik. Untuk tri-state, anda memprogramkannya menjadi input, dan kerana inputnya kita tidak benar-benar tahu apa keadaannya …. maka 'X' tidak diketahui. Walaupun kita mungkin memperuntukkan pin untuk tri-state atau input, kita tidak perlu membacanya. Kami hanya memanfaatkan kenyataan bahawa pin input pada mikrokontroler adalah impedensi tinggi.

Langkah 6: Beberapa Perkara Praktikal

Keajaiban charlieplexing bergantung pada fakta bahawa voltan individu yang ditunjukkan pada pelbagai LED dalam siri akan selalu kurang daripada satu LED tunggal apabila LED tunggal selari dengan kombinasi siri. Sekiranya voltan kurang, arus lebih sedikit, dan semoga arus dalam siri ini sangat rendah sehingga LED tidak menyala. Walau bagaimanapun, ini tidak selalu berlaku. Katakan anda mempunyai dua LED merah dengan tipikal voltan hadapan 1.9V dalam matriks anda dan LED biru dengan voltan hadapan 3.5V (katakanlah LED1 = merah, LED3 = merah, LED5 = biru dalam contoh 6 LED kami). Sekiranya anda menyalakan LED biru, anda akan berakhir dengan 3.5 / 2 = 1.75V untuk setiap LED merah. Ini mungkin sangat dekat dengan kawasan operasi LED yang redup. Anda mungkin mendapati LED merah akan menyala redup ketika warna biru menyala. Oleh itu, adalah idea yang baik untuk memastikan voltan hadapan mana-mana LED berwarna berbeza dalam matriks anda kira-kira sama pada arus operasi, atau gunakan warna yang sama LED dalam matriks. Dalam projek Microdot / Minidot saya, saya tidak perlu bimbang tentang ini, saya menggunakan LED SMD biru / hijau kecekapan tinggi yang untungnya mempunyai voltan hadapan yang sama seperti merah / kuning. Tetapi jika saya melaksanakan perkara yang sama dengan LED 5mm hasilnya akan lebih bermasalah. Dalam kes ini saya akan menerapkan matriks charlieplex biru / hijau dan matrik merah / kuning secara berasingan. Saya perlu menggunakan lebih banyak pin …. tetapi di sana anda pergi. Masalah lain ialah melihat cabutan semasa anda dari mikro dan seberapa terang anda mahukan LED. Sekiranya anda mempunyai matriks besar, dan mengimbasnya dengan cepat, maka setiap LED menyala hanya dalam masa yang singkat. Ini akan kelihatan agak redup berbanding paparan statik. Anda boleh menipu dengan meningkatkan arus melalui LED dengan mengurangkan arus perintang yang terhad, tetapi hanya pada satu titik. Sekiranya anda terlalu banyak mengambil arus dari mikro anda akan merosakkan pin output. Sekiranya anda mempunyai matriks yang bergerak perlahan, katakan status atau paparan siklon, anda dapat mengekalkan arus ke tahap yang selamat tetapi masih mempunyai paparan LED yang terang kerana setiap LED menyala lebih lama, mungkin statik (jika penunjuk status). Beberapa kelebihan charlieplexing: - hanya menggunakan beberapa pin pada mikrokontroler untuk mengawal banyak LED - mengurangkan bilangan komponen kerana anda tidak memerlukan banyak cip pemacu / perintang dll. Beberapa kelemahan: - firmware mikro anda perlu menangani tetapan kedua-dua keadaan voltan dan keadaan input / output pin- perlu berhati-hati dengan mencampurkan warna yang berbeza- Susun atur PCB sukar, kerana matriks LED lebih kompleks.

Langkah 7: Rujukan

Terdapat banyak rujukan mengenai charlieplexing di web. Selain pautan di bahagian depan artikel, beberapa di antaranya adalah: Artikel asal dari Maxim, ini banyak diperkatakan mengenai pemanduan paparan segmen 7 yang juga mungkin. https://www.maxim-ic.com/appnotes.cfm/appnote_number/1880Antara wikihttps://en.wikipedia.org/wiki/Charlieplexing

Disyorkan: