
Светодиодная панель состоит из интегрированных в неё нескольких светодиодов. По двум сторонам панели выведены их контакты.

Светодиодная панель состоит из интегрированных в неё нескольких светодиодов. По двум сторонам панели выведены их контакты.

Выводы D3, D4, D5, D6, D7, D8, D9, D10, D11, D12 платы Arduino соединены с контактами светодиодной панели, как показано на схеме ниже:


Сейчас мы с вами напишем скетч для управления светодиодной панелью.
const int ledCount = 10; // количество светодиодов панели
// номера пинов
int ledPins[] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
void setup() {
// установка режима работы пинов
for (int i = 0; i < ledCount; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
for (int i = 0; i < ledCount; i++) {
barGraphDisplay(i);
}
}
void barGraphDisplay(int ledOn) {
for (int i = 0; i < ledCount; i++) {
if (i == ledOn) {
digitalWrite(ledPins[i], HIGH);
} else {
digitalWrite(ledPins[i], LOW);
}
}
delay(100);
}
Мы задали переменную как константу, которая будет равна количеству светодиодов панели:
const int ledCount = 10;
Затем мы определили массив, использующийся для хранения номеров пинов к которым подключена светодиодная панель.
int ledPins[] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
Для установки режима работы выводов платы Ардуино мы использовали цикл «for». Без него мы бы написали много строк кода, а используя цикл, количество строк сократилось до четырёх.
void setup() {
// установка режима работы пинов
for (int i = 0; i < ledCount; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
Теперь напишем функцию, которая будет зажигать один светодиод, заданный как параметр ledOn, а остальные светодиоды будут выключаться.
void barGraphDisplay(int ledOn) {
for (int i = 0; i < ledCount; i++) {
if (i == ledOn) {
digitalWrite(ledPins[i], HIGH);
} else {
digitalWrite(ledPins[i], LOW);
}
}
delay(100);
}
Почти всё, теперь мы можем управлять нашей светодиодной панелью, вызвав функцию barGraphDisplay в цикле loop():
void loop() {
for (int i = 0; i < ledCount; i++) {
barGraphDisplay(i);
}
}
Нажмите на кнопку «Компилировать» и проверьте скетч на наличие ошибок. Если все правильно, то можете загрузить скетч в микроконтроллер и увидеть результат.