3 простых праздничных подарка: 4 шага
3 простых праздничных подарка: 4 шага

Видео: 3 простых праздничных подарка: 4 шага

Видео: 3 простых праздничных подарка: 4 шага
Видео: Подарки СВОИМИ РУКАМИ на День Рождения. 4 DIY ИДЕИ подарков для парня, подруги и мамы. 2025, Январь
Anonim

Каждый год наступают праздники, и я не могу не подарить своим друзьям и семье. Люди всегда говорят, что лучше сделать подарок самому, чем купить его в магазине, поэтому в этом году я так и сделал. Первый отображает имя или базовое изображение, когда им машут в воздухе, второй плавно исчезает между двумя белыми светодиодами (у него также есть английская булавка, чтобы прикрепить его к одежде или сумочке), а третий - своего рода свет настроения, прокручивая плавно между цветами. Все они стоят менее 15 долларов и их легко собрать менее чем за час. Вы также можете подарить эти инструкции и детали тем, кто интересуется электроникой.

Примечание: предполагается базовый уровень пайки. Однако, в отличие от моих предыдущих инструкций, я остановлюсь на том, как программировать AVR. Я очень надеюсь, что это поможет людям, которые пытаются начать заниматься электроникой. Я помню, когда был там, и буду рад ответить на любые ваши вопросы. Помните, что нет глупых вопросов! Я оставил вам возможность определить, как вы будете размещать свою печатную плату, в надежде, что вы придумаете новый способ отображения простых схем, которые я нарисовал. Пожалуйста, опубликуйте фотографии, как только вы закончите, я не могу дождаться, чтобы увидеть, что вы придумали! Детали для всех проектов N = количество проектов x N ATTiny45 (www.digikey.com) x N 8-контактный разъем DIP (RadioShack) x 1 большая плата Perf (я получил свою в RadioShack) x N 3-вольтовая батарея и держатель (RadioShack) x1 программатор (я использую это, и прилагаемый make-файл будет настроен для использования этого) x2 резистора N, один 10 Ом и один 10кОм (RadioShack) Вот фотографии трех завершенных проектов:

Шаг 1. Имя Flasher

Другие детали x5 РАССЕЯННЫЕ 3-миллиметровые светодиоды (RadioShack) В этом проекте используется постоянство зрения для отображения изображения или текста при быстром перемещении. Лучше работает в темноте. С AVR мы переключаемся между светодиодами быстрее, чем может видеть глаз, мы можем создать изображение в воздухе с очень небольшим количеством компонентов. Код: (Загрузите файл.zip внизу страницы для кода, make-файла и т. Д. (Этот код не содержит подробных комментариев, которые есть в этом коде, но если этот код не работает, попробуйте тот, который находится в zip-файл)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // Для тех из вас, кто никогда не читал C до того, как двойная косая черта указывает на комментарий. Это устанавливает контакты avr как выходной char x = 10; // x используется для установки времени задержки. Увеличение значения дает более медленное переключение между пикселями, уменьшение - более низкое while (1) // Пока (условие истинно); {Сделайте это} (Истина в C - 1) {PORTB = ~ 0b00010001; // Моего друга зовут Зои, поэтому я нарисовал символы на миллиметровой бумаге, а затем ввел их в PORTB. Первые три нуля не имеют значения, потому что подключено только пять светодиодов. Единица в одном из оставшихся пяти пробелов означает, что светодиод горит, ноль - не горит. _delay_ms (x); // задержка в миллисекундах PORTB = ~ 0b00010011; _delay_ms (x); PORTB = ~ 0b00010101; _delay_ms (x); PORTB = ~ 0b00011001; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x); dispClear (); // Пробел между символами _delay_ms (x); PORTB = ~ 0b00001110; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x * 3); PORTB = ~ 0b00001110; _delay_ms (x); dispClear (); _delay_ms (x); PORTB = ~ 0b00011111; _delay_ms (x); PORTB = ~ 0b00010101; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x); dispClear (); _delay_ms (x * 5); // Слово сделано, поэтому для ясности у меня больше места между словами}} Теперь следуйте инструкциям на странице 4, чтобы скомпилировать этот код и отправить его на свой AVR.

Шаг 2: кошелек свет

Другие части x2 LED's NON DIFFUSED (RadioShack) Этот проект плавно затухает между двумя светодиодами. Моя мама хотела, чтобы в ее сумочке было что-нибудь, чтобы ее пчелу можно было увидеть ночью. Мне показалось, что мигающий велосипедный фонарь привлечет слишком много внимания, поэтому я сделал это. Он использует ШИМ (широтно-импульсную модуляцию) для создания эффекта затемнения и повышения яркости. На самом деле происходит то, что светодиод мигает быстрее, чем может видеть глаз, с разными интервалами, чтобы имитировать изменение. Вы можете увидеть это более отчетливо, если взмахнете им перед лицом, как если бы вы это делали с помощью Name Flasher. Код можно скачать в конце этой страницы. См. Стр. 4 о том, как скомпилировать для вашего AVR. Вместо того, чтобы комментировать код здесь, я кратко объясню концепцию. ШИМ генерируется таймером. Каждый такт таймер отсчитывает единицу. Когда он достигает определенного значения (в данном случае OCR1B), он изменяет состояние вывода (в данном случае OC1B). Чтобы светодиоды «выключились», я подключил другой к [ПРОТИВОПОЛОЖНОМУ] OC1B (это то, что означает полоса наверху). Затем мы используем x, чтобы увеличивать и уменьшать время, в течение которого светодиоды должны гореть.

Шаг 3: Цветовой скроллер

Other Partsx1 RGB LED (лучше рассеянный) (RadioShack) Для меня это классика. Меня всегда привлекал такой свет, и я нахожу его очень успокаивающим, поэтому, естественно, я захотел сделать такой. Кроме того, их заметность в обществе дает им настоящий ВАУ-фактор. "Ты СДЕЛАЛ это ?!" Код почти такой же, и, на мой взгляд, его легче читать. Вы можете скачать внизу. На этот раз мы предоставляем вывод ШИМ для каждого заземляющего контакта на светодиодах RGB. Таким образом мы шлифуем чип. Вольт можно измерить как разницу между двумя точками. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Последний пример - это то, что мы делаем, когда заземляем через микросхему. Когда на обеих сторонах есть три вольта, то, скажем, недостаточно вольт для питания светодиода. Итак, чтобы переходить от одного цвета к другому, мы выбрали цвет и другой цвет. Установите один равным x, а другой равным 255-x или ОБРАТНОМУ x. Как мы делали в предыдущем проекте. Теперь перейдите к шагу 4, чтобы запрограммировать.

Шаг 4: программирование

Сначала загрузите и установите Emacs, avr-gcc и Avrdude, а также любые зависимости, которые у них могут быть. В Arch linux я сделал это с помощью: sudo pacman -Sy emacs avrdude

Пришло время подключить программатор к avr. Подключите контакты 6-контактного программатора ISP (рисунок ниже) к соответствующим контактам на вашем AVR (техническое описание, стр. 2) (я сделал это на макетной плате). Теперь подключите программатор к компьютеру и ОЧЕНЬ БЫСТРО коснитесь верхней части AVR. Если он горячий, УДАЛИТЕ ПРОГРАММУ С КОМПЬЮТЕРА СРАЗУ проверьте соединения и попробуйте снова (питание и заземление наоборот?). Если он не горячий, откройте emacs и нажмите Ctl-x Ctl-f, чтобы найти файл.c. Откройте его, затем нажмите Meta (обычно Alt) -x и введите compile. Дважды нажмите Enter, и, если вам повезет, на вашем AVR должен работать ваш код! Спасибо за прочтение! Надеюсь, вам понравилось, и вы кое-что узнали. Пожалуйста, не стесняйтесь задавать вопросы и не забывайте размещать фотографии того, что у вас получается. С праздником и не забываем голосовать!