Урок №4 Работа с RGB светодиодами в Ардуино

Раздел Дополнительное образование
Класс 7 класс
Тип Конспекты
Автор
Дата
Формат docx
Изображения Нет
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

5 урок Ардуино

В этом уроке мы рассмотрим работу с RGB-светодиодом

RGB-светодиод на самом деле это три светодиода разного цвета в одном корпусе.
Включая разные светодиоды с различной яркостью можно комбинировать и получать разные цвета. Для Ardunio, где количество градаций яркости равно 256 вы получите 256^3=16581375 возможных цветов. Реально их, конечно, будет меньше.
Светодиод, который мы будем использоваться общим катодом. Т.е. все три светодиода конструктивно соединены катодами к одному выводу. Этот вывод мы подсоединим к выводу GND. Остальные выводы, через ограничительные резисторы, надо подсоединить к выводам ШИМ. Я использовал выводы 9-11.Таким образом можно будет управлять каждым светодиодом отдельно. В первом скетче показано, как включить каждый светодиод отдельно.

//RGB LED - test

//pin connections

int red = 9;

int green = 10;

int blue = 11;

void setup(){

pinMode(red, OUTPUT);

pinMode(blue, OUTPUT);

pinMode(green, OUTPUT);

}

void loop(){

//включение/выключение красного светодиод

digitalWrite(red, HIGH);

delay(500);

digitalWrite(red, LOW);

delay(500);

//включение/выключение зеленого светодиода

digitalWrite(green, HIGH);

delay(500);

digitalWrite(green, LOW);

delay(500);

//включение/выключение синего светодиода

digitalWrite(blue, HIGH);

delay(500);

digitalWrite(blue, LOW);

delay(500);

}

В следующем примере используются команды analogWrite() и random(), чтобы получать различные случайные значения яркости для светодиодов. Вы увидите разные цвета, меняющиеся случайным образом.

//RGB LED - random colors

//pin connections

int red = 9;

int green = 10;

int blue = 11;

void setup(){

pinMode(red, OUTPUT);

pinMode(blue, OUTPUT);

pinMode(green, OUTPUT);

}

void loop(){

//pick a random color

analogWrite(red, random(256));

analogWrite(blue, random(256));

analogWrite(green, random(256));

delay(1000);//wait one second

}

Random(256)-возвращает случайное число в диапазоне от 0 до 255.
В прикрепленном файле скетч, который продемонстрирует плавные переходы цветов от красного к зеленому, затем к синему, красному, зеленому и т.д. Можно упростить код, написав собственную вспомогательную функцию, которая будет плавно менять один цвет на другой.
Давайте рассмотрим определение функции по частям. Функция называется fader и имеет два аргумента. Каждый аргумент отделяется запятой и имеет тип объявленный в первой строке определения функции: void fader (int color1, int color2). Вы видите, что оба аргумента объявлены как int, и им присвоены имена color1 и color2 в качестве условных переменных для определения функции. Void означает, что функция не возвращает никаких значений, она просто выполняет команды. Если надо было бы написать функцию, которая возвращала результат умножения это выглядело бы так :

int multiplier(int number1, int number2){

int product = number1*number2;

return product;

}

Обратите внимание, как мы объявили Тип int в качестве типа возвращаемого значения вместо
void.
Внутри функции идут команды, которые вы уже использовали в предыдущем скетче, только номера выводов заменили на color1 и color2. Вызывается функция fader, ее аргументы вычисляются как color1 = red и color2 = green.



© 2010-2022