Последовательное включение светодиодов

На этом занятии мы будем включать последовательно шкалу из десятка светодиодов. Научившись управлять несколькими светодиодами на предыдущих занятиях, разобраться с последовательным включением светодиодов на Ардуино не составит труда. Также мы рассмотрим уже знакомый нам цикл for, который служит для повторения операторов в конструкции и служит своего рода циклом в цикле loop.

Последовательное включение светодиодов на Ардуино

Для данной задачи можно использовать простейший скетч из нашего первого занятия — «Что такое Ардуино» В скетче можно прописать последовательное включение всех светодиодов с заданной скоростью и дальнейшее их последовательное выключение. Но можно и воспользоваться циклом for, который значительно упростит нашу задачу. Во первых, с помощью данного цикла мы можем задать количество светодиодов.

byte i;                // задаем переменную для цифровых выходов
byte LedMax = 13; // максимальное количество выходов (диодов)

void setup() {

  // задаем пины со 2 по 13, как выходы (OUTPUT)
 
for(i=2; i<LedMax; i++) {
pinMode(i, OUTPUT);
}

}

Вместо прописывания в скетче всех пинов с 2 по 13, как выходы, мы воспользовались одним циклом for. Сразу отметим, что использование всех выходов на Ардуино для последовательного включения светодиодов или подключения светодиодной шкалы не рационально. На практике для этого используют сдвиговый регистр 74hc165 или, еще более простой вариант драйвер светодиодов М5450В7 для микроконтроллера Ардуино.

Подключение светодиодной шкалы к Ардуино

Для занятия нам понадобятся следующие детали:

  • Плата Arduino Uno;
  • Макетная плата;
  • 11 светодиодов;
  • 11 резисторов на 220 Ом;
  • Светодиодная шкала;
  • Провода «папка-папка» и «папка-мамка».
Схема подключения светодиодной шкалы к Ардуино
Схема подключения светодиодной шкалы к Ардуино

Соберите схему из светодиодов на макетной плате или подключите к Ардуино светодиодную шкалу, как на рисунке выше. Обратите внимание, что в светодиодной шкале нет встроенных резисторов, поэтому не забывайте их добавить в схему, чтобы диоды не сгорели. После сборки схемы скопируйте или скачайте скетч последовательного включения светодиодов на Arduino UNO — shkala_led.ino.

byte i;                // задаем переменную для цифровых выходов
byte LedMax = 13; // максимальное количество выходов (диодов)

void setup() {

  // задаем пины со 2 по 13, как выходы (OUTPUT)
 
for(i=2; i<LedMax; i++) {
pinMode(i, OUTPUT);
}

}

void loop() {
  
 // последовательно зажигаем светодиоды с 2 по 13 выход
 
for(i=2; i<LedMax; i++) {
digitalWrite(i, HIGH);
delay(100);
}

delay(1000); // ставим паузу в 1 секунду

 // последовательно гасим светодиоды с 13 по 2 выход

for(i=LedMax; i>2; i--) {
digitalWrite(i, LOW);
delay(100);
}

delay(1000); // ставим паузу в 1 секунду

}

Пояснения к коду:

  1. Цикл for повторяется до тех пор, пока верно условие i>2 или i<LedMax;
  2. Переменная типа byte может хранить 8-битное беззнаковое число от 0 до 255.

На что обратить внимание:

  1. Цикл loop в скетче содержит в себе два мини-цикла for, работающих попеременно;
  2. Конструкция цикла for должна располагаться между фигурными скобками { }.

Задание для самостоятельного выполнения:

  1. Измените скорость последовательного включения и выключения светодиодов.
  2. Замените цифровой выход «2» в скетче на переменную LedMin.

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5,00 out of 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *