Arduino:Примеры/EsploraLedShow
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Световое шоу при помощи RGB-светодиода на Esplora[1]
Этот пример показывает, как считывать значения с джойстика, а затем выводить их на Serial Monitor и генерировать с их помощью определенный цвет на RGB-светодиоде. У джойстика есть две оси – X и Y. Каждая из осей будет управлять определенным цветом RGB-светодиода: X-ось будет отвечать за красный, а Y-ось – за зеленый. За синий цвет будет отвечать линейный потенциометр на Esplora.
Необходимое оборудование
- Плата Arduino Esplora;
Цепь
Для этого примера нужна лишь Arduino Esplora.
Расположение на Esplora джойстика, слайдера и управляемого ими RGB-светодиода.
Код
RGB-светодиод состоит из трех светодиодов, отвечающих за три основных цвета – красный, зеленый и синий. Каждым из этих цветов можно отдельно управлять тремя функциями из библиотеки Esplora:
- writeRed(),
- writeGreen() и
- writeBlue().
Но если вы хотите управлять сразу тремя цветами, то для этого есть функция writeRGB().
Двигая джойстик и меняя положение линейного потенциометра, вы будете генерировать различные значения. Вывод этих значений будет осуществляться двумя способами – на Serial Monitor и через перемигивание RGB-светодиода.
/*
Световое шоу при помощи RGB-светодиода на Esplora
Заставляет RGB-светодиод перемигиваться разными цветами
в зависимости от положения джойстика и потенциометра-слайдера.
Создан 22 ноября 2012 Энрико Гуэли (Enrico Gueli, <enrico.gueli@gmail.com>),
модифицирован 22 декабря 2012 Томом Иго (Tom Igoe).
*/
#include <Esplora.h>
void setup() {
// инициализируем последовательную передачу данных:
Serial.begin(9600);
}
void loop() {
// считываем значения от джойстика и потенциометра в переменные:
int xAxis = Esplora.readJoystickX();
int yAxis = Esplora.readJoystickY();
int slider = Esplora.readSlider();
// конвертируем эти значения в уровень яркости:
byte red = map(xAxis, -512, 512, 0, 255);
byte green = map(yAxis, -512, 512, 0, 255);
byte blue = slider / 4;
// Выводим информацию об уровне яркости на Serial Monitor:
Serial.print(red);
Serial.print(' ');
Serial.print(green);
Serial.print(' ');
Serial.println(blue);
// передаем информацию об уровнях яркости RGB-светодиоду:
Esplora.writeRGB(red, green, blue);
// делаем задержку, чтобы светодиод не моргал:
delay(10);
}
См.также
- readJoystickX()
- readJoystickY()
- readSlider()
- writeRGB()