Оглавление:

Arduino Fireflies: 11 шагов (с изображениями)
Arduino Fireflies: 11 шагов (с изображениями)

Видео: Arduino Fireflies: 11 шагов (с изображениями)

Видео: Arduino Fireflies: 11 шагов (с изображениями)
Видео: 4й Видеоурок по Arduino Аналоговые входы 2024, Июль
Anonim
Image
Image
Что вам понадобится
Что вам понадобится

Летом в Пенсильвании я с нетерпением жду светлячков на заднем дворе. Недавно я научился программировать на Adruino, чтобы сделать этот простой проект. Это отличная программа для начала, и она достаточно проста для любого программиста, от новичка до эксперта, ее можно построить, изменить и развлечься всего за несколько минут. Давайте начнем.

Шаг 1. Что вам понадобится

Что вам понадобится
Что вам понадобится

Чтобы ваши ошибки мигали, вам понадобятся следующие компоненты:

  • Ардуино. Я начал с Nano, но подойдет любой микроконтроллер, совместимый с Arduino.
  • Желтые светодиоды, 5мм. Вы можете использовать до 6 штук.
  • Резисторы. Для ограничения тока вам понадобится один резистор на каждый светодиод. Я использовал 470 Ом, но все, что выше 150 Ом, должно подойти для защиты вашего микроконтроллера.
  • Макетная плата.
  • Перемычка.

Для завершения проекта вашего двора вам понадобятся:

  • Коробка для проекта с защитой от непогоды.
  • Аккумулятор 9 вольт с разъемом. (См. Примечания внизу этого раздела.)
  • Выключатель. (Я выбрал эти водонепроницаемые переключатели. Если вы не используете их снаружи, подойдет любой переключатель.)
  • Несколько ярдов проволоки для размещения светодиодов по всему саду. Я использовал около 10 футов кабеля Ethernet Cat5 на светодиод.
  • Небольшой макет или какая-нибудь перфокарта.
  • Всепогодный кабельный ввод, через который проходят провода светодиодов. (Вы можете опустить это, если не используете это и снаружи.)
  • Термоусадочная трубка для защиты ваших светодиодных жуков.
  • Зеленые полоски на липучке (например, липучки) для прикрепления светодиодных светлячков к растениям и столбам в вашем саду.
  • Штекерные разъемы для подключения компонентов к вашей небольшой макетной плате.

Инструменты:

  • Сверла для проектной коробки. (Используйте эту возможность, чтобы получить хороший шаг. Вы будете рады, что сделали это).
  • Пистолет для горячего клея.
  • Паяльник.
  • Поворотный инструмент (например, Dremel) для вырезания места в проектной коробке, если это необходимо.

Несколько замечаний здесь:

1. Аккумулятор был выбран для быстрого и легкого запуска. Постоянное использование 9-вольтовой батареи немного расточительно. Для продления срока службы лучше использовать 4-х батарейный держатель AA (однако вам понадобится большая коробка для проекта, в которую он поместится).

2. Если вы решили разобрать кабель Ethernet категории 5 для проводов, убедитесь, что это медная жила, и аккуратно оберните их вокруг ПВХ, чтобы держать их в порядке во время работы. Опять же, я использовал около 10 футов провода на светодиод. Если вы хотите распространить свет повсюду, обязательно используйте более длинные провода!

3. Наконец, все ссылки, которые я предоставил, являются простыми предложениями. Пожалуйста, прочтите всю эту Инструкцию, прежде чем строить или покупать что-либо, поскольку вы лучше поймете, как вы хотели бы действовать лично.

Шаг 2: Постройте схему

Постройте схему
Постройте схему
Постройте схему
Постройте схему
Постройте схему
Постройте схему

В этом проекте используются контакты широтно-импульсной модуляции на вашем Arduino. Микроконтроллер имеет 6 таких контактов, и вы можете использовать их столько, сколько захотите. Схема довольно проста. Подключите всю мощность от контактов широтно-импульсной модуляции (ШИМ) D3, D5, D6, D9, D10 и D11 к положительным концам светодиодов. Подключите отрицательные концы к резисторам, а затем к общей земле. (Резисторы могут располагаться перед светодиодом или за ним. Это не имеет значения, если только вы не хотите защитить себя от короткого замыкания при более высоких токах.) Я включил несколько схем, чтобы помочь с подключением. (Диаграммы созданы с помощью программного обеспечения для проектирования Fritzing.)

Шаг 3: Код

Image
Image

Если вы опытный программист, этот код покажется вам упрощенным. Это отличный код для начала обучения, поскольку он знакомит вас с использованием переменных, пин-режимов, функций и даже случайного генератора. Код не такой компактный, как может быть, поскольку я уверен, что того же эффекта можно добиться с помощью массивов и т. Д.

Комментарии к коду раскрывают логику каждого раздела. Весь код встроен сюда, и вы можете скачать скетч ниже.

/*

Этот скрипт мигает 6 светодиодами (желтыми, конечно) в случайном порядке с произвольными интервалами с использованием ШИМ. Каждый светодиод управляется своей собственной функцией. * / int led1 = 3; // Светодиод подключен к контакту 3 ШИМ и т. Д. Я использовал все 6 контактов ШИМ. int led2 = 5; int led3 = 6; int led4 = 9; int led5 = 10; int led6 = 11; long randnum; // randnum контролирует временной интервал между вспышками и длинным randbug; // randbug контролирует, какая ошибка загорится. void setup () {pinMode (led1, ВЫХОД); // Установка всех выводов ШИМ в качестве выходов. pinMode (led2, ВЫХОД); pinMode (led3, ВЫХОД); pinMode (led4, ВЫХОД); pinMode (led5, ВЫХОД); pinMode (led6, ВЫХОД); } недействительный цикл () {randbug = random (3, 12); // randbug случайным образом выбирает функцию для выполнения, // таким образом случайным образом выбирает ошибку, которая должна загореться. если (randbug == 3) {ошибка1 (); } если (randbug == 5) {ошибка2 (); } если (randbug == 6) {ошибка3 (); } если (randbug == 9) {bug4 (); } если (randbug == 10) {bug5 (); } если (randbug == 11) {bug6 (); }} / * * Все эти функции работают одинаково. «Для циклов» увеличивайте, а затем уменьшайте * выход этого вывода для управления яркостью светодиода. * 'randnum' - это случайный интервал времени от 10 до 3000 мс * и выбирает временной интервал между вспышками ошибок. * «задержка 10» предназначена только для эффекта затухания. * / void bug1 () {randnum = random (10, 3000); для (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led1, fadeValue); задержка (10); } задержка (randnum); } void bug2 () {randnum = random (10, 3000); для (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led2, fadeValue); задержка (10); } задержка (randnum); } void bug3 () {randnum = random (10, 3000); для (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led3, fadeValue); задержка (10); } задержка (randnum); } void bug4 () {randnum = random (10, 3000); для (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led4, fadeValue); задержка (10); } задержка (randnum); } void bug5 () {randnum = random (10, 3000); для (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led5, fadeValue); задержка (10); } задержка (randnum); } void bug6 () {randnum = random (10, 3000); для (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led6, fadeValue); задержка (10); } задержка (randnum); }

Шаг 4: Соберите коробку

Строительные жучки!
Строительные жучки!

После того, как вы установили код на Arduino и заставили светлячков работать так, как вам нравится, вы можете отправить их в сад; это означает коробку для проекта и небольшую термоусадку, чтобы Arduino и светодиоды оставались сухими. Давайте сделаем!

Шаг 5: Создание жучков

Строительные жучки!
Строительные жучки!
Строительные жучки!
Строительные жучки!
Строительные жучки!
Строительные жучки!
  • Обрежьте светодиоды примерно на 5 мм.
  • Зачистите и залудите концы проводов, которые вы используете, также примерно на 5 мм.
  • Наденьте термоусадочную трубку толщиной 1 мм на каждый конец провода.
  • Припаиваем светодиод к проводу. (На этом этапе вы должны выбрать, какой провод в вашей паре будет положительным, а какой - отрицательным. Я выбрал сплошной провод как положительный, а белый провод как отрицательный. Сохраняйте эту стратегию на протяжении всего проекта, чтобы избежать головной боли в дальнейшем!)
  • Полностью наденьте термоусадочную пленку на оголенный провод и выводы светодиода. Обведите их быстрым пламенем, чтобы они сжались до проводов.
  • Наденьте еще одну термоусадочную пленку на светодиод и провода с торчащим концом линзы светодиода и расплавьте его на месте.
  • Наденьте на провод несколько кусков термоусадочной пленки по всей длине и плавите через каждые несколько футов, чтобы проволока оставалась аккуратной.

Шаг 6: Подготовьте коробку проекта

Подготовьте коробку проекта
Подготовьте коробку проекта
Подготовьте коробку проекта
Подготовьте коробку проекта
  • Используйте вращающийся инструмент с насадкой для шлифовального барабана, чтобы очистить от ненужного пластика в коробке для проекта. (Будьте осторожны, чтобы не отрезать винтовые крепления, которые могут понадобиться для сборки коробки.)
  • Решите, где вы хотите, чтобы ваш переключатель был и светодиоды выходили. Я предлагаю стороны, но используйте то, что вам подходит.
  • Используйте сверло подходящего размера, чтобы проделать отверстия для кабельного сальника и переключателя.

Примечание. На фотографии выше вы увидите, что я сделал «фиктивный кабель». Это связка из 6 пар проводов, которые я использовал для светодиодов с термоусадкой, чтобы соединить их вместе. Я использовал его, чтобы убедиться, что кабельный ввод будет хорошо вписываться в фактическую кабельную связку, а также для проверки водонепроницаемости коробки после того, как переключатель, кабельный ввод и крышка были надеты. (После того, как он был погружен на 24 часа в глубину 6 дюймов, внутри было очень мало влаги. Я с удовольствием назвал бы этот ящик «погодоустойчивым».)

Шаг 7: Принесите силу

Принеси силу!
Принеси силу!
Принеси силу!
Принеси силу!
  • Определите, сколько батареи и провода переключателя вам понадобится, чтобы добраться до Arduino, примерно поместив все три компонента в коробку проекта. Обрезать провода переключателя и разъема аккумулятора 9 В. Зачистите и залудите концы. Вставьте термоусадочную пленку на место для следующего шага.
  • Отрежьте от полосы два штыря заглушки (но держите их вместе).
  • Припаяйте красный вывод разъема батареи 9 В к одному концу переключателя. Припаяйте другой конец переключателя к штырю вилки. Припаяйте черный вывод батареи к другому штырю вилки.
  • Как показано на схеме выше, контакты заголовка войдут в макетную плату для питания Nano через VIN (положительный) и GND (отрицательный). Штырь VIN может выдерживать напряжение от 7 до 12 вольт. Если вы планируете питать Arduino другим способом, кроме батареи 9 В, используйте другой вывод питания.

Шаг 8: При необходимости измените Nano

При необходимости измените Nano
При необходимости измените Nano

Поскольку коробка моего проекта была довольно мелкой, мне нужно было удалить контакты заголовка ICSP, чтобы она соответствовала. Эти контакты являются второстепенным интерфейсом вашего Arduino. Их удаление не повредит вашему Nano, так как вы всегда можете загрузить скрипты через USB-порт.

Примечание. Если ваш Nano требует пайки штырей разъема, просто опустите эти штыри при сборке Arduino.

Шаг 9: Подключите внутреннюю часть

Image
Image
Проведите внутри
Проведите внутри
Проведите внутри
Проведите внутри
  • Присоедините порт кабельного сальника к проектной коробке в просверленном вами отверстии. Если вы не знаете, как использовать кабельный ввод, то в этом видео, которое я нашел на YouTube, показана его сборка. (перемотайте вперед до 0:57.) У вас может быть резиновая шайба. Он проходит между проектной коробкой и внешней гайкой кабельного ввода.
  • Соберите свободные концы светодиодных проводов. На этот раз обрежьте их до одинаковой длины, зачистите и залудите концы. Пропустите концы через крышку кабельного ввода и с помощью термоусадки соедините концы вместе, оставив длину, достаточную для доступа к макетной плате внутри коробки.
  • Пропустите пучок проводов через порт кабельного сальника в проектную коробку и поверните колпачок сальника, чтобы зафиксировать провода на месте, предпочтительно вокруг термоусадки, которую вы использовали для их соединения.
  • Отделите заземляющие провода от положительных (помня, какие из них вы выбрали ранее). Спаяйте вместе все заземляющие провода в одну общую землю. Прикрепите короткий провод из этого пучка и завершите его 1 штекером с наружной резьбой. Используйте термоусадку, чтобы защитить оголенные паяные соединения.
  • Припаяйте штекерные разъемы на концах каждого положительного провода. Опять же, используйте термоусадку.
  • Вставьте штыревые разъемы положительного конца в макетную плату, чтобы подключить их к контактам PWM на Arduino.
  • Вставьте общую землю в макет так, чтобы она проходила через токоограничивающий резистор, а затем к GND на Arduino.
  • Вставьте аккумулятор и вставьте выключатель в отверстие в коробке, которую вы просверлили ранее. Установите резиновую шайбу между коробкой для проекта и резьбовой крышкой. Подключите провода питания к макетной плате.
  • Защелкните или привинтите крышку к коробке. Готово!

Примечание. Обратите внимание, что на схемах и на этапах разработки я использовал по одному токоограничивающему резистору на каждый светодиод. Обычно каждый светодиод должен иметь собственный резистор, так как обычно одновременно загорается более одного светодиода. Код не позволяет одновременно гореть более одного светодиода, поэтому для защиты Arduino можно использовать только один резистор. Это также экономит место на небольшой макетной плате или время на пайку каждого светодиода с линейным резистором. Тем не менее… ВНИМАНИЕ !!! Если вы планируете изменить код таким образом, чтобы одновременно светилось более одного светодиода, вам потребуются отдельные резисторы для каждого светодиода.

Шаг 10: Используйте это

Используй это
Используй это

Используйте липучки или мазки горячего клея, чтобы прикрепить светодиоды к растениям, заборам, розовым фламинго или чему-либо еще в вашем дворе. Используйте их внутри, заправляя в винные стеллажи, за занавески или даже подвешивая провода к потолку для создания трехмерного эффекта парения в темноте! Это было бы отличным дополнением для вечеринок, свадеб, фильмов и фотографий.

Шаг 11. Дальше…

Как было сказано ранее, это ранняя версия этого проекта, но она полна огромного потенциала! Включите больше светодиодов, подключив регистр сдвига (см. Эту инструкцию от JColvin91, чтобы узнать, как). Добавьте датчик освещенности, солнечное зарядное устройство и таймер для функции «установил и забыл»! Поиграйте с кодом, чтобы добавить свой собственный недостаток к ошибкам. Делитесь тем, что вы делаете, и наслаждайтесь !!

ОБНОВЛЕНИЕ: за последние две недели после публикации этой инструкции многие участники предложили блестящие улучшения в коде, оборудовании и выполнении этого проекта. Я настоятельно рекомендую, если вы планируете создать это, вы прочитаете комментарии и ответы, чтобы узнать, как делать эти молниеносные ошибки способами, которые я не планировал. В духе создания открытого исходного кода я приветствую все идеи, которые помогают превратить этот проект в нечто большее, чем я считал возможным… и я благодарю всех, кто сделал это возможным.

Идти. Делать!!!

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