Arduino. Гирлянда из 5 светодиодов
В прошлой статье мы проводили эмуляцию работы Arduino в программе Proteus. Но гораздо интереснее прошить реальный Arduino и понаблюдать за результатами вживую, чем мы и займемся в этой статье. Думаю, многим уже надоел банальный моргалик на одном светодиоде. Поэтому, чтобы порадовать глаз и потешить себя, мы будем собирать гирлянду сразу на 5 светиках.
Многие, начав изучать вместе с нами микроконтроллеры AVR, думаю были удивлены тем, как же все сложно обстоит с программированием МК, даже если нам требуется написать простейшую программу, например ту же гирлянду на светодиодах. Действительно, разобраться с ходу там непросто. Приходиться читать, изучать, смотреть обучающее видео. В одной из моих статей посвященных МК AVR мы разбирали гирлянду на нескольких светодиодах на Attiny 2313. Теперь у вас, дорогие читатели, есть возможность сравнить процесс написания аналогичной программы в среде разработки Arduino и сравнить свои ощущения с теми, когда они писались и компилировались в Atmel Stidio 6. Скажу сразу, в среде разработки Ардуино все выглядит намного проще. Если вы разбирались с Atmel Stidio 6, то интерфейс Arduino IDE вам покажется уж минималистичным. Да, там есть все необходимое для того, чтобы написать и откомпилировать программу, но не более того. Возможности настройки программы под себя практически отсутствуют. Но минималистичный интерфейс имеет также и свои плюсы. Даже на средних двухъядерных компьютерах не наблюдается ни малейшего лага или подвисания, знакомого всем, кто имел дело с программой Atmel Studio 6.
Ну что, начнем?
Первым делом открываем нашу среду разработки, знакомую вам еще с прошлой статьи:
Больше всего нас интересуют вот эти два блока:
Void setup. Сюда мы вписываем конфигурацию выводов нашей Arduino. Строчка "put your setup code here, to run once" в дословном переводе означает "поместите ваш код установки здесь, чтобы запустить один раз".
Void loop. Здесь у нас будет программа, которая будет "крутиться" в бесконечном цикле. Строчка "put your main code here, to run repeatedly" в дословном переводе "поместите ваш основной код здесь, чтобы запустить повторно".
Ну что, погнали писать!
pinMode - режим вывода
Output - выход
Выводы Arduino под номерами 3,4,5,6,7 мы "заставляем" быть выходами. То есть они нам буду выдавать либо логический ноль (напряжения нет), либо единичку (напряжение есть).
Знак "//" и текст после него - это комментарии, которые удобны для нас, чтобы понять что вообще происходит в программе, но эти комментарии не играют никакой роли при компиляции, так как компилятором они просто игнорируются.
Далее продолжаем писать программку с первым эффектом моргания:
Ну здесь тоже все до боли просто.
DigitalWrite - записываем "цифру"
High - высокий
Low - низкий
Думаю, тут понятно все без слов. Выдаем на какой-либо вывод сигнал высокого или низкого уровня, то есть единичку или ноль.
Delay - задержка в миллисекундах.
Ну и потом добавляем еще 4 эффекта. Я покажу только конец программы, то есть 5-ый эффект, чтобы вы увидели, что цикл void loop должен закрываться фигурной скобочкой:
Ну а теперь дело за малым. Прошиваем нашу Arduino в реальности! Все это дело соберем вот по такой схемке:
Как мы видим светодиоды подключены у нас к тем самым цифровым выводам с 3 по 7. Для того чтобы реальные светодиоды у вас не сгорели от напряжения питания Ардуино Уно, которое составляет 5 вольт, я поставил на схеме токоограничительные резисторы, по отдельному на каждый светодиод.
Примерно вот так все это будет выглядеть в живом виде:
Теперь берем кабель, который шел (а может быть и не шел) в комплекте с Arduino:
Один конец подключаем к Arduino, а другой конец - к компьютеру:
Запускаем нашу программку Arduino 1.6.7 и выбираем программку, которую будем зашивать. В нашем случае мы зашиваем программку из 5 светодиодов:
Далее убеждаемся, что наша плата Arduino Uno подружилась с компьютером. Смотрим, что говорит нам комп:
Ага, Arduino/Genino Uno. Все ОК.
Теперь убеждаемся, что COM-порт у нас выбран правильно. Смотрим в "Диспетчере устройств", на какой COM-порт встала наша Arduino:
Проверяем теперь в Arduino. Если не так, то ставим галочку на нужный порт. У меня галочка тоже стоит на COM8:
На а далее дело за малым. Скетч---->Загрузка:
Идет загрузка... ну а потом в окне сообщений можно увидеть, что все прошло благополучно:
Но самый лучший индикатор, который говорит нам о том, что загрузка прошла удачно - это сама плата Arduino, с мерцающими светодиодами по нашей программке. После прошивки она сразу же начнет работать по программе, которую мы залили ;-)
Также наш коллега, Андрей Симаков, подготовил краткое видео о том, как провести эмуляцию этой схемы в Proteus, а также доказал, что и в железе она работает точно также ;-)
Прикрепляю файл нашего проекта, если кому будет интересно сделать то же самое, или на базе этой программы сделать новые световые эффекты. Кстати, Arduino Uno и другие виды Arduino вы всегда можете без проблем приобрести на Али. Выбирайте!
Читайте также