Talaan ng mga Nilalaman:

Programmable LED: 6 Hakbang (na may Mga Larawan)
Programmable LED: 6 Hakbang (na may Mga Larawan)

Video: Programmable LED: 6 Hakbang (na may Mga Larawan)

Video: Programmable LED: 6 Hakbang (na may Mga Larawan)
Video: ATEM MasterClass v2 — FIVE HOURS of ATEM Goodness! 2024, Disyembre
Anonim
Programmable LED
Programmable LED

May inspirasyon ng iba't ibang mga LED Throwies, kumikislap na mga LED at mga katulad na itinuturo na nais kong gawin ang aking bersyon ng isang LED na kinokontrol ng isang microcontroller. Ang ideya ay upang gawing reprogrammable ang pagkakasunud-sunod ng LED blinking. Ang muling pagprogram na ito ay maaaring gawin sa ilaw at anino, hal. maaari mong gamitin ang iyong flashlight. Ito ang aking unang itinuro, ang anumang mga komento o pagwawasto ay maligayang pagdating. Update 2008-08-12: Mayroon na ngayong isang kit na magagamit sa Tinker Store. Narito ang isang video ng muling pagprogram ng ito. Paumanhin para sa kalidad.

Hakbang 1: Paano Ito Gumagana

Ginagamit bilang isang output ang isang LED. Bilang input ginamit ko ang isang LDR, isang light dependant na risistor. Binabago ng LDR ang resistor nito dahil tumatanggap ito ng higit pa o mas kaunting ilaw. Ginagamit ang resistor bilang analog input sa microprocessors ADC (analog digital converter).

Ang tagakontrol ay may dalawang mga mode ng pagpapatakbo, isa para sa pagrekord ng isang pagkakasunud-sunod, ang isa pa para sa pag-play pabalik ng naitala na pagkakasunud-sunod. Kapag napansin ng controller ang dalawang pagbabago ng ningning sa loob ng kalahati ng isang segundo, (madilim, maliwanag, madilim o kabaliktaran), lilipat ito sa mode ng pag-record. Sa recodring mode ang input ng LDR ay sinusukat ng maraming beses sa isang segundo at nakaimbak sa maliit na tilad. Kung ang memorya ay naubos, ang controller ay babalik sa mode ng pag-playback at magsisimulang i-play ang naitala na pagkakasunud-sunod. Tulad ng memorya ng maliit na kontrol na ito ay napaka-limitado, 64 bytes (oo, bytes!), Ang controller ay nakapagtala ng 400 bits. Iyon ay sapat na puwang sa loob ng 10 segundo na may 40 mga sample bawat segundo.

Hakbang 2: Mga Kagamitan at Kasangkapan

Mga Kagamitan at Kasangkapan
Mga Kagamitan at Kasangkapan
Mga Kagamitan at Kasangkapan
Mga Kagamitan at Kasangkapan

Mga Kagamitan- 2 x 1K resistor- 1 x LDR (Light Dependent Resistor), hal. M9960- 1 x Mababang-kasalukuyang LED, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB flash RAM, 64 Bytes RAM, 64 Bytes EEPROM, [email protected] 1 x CR2032, 3V, 220mAhTools- soldering iron - solder wire- breadboard- AVR programmer- 5V power supply- multimeterSoftware- Eclipse- CDT plugin- WinAVRCosts pangkalahatan ay dapat na mas mababa sa 5 $ nang walang mga tool. Ginamit ko ang ATtiny13v dahil ang bersyon na ito ng pamilya ng tagakontrol na ito ay maaaring tumakbo sa 1.8V. Ginagawa nitong posible na patakbuhin ang circuit gamit ang isang napakaliit na baterya. Upang mapatakbo ito nang napakatagal, nagpasya akong gumamit ng isang mababang kasalukuyang LED na umabot sa buong ningning na sa 2ma.

Hakbang 3: Mga Skematika

Mga Skema
Mga Skema

Ang ilang mga komento sa eskematiko. Ang pag-reset ng input ay hindi nakakonekta. Hindi ito pinakamahusay na pagsasanay. Mas mahusay na gumamit ng isang 10K risistor bilang pull up. Ngunit gumagana ito nang maayos para sa akin nang wala at nakakatipid ito ng isang risistor. Upang mapanatili ang circuit hangga't maaari, ginamit ko ang panloob na oscillator. Nangangahulugan iyon na nagse-save kami ng isang kristal at dalawang maliit na capacitor. Hinahayaan ng panloob na oscillator na tumakbo ang controller sa 1.2MHz na higit sa sapat na bilis para sa aming layunin. Kung magpasya kang gumamit ng isa pang supply ng kuryente kaysa sa 5V o upang gumamit ng ibang mga LED kailangan mong kalkulahin ang risistor R1. Ang pormula ay: R = (Power supply V - LED V) / 0.002A = 1650 Ohm (Power supply = 5V, LED V = 1.7V). Ang paggamit ng dalawang mababang kasalukuyang LED sa halip na isa, ang formula ay ganito: R = (Power supply V - 2 * LED V) / 0.002A = 800 Ohm. Mangyaring tandaan, na kailangan mong ayusin ang pagkalkula kung pumili ka ng isa pang uri ng LED. Ang halaga ng risistor R2 ay nakasalalay sa ginamit na LDR. Gumagana ang 1KOhm para sa akin. Maaaring gusto mong gumamit ng potensyomiter upang mahanap ang pinakamahusay na halaga. Ang cicuit ay dapat na makakita ng mga pagbabago sa ilaw sa normal na liwanag ng araw. Upang makatipid ng kuryente, ang PB3 ay nakatakda lamang sa mataas, kung ang isang pagsukat ay tapos na. Update: ang eskematiko ay nakaliligaw. Nasa ibaba ang isang tamang bersyon. Salamat, dave_chatting.

Hakbang 4: Magtipon sa isang Prototype Board

Magtipon sa isang Prototype Board
Magtipon sa isang Prototype Board
Magtipon sa isang Prototype Board
Magtipon sa isang Prototype Board

Kung nais mong subukan ang iyong circuit, ang isang breadboard ay napaka-madaling gamiting. Maaari mong tipunin ang lahat ng mga bahagi nang hindi kinakailangang maghinang ng anuman.

Hakbang 5: I-program ang Circuit

Programa ang Circuit
Programa ang Circuit
Programa ang Circuit
Programa ang Circuit

Maaaring mai-program ang controller sa iba't ibang mga wika. Karamihan sa mga ginamit ay Assembler, Basic at C. Ginamit ko ang C dahil tumutugma ito sa aking mga pangangailangan ng pinakamahusay. Nasanay ako sa C sampung taon na ang nakakalipas at nabuhay ulit ang ilan sa kaalaman (mabuti, ilan lamang …). Upang isulat ang iyong programa, inirerekumenda ko ang Eclipse kasama ang plugin ng CDT. Kumuha ng eclipse dito https://www.eclipse.org/ at ang plugin dito https://www.eclipse.org/cdt/. Para sa pag-compile ng C wika sa AVR microcontrollers kakailanganin mo ang isang cross compiler. Masuwerte tayo, mayroong isang port ng sikat na GCC. Ito ay tinatawag na WinAVR at maaaring matagpuan dito https://winavr.sourceforge.net/. Ang isang napakahusay na tutorial sa kung paano magprogram ng mga AVR Controller na may WinAVR ay narito https://www.mikrocontroller.net/articles/AVR-GCC- Pagtuturo. Paumanhin, nasa aleman ito ngunit maaari kang makahanap ng libu-libong mga pahina ng tutorial sa paksang iyon sa iyong wika, kung hinahanap mo ang mga ito. Matapos maipon ang iyong mapagkukunan, kailangan mong ilipat ang hex file sa controller. Magagawa iyon sa pamamagitan ng pagkonekta sa iyong PC sa circuit gamit ang ISP (sa system programmer) o paggamit ng mga nakatuon na programmer. Gumamit ako ng isang nakatuon na programmer dahil ginagawang mas madali ang circuit sa pamamagitan ng pag-save ng ilang mga wire at isang plug. Ang sagabal ay, na kailangan mong palitan ang controller sa pagitan ng circuit at ng programmer sa tuwing nais mong i-update ang iyong software. Ang aking programmer ay nagmula sa https://www.myavr.de/ at gumagamit ng USB upang kumonekta sa aking notebook. Maraming iba pa sa paligid at maaari mo itong buuin mismo. Para sa paglipat mismo ay gumamit ako ng isang programa na pinangalanang avrdude na bahagi ng pamamahagi ng WinAVR. Ang isang halimbawa ng linya ng utos ay maaaring magmukhang ganito:

avrdude -F -p t13 -c avr910 -P com4 -U flash: w: flickled.hex: iNakalakip maaari kang makakuha ng mapagkukunan at ang pinagsamang hex file.

Hakbang 6: Paghihinang

Paghihinang
Paghihinang

Kung ang iyong circuit ay gumagana sa breadboard maaari mo itong maghinang.

Maaari itong magawa sa isang PCB (naka-print na cicuit board), sa isang prototype board o kahit na walang board. Napagpasyahan kong gawin ito nang walang circuit na binubuo lamang ng ilang mga bahagi. Kung hindi ka pamilyar sa paghihinang, inirerekumenda kong maghanap ka muna para sa isang soldering tutorial. Ang aking mga kasanayan sa paghihinang ay medyo kalawangin ngunit sa palagay ko nakuha mo ang ideya. Sana nagustuhan mo ito. Alex

Inirerekumendang: