Реклама

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

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

Примечание: это учебник для начинающих, и мы, безусловно, победили? не открывать новые пути - это? s? просто устройство для обучения концепции использования Массивы и Для петель иметь дело с большое количество светодиодов (или другие устройства вывода).

Если у вас есть? Уже сейчас самое время следовать за другими статьями серии:

  • Что такое Arduino и что с этим можно сделать Что такое Arduino и что с этим можно сделать?
    instagram viewer
    Arduino - это замечательное небольшое электронное устройство, но если вы никогда не использовали его раньше, то что же это такое и что вы можете сделать с ним? Прочитайте больше
    ?
  • Что такое стартовый комплект Arduino и что в нем содержится? Что входит в стартовый комплект Arduino? [MakeUseOf Объясняет]Ранее я представил оборудование Arduino с открытым исходным кодом здесь, в MakeUseOf, но вам понадобится нечто большее, чем просто Arduino, чтобы что-то из него построить и начать работу. Arduino "стартовые комплекты" ... Прочитайте больше
  • Более крутые компоненты для покупки с вашим стартовым комплектом 8 более интересных компонентов для ваших проектов ArduinoИтак, вы думаете о приобретении стартового комплекта Arduino, но хотите знать, хватит ли каких-нибудь базовых светодиодов и резисторов, чтобы занять вас на выходные? Возможно нет. Вот еще 8 ... Прочитайте больше
  • Начало работы с вашим стартовым комплектом Arduino? Установка драйверов и настройка платы и порта Начало работы с вашим Arduino Starter Kit - Установка драйверов и настройка платы и портаИтак, вы купили себе стартовый комплект Arduino и, возможно, некоторые другие случайные классные компоненты - что теперь? Как вы на самом деле начинаете программировать эту штуку Arduino? Как вы это настроили ... Прочитайте больше
  • Fritzing, бесплатный инструмент для рисования принципиальных схем Fritzing - лучший инструмент для набросков электронных проектов [кросс-платформенный]Несмотря на то, что Fritzing звучит как алкопоп, на самом деле это невероятное количество свободного программного обеспечения, которое вы можете использовать для создания принципиальные схемы и компоненты для использования с быстродействующими макетными платами, такими как фантастический открытый код Arduino ... Прочитайте больше
  • Пристальный взгляд на структуру приложения Arduino и пример программы Blink Первые шаги с Arduino: пристальный взгляд на печатную плату и структуру программыВ прошлый раз я оставил вас, настроив Arduino для работы с Mac или Windows, и загрузив простое тестовое приложение, которое мигало встроенным светодиодом. Сегодня я собираюсь объяснить код ... Прочитайте больше

Для этого проекта вы? понадобится хотя бы 8 или 9 светодиодов в красном или зеленом цвете, резистор для каждого из них макетировать и некоторые провода для подключения. Стартовый комплект от Ooomlout, который я недавно приобрел сам и изображен в этом уроке, предлагает отличное соотношение цены и качества и имеет больше светодиодов и резисторов, чем вы? Вам понадобится, также как и аккуратный макет и чехол Arduino, чтобы держать вещи в порядке.

Вот? И последнее:

ардуино рождественские огни

И видео об этом в действии.

Вот? Вид на проводку от Fritzing. Это? очень простой - просто подключите положительный вывод светодиодов к контактам 2-> независимо (до контакта 13) и подключите отрицательные ножки к земле, встроенные в резистор. Значение я? мы использовали здесь 560 Ом. Тот? Это для проводки.

ардуино рождественские огни

Что касается программного обеспечения, подумайте о том, как вы можете записать все эти светодиоды в коде. Вы можете сделать это так:

int led1 = 2; // первый светодиод на контакте 2 int led2 = 3; // второй на контакте 3. // etc etc void loop () {digitalWrite (led1, HIGH); задержка (100); digitalWrite (led1, LOW); задержка (100); digitalWrite (led2, HIGH); // и т.д. }

Вы должны увидеть, что с 9 светодиодами это быстро утомит. Ответ лежит с Массивычто если сможешь? не помню наш Программирование 101 об основных типах данных Основы компьютерного программирования 101 - Переменные и типы данныхПознакомившись и немного поговорив об объектно-ориентированном программировании и о том, где его тезка приходит, я думал, что пришло время пройти через абсолютные основы программирования в неязыковой путь. Это... Прочитайте больше - это в основном просто списки.

Синтаксис выглядит следующим образом (поместите это как первую строку в вашем коде):

int leds [] = {2,3,4,5,6,7,8,9,10};

Квадратные скобки указывают, что? Светодиоды? переменная будет массив. Фигурные скобки заключают список номеров выводов, которые будет содержать наш массив.

Теперь, чтобы использовать массив, нам нужно обратиться к нему по номеру индекса. Индекс начинается с 0и поэтому всегда будет на 1 меньше, чем общее количество вещей внутри него (так что с 9 элементами последний будет иметь индекс 8).

Вы пишете это так:

светодиоды [0]

Который в нашем случае выбрал бы число 2, потому что это? с чем? с индексом 0 в нашем массиве.

Следуя до сих пор? Отлично. Что одних разве? Для нас этого достаточно - нам также нужен способ перебора каждого элемента нашего массива светодиодов. Для этого мы будем использовать для цикла. Синтаксис для этого так:

for (начальная переменная; условие, при котором мы повторяем снова; менять на переменную каждую итерацию)

Например:

для (int i = 0; г <9; я ++)

Который говорит

  • начать этот цикл с переменной, я, который имеет значение нуль
  • продолжать цикл только пока я менее чем 9? (ит.: 0,1,2,3,4,5,6,7,8)
  • каждый раз, добавить 1 к я (i ++ - это короткий способ сказать, что i = i + 1)

Таким образом, в основном, цикл будет повторяться столько раз, сколько у нас светодиодов, и каждый раз так? С повторением у нас будет переменная, я, который мы можем использовать так, как нам нравится.

Мы? Я буду использовать эту структуру дважды, чтобы начать с. Оказавшись внутри функции настройки, все наши контакты переключаются в режим вывода, например так:

void setup () {for (int i = 0; i <9; i ++) {pinMode (leds [i], OUTPUT); } }

Ты видишь, что мы там сделали? Вместо того, чтобы писать 9 строк кода, чтобы объявить каждый отдельный вывод в качестве выходного, мы создаем цикл «для», который повторяется 9 раз, каждый раз устанавливая другой вывод.

Теперь вы должны увидеть, как мы можем сделать то же самое в главном цикле программы, чтобы последовательно включить каждый светодиод:

void loop () {for (int i = 0; i <9; i ++) {digitalWrite (leds [i], HIGH); задержка (100); digitalWrite (светодиоды [i], LOW); } }

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

Хорошо, теперь у нас довольно скучная последовательность освещения. Позволять? с другой программой. Просто ради интереса, давай? сделать это совершенно случайно. Замените код основного цикла следующим:

void loop () { int randomLed = random (0,8); digitalWrite (leds [randomLed], HIGH); задержка (50); randomLed = случайный (0,8); digitalWrite (светодиоды [randomLed], LOW); }

Вместо использования цикла «для» для итерации каждого светодиода мы выбираем случайное число от 0 до 9 и включаем его.

Я собираюсь оставить его там на сегодня, так как теперь вы должны иметь достаточно знаний, чтобы программировать все новые последовательности и экспериментировать с циклами. Чтобы доказать, насколько легко все это, я попросил свою жену подумать о последовательности, которую она? хотел бы посмотреть, а потом получил?ей запрограммировать себя, учитывая только код и уроки? до сих пор. Она придумала это, так что посмотрите, сможете ли вы подобрать это для домашней работы!

Вопросы, предложения, проблемы - пишите в комментариях.

Джеймс имеет степень бакалавра в области искусственного интеллекта и сертифицирован CompTIA A + и Network +. Он является ведущим разработчиком MakeUseOf и проводит свое свободное время за игрой в VR-пейнтбол и настольные игры. Он строит компьютеры с детства.