Arduino. Гирлянда из 5 светодиодов

09.07.2016 12:54

В прошлой статье мы проводили эмуляцию работы 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 вы всегда можете без проблем приобрести на Али. Выбирайте!

 

 

Читайте также