Arduino:Примеры/EsploraLedShow

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Световое шоу при помощи 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);
}

См.также

  1. readJoystickX()
  2. readJoystickY()
  3. readSlider()
  4. writeRGB()

Внешние ссылки