Съдържание:

Програмируем светодиод: 6 стъпки (със снимки)
Програмируем светодиод: 6 стъпки (със снимки)

Видео: Програмируем светодиод: 6 стъпки (със снимки)

Видео: Програмируем светодиод: 6 стъпки (със снимки)
Видео: КАК УЗНАТЬ ПАРАМЕТРЫ ЛЮБОГО СВЕТОДИОДА 2024, Юли
Anonim
Програмируем светодиод
Програмируем светодиод

Вдъхновен от различни LED Throwies, мигащи светодиоди и подобни инструкции, исках да направя моята версия на светодиод, контролиран от микроконтролер. Идеята е да направя мигащата LED последователност препрограмируема. Това препрограмиране може да се извърши със светлина и сянка, напр. бихте могли да използвате фенерчето си. Това е първият ми инструктаж, всякакви коментари или корекции са добре дошли. Актуализиране 2008-08-12: Вече има наличен комплект в Tinker Store. Ето видео на препрограмирането му. Извинете за качеството.

Стъпка 1: Как работи

Като изход се използва светодиод. Като вход използвах LDR, светозависим резистор. Този LDR променя своя резистор, тъй като получава повече или по -малко светлина. След това резисторът се използва като аналогов вход към микропроцесорите ADC (аналогов цифров преобразувател).

Контролерът има два режима на работа, единият за запис на последователност, другият за възпроизвеждане на записаната последователност. След като контролерът забележи две промени в яркостта в рамките на половин секунда (тъмно, ярко, тъмно или обратното), той превключва в режим на запис. В режим на прекодиране входът на LDR се измерва няколко пъти в секунда и се съхранява на чипа. Ако паметта е изчерпана, контролерът се връща в режим на възпроизвеждане и започва да възпроизвежда записаната последователност. Тъй като паметта на този малък контролер е много ограничена, 64 байта (да, байтове!), Контролерът може да записва 400 бита. Това е достатъчно място за 10 секунди с 40 проби в секунда.

Стъпка 2: Материали и инструменти

Материали и инструменти
Материали и инструменти
Материали и инструменти
Материали и инструменти

Материали- 2 x 1K резистор- 1 x LDR (Light Rependist Resistor), напр. M9960- 1 x Нискотоков светодиод, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB флаш памет, 64 байта RAM, 64 байта EEPROM, [email protected] 1 x CR2032, 3V, 220mAh Инструменти- поялник - спойка тел- макет- AVR програмист- 5V захранване- мултицет Софтуер- Eclipse- CDT плъгин- WinAVR Разходите като цяло трябва да бъдат под 5 $ без инструменти. Използвах ATtiny13v, защото тази версия на това семейство контролери може да работи на 1.8V. Това дава възможност да се управлява веригата с много малка батерия. За да работи много дълго, реших да използвам светодиод с нисък ток, който достига пълна яркост при 2ma.

Стъпка 3: Схеми

Схеми
Схеми

Някои коментари по схемата. Входът за нулиране не е свързан. Това не е най -добрата практика. По -добре би било да се използва 10K резистор като издърпване. Но той работи добре за мен и спестява резистор. За да поддържам схемата възможно най -проста, използвах вътрешния осцилатор. Това означава, че спестяваме кристал и два малки кондензатора. Вътрешният осцилатор позволява на контролера да работи на 1.2MHz, което е повече от достатъчна скорост за нашата цел. Ако решите да използвате друго захранване от 5V или да използвате други светодиоди, трябва да изчислите резистора R1. Формулата е: R = (Захранване V - LED V) / 0.002A = 1650 Ohm (Захранване = 5V, LED V = 1.7V). Използвайки два светодиода с нисък ток вместо един, формулата изглежда така: R = (Захранване V - 2 * LED V) / 0,002A = 800 Ома. Моля, обърнете внимание, че трябва да коригирате изчислението, ако изберете друг тип светодиод. Стойността на резистора R2 зависи от използвания LDR. 1KOhm работи за мен. Може да искате да използвате потенциометър, за да намерите най -добрата стойност. Кабината трябва да може да открива промени в светлината при нормална дневна светлина. За да се пести енергия, PB3 се настройва само на високо, ако се прави измерване. Актуализация: схемата беше подвеждаща. По -долу е правилната версия. Благодаря, dave_chatting.

Стъпка 4: Сглобете на прототипна дъска

Сглобете на прототипна дъска
Сглобете на прототипна дъска
Сглобете на прототипна дъска
Сглобете на прототипна дъска

Ако искате да тествате веригата си, чертежът е много удобен. Можете да сглобите всички части, без да се налага да запоявате нищо.

Стъпка 5: Програмирайте веригата

Програмирайте веригата
Програмирайте веригата
Програмирайте веригата
Програмирайте веригата

Контролерът може да бъде програмиран на различни езици. Най -използваните са Assembler, Basic и C. Използвах C, тъй като той отговаря най -добре на нуждите ми. Бях свикнал с C преди десет години и успях да съживя част от знанията (добре, само някои …). За да напишете вашата програма, препоръчвам Eclipse с приставката CDT. Вземете eclipse тук https://www.eclipse.org/ и приставката тук https://www.eclipse.org/cdt/. За компилиране на C език към AVR микроконтролери ще ви е необходим кръстосан компилатор. За щастие, ние имаме пристанище на известния GCC. Той се нарича WinAVR и може да бъде намерен тук https://winavr.sourceforge.net/. Много добър урок за това как да програмирате AVR контролери с WinAVR е тук https://www.mikrocontroller.net/articles/AVR-GCC- Урок. За съжаление, той е на немски, но може да намерите хиляди страници с уроци по тази тема на вашия език, ако ги търсите. След като компилирате своя източник, трябва да прехвърлите шестнадесетичния файл към контролера. Това може да стане чрез свързване на вашия компютър към веригата с помощта на ISP (в системния програмист) или с помощта на специализирани програмисти. Използвах специален програмист, тъй като улеснява схемата малко по -лесно, като запазва някои проводници и щепсел. Недостатъкът е, че трябва да сменяте контролера между веригата и програмиста всеки път, когато искате да актуализирате софтуера си. Моят програмист идва от https://www.myavr.de/ и използва USB за свързване към моя преносим компютър. Има много други наоколо и дори можете да го изградите сами. За самия трансфер използвах програма, наречена avrdude, която е част от дистрибуцията на WinAVR. Примерен команден ред може да изглежда така:

avrdude -F -p t13 -c avr910 -P com4 -U флаш: w: flickled.hex: iВ прикачен файл може да получите източника и компилирания шестнадесетичен файл.

Стъпка 6: Запояване

Запояване
Запояване

Ако вашата схема работи на макета, можете да я запоите.

Това може да се направи на печатна платка (печатна платка), на прототипна платка или дори без дъска. Реших да го направя без, тъй като веригата се състои само от няколко компонента. Ако не сте запознати с запояването, препоръчвам ви първо да потърсите урок за запояване. Моите умения за запояване са малко ръждясали, но мисля, че схванахте идеята. Надявам се да ви е харесало. Алекс

Препоръчано: