Arduino:Примеры/CircularLightBuffer
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Анимированный «значок загрузки» из светодиодов [1]
Это скетч для библиотеки TLC5940 и платы Arduino, который демонстрирует, как при помощи чипа TLC5940 сделать на светодиодах анимацию «значка загрузки». Для этого светодиоды понадобится выставить в круг.
Код
/*
Анимированный «значок загрузки» из светодиодов.
Если вы как-то умудрились сделать круг из светодиодов,
обязательно вышлите фотографию! Этот скетч считывает
аналоговые данные с 0-ого аналогового контакта и добавляет
к нему значение, считанное с последнего светодиода. Если
итоговая сумма получается выше «4095», то светодиод выключается,
а если меньше, то итоговая сумма становится значением для LED 0.
Если заземлить 12-ый контакт, значение на LED 0 будет «0».
После этого скетч сдвигает все значения на светодиодах
на одну единицу вперед (в итоге LED 0 становится LED 1 и т.д.),
а LED 0 получает значение, которое было на последнем светодиоде.
Таким образом, если включен только один светодиод, он будет
бегать по кругу вечно.
Настройки оборудования смотрите в примере «Базовое использование».
Создан 2009-02-04 Алексом Леоне (Alex Leone; acleone ~AT~ gmail.com).
*/
#include "Tlc5940.h"
#include "tlc_shifts.h"
// какой аналоговый контакт будем использовать:
#define ANALOG_PIN 0
// какой контакт будет стирать значения на светодиодах:
#define CLEAR_PIN 12
// сколько секунд потребуется на полный круг по всем светодиодам:
#define SCOPE_PERIOD (2000 * NUM_TLCS)
#define LED_PERIOD SCOPE_PERIOD / (NUM_TLCS * 16)
void setup()
{
pinMode(CLEAR_PIN, INPUT);
digitalWrite(CLEAR_PIN, HIGH); // включаем подтягивающий резистор
Tlc.init();
}
void loop()
{
// функция tlc_shiftUp() возвращает значение с последнего светодиода:
uint16_t sum = tlc_shiftUp() + analogRead(ANALOG_PIN) * 4;
if (digitalRead(CLEAR_PIN) == LOW || sum > 4095)
sum = 0;
Tlc.set(0, sum);
Tlc.update();
delay(LED_PERIOD);
}
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
Категории:
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino