Оглавление:

Программируемый светодиод: 6 шагов (с изображениями)
Программируемый светодиод: 6 шагов (с изображениями)

Видео: Программируемый светодиод: 6 шагов (с изображениями)

Видео: Программируемый светодиод: 6 шагов (с изображениями)
Видео: Инновационные светодиоды с фиолетовым кристаллом SunLike! 2024, Июль
Anonim
Программируемый светодиод
Программируемый светодиод

Вдохновленный различными светодиодами, мигающими светодиодами и подобными инструкциями, я хотел создать свою версию светодиода, управляемого микроконтроллером. Идея состоит в том, чтобы сделать последовательность мигания светодиода перепрограммируемой. Это перепрограммирование может быть выполнено с помощью света и тени, например вы можете использовать свой фонарик. Это мое первое руководство, любые комментарии или исправления приветствуются. Обновление 2008-08-12: Теперь в магазине Tinker Store есть комплект. Вот видео его перепрограммирования. Простите за качество.

Шаг 1. Как это работает

Светодиод используется как выход. В качестве входа я использовал LDR, резистор, зависящий от света. Этот LDR меняет свой резистор, когда он получает больше или меньше света. Затем резистор используется как аналоговый вход для АЦП микропроцессора (аналогово-цифровой преобразователь).

Контроллер имеет два режима работы: один для записи последовательности, другой для воспроизведения записанной последовательности. Как только контроллер замечает два изменения яркости в течение половины секунды (темный, яркий, темный или наоборот), он переключается в режим записи. В режиме перезаписи вход LDR измеряется несколько раз в секунду и сохраняется на микросхеме. Если память исчерпана, контроллер снова переключается в режим воспроизведения и начинает воспроизведение записанной последовательности. Поскольку память этого крошечного контроллера очень ограничена, 64 байта (да, байта!), Контроллер может записывать 400 бит. Этого места хватит на 10 секунд при 40 отсчетах в секунду.

Шаг 2: материалы и инструменты

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

Материалы - 2 резистора 1 кОм - 1 резистор LDR (светозависимый резистор), например M9960 - 1 слаботочный светодиод, 1,7 В, 2 мА - 1 x Atmel ATtiny13v, 1 КБ флэш-ОЗУ, 64 байта ОЗУ, 64 байта EEPROM, 0-4 МГц @ 1,8-5,5 В - 1 x CR2032, 3 В, 220 мАч Инструменты - паяльник - припаять провод - макет - программатор AVR - источник питания 5V - мультиметр Программное обеспечение - Eclipse - плагин CDT - WinAVRCosts в целом должны быть ниже 5 $ без инструментов. Я использовал ATtiny13v, потому что эта версия этого семейства контроллеров может работать при 1,8 В. Это позволяет использовать схему с очень маленькой батареей. Чтобы он работал очень долго, я решил использовать слаботочный светодиод, который достигает полной яркости уже при 2 мА.

Шаг 3: схемы

Схемы
Схемы

Некоторые комментарии к схеме. Вход сброса не подключен. Это не лучшая практика. Лучше было бы использовать резистор 10 кОм в качестве подтягивающего. Но у меня он отлично работает без резистора и экономит резистор. Чтобы схема была как можно проще, я использовал внутренний генератор. Это означает, что мы экономим кристалл и два небольших конденсатора. Внутренний генератор позволяет контроллеру работать на частоте 1,2 МГц, что более чем достаточно для наших целей. Если вы решите использовать другой источник питания, кроме 5 В, или использовать другие светодиоды, вам необходимо рассчитать резистор R1. Формула: R = (Питание V - LED V) / 0,002A = 1650 Ом (Питание = 5V, LED V = 1,7V). Используя два слаботочных светодиода вместо одного, формула выглядит так: R = (Питание V - 2 * LED V) / 0,002A = 800 Ом. Обратите внимание, что при выборе другого типа светодиода вам придется скорректировать расчет. Величина резистора R2 зависит от используемого LDR. У меня 1КОм работает. Вы можете использовать потенциометр, чтобы найти лучшее значение. Cicuit должен уметь обнаруживать изменения освещенности при нормальном дневном свете. Для экономии энергии 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 flash: w: flickled.hex: iВ приложении вы можете получить исходный код и скомпилированный шестнадцатеричный файл.

Шаг 6: пайка

Пайка
Пайка

Если ваша схема работает на макетной плате, вы можете ее припаять.

Это можно сделать на печатной плате (печатной плате cicuit), на прототипе платы или даже без платы. Я решил обойтись без него, так как схема состоит всего из нескольких компонентов. Если вы не знакомы с пайкой, я рекомендую вам сначала поискать руководство по пайке. Мои навыки пайки немного устарели, но я думаю, вы поняли идею. Надеюсь, вам понравилось. Алекс

Рекомендуемые: