Arduino:Примеры/BasicAnimations
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Базовые анимации[1]
Это скетч для библиотеки TLC5940 и платы Arduino, который демонстрирует, как при помощи чипа TLC5940 показать на 16 светодиодах определенную анимацию. Анимацию можно сделать самостоятельно при помощи маленькой программы на Java, которая называется AnimationCreator и находится в одной папке с этим скетчем-примером.
Код
/*
Базовые анимации
Пишет слово «Arduino» при помощи эффекта персистенции.
Использует 16 светодиодов (0 – это низ, 15 – это верх).
Если чипов TLC больше одного, то анимация ниже работать не будет.
Я сгенерировал анимацию при помощи кода Java. Он называется
«AnimationCreator» и находится в одной папке с примером
«Базовые анимации» (BasicAnimations). Если запустить этот код,
он обработает все изображения, находящиеся в этой папке,
в файлы с расширением *.h, которые в дальнейшем можно использовать
для этого скетча Arduino.
Для наилучшего результата используйте изображения высотой
в 16 пикселей. Настройки оборудования смотрите в примере
«Базовое использование».
Создан 2009-02-03 Алексом Леоне (Alex Leone; acleone ~AT~ gmail.com)
*/
#include "Tlc5940.h"
#include "tlc_animations.h"
#include "ani_arduino.h"
void setup()
{
Tlc.init();
}
void loop()
{
// проверяем, не закончилось ли проигрывание анимации:
if (!tlc_onUpdateFinished) {
delay(100);
/*
void tlc_playAnimation(prog_uint8_t *animation, uint16_t frames,
uint16_t periodsPerFrame);
Проигрывает анимацию в фоновом режиме. Во время работы этой
функции не вызывайте tlc.update(). Проверку того, закончилась ли
анимация, можно выполнить при помощи !tlc_onUpdateFinished.
Аргумент periodsPerFrame – это периоды ШИМ (1,024 мс на кадр).
Тут можно указать и значение «0». В результате анимация будет
выполняться максимально быстро.
*/
tlc_playAnimation(ani_arduino, ANI_ARDUINO_FRAMES, 3);
// если вы хотите, чтобы код не запускал никаких операций,
// пока не закончится анимация, используйте:
// while (!tlc_onUpdateFinished);
}
}