Arduino:Примеры/BasicAnimations

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

Перевод: Максим Кузьмин (Cubewriter) Перевел 364226 статей для сайта.</br>Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Базовые анимации[1]

Это скетч для библиотеки TLC5940 и платы Arduino, который демонстрирует, как при помощи чипа TLC5940 показать на 16 светодиодах определенную анимацию. Анимацию можно сделать самостоятельно при помощи маленькой программы на Java, которая называется AnimationCreator и находится в одной папке с этим скетчем-примером.

Код

 1 /*
 2 
 3 Базовые анимации
 4 
 5 Пишет слово «Arduino» при помощи эффекта персистенции.
 6 Использует 16 светодиодов (0 – это низ, 15 – это верх).
 7 
 8 Если чипов TLC больше одного, то анимация ниже работать не будет.
 9 
10 Я сгенерировал анимацию при помощи кода Java. Он называется
11 «AnimationCreator» и находится в одной папке с примером 
12 «Базовые анимации» (BasicAnimations). Если запустить этот код,
13 он обработает все изображения, находящиеся в этой папке,
14 в файлы с расширением *.h, которые в дальнейшем можно использовать
15 для этого скетча Arduino.
16 
17 Для наилучшего результата используйте изображения высотой 
18 в 16 пикселей. Настройки оборудования смотрите в примере 
19 «Базовое использование».
20 
21 Создан 2009-02-03 Алексом Леоне (Alex Leone; acleone ~AT~ gmail.com)
22 
23 */
24 
25 #include "Tlc5940.h"
26 #include "tlc_animations.h"
27 #include "ani_arduino.h"
28 
29 void setup()
30 {
31   Tlc.init();
32 }
33 
34 void loop()
35 {
36   // проверяем, не закончилось ли проигрывание анимации:
37   if (!tlc_onUpdateFinished) {
38 
39     delay(100);
40 
41     /*
42       
43       void tlc_playAnimation(prog_uint8_t *animation, uint16_t frames,
44                              uint16_t periodsPerFrame);
45       
46       Проигрывает анимацию в фоновом режиме. Во время работы этой 
47       функции не вызывайте tlc.update(). Проверку того, закончилась ли 
48       анимация, можно выполнить при помощи !tlc_onUpdateFinished.
49 
50       Аргумент periodsPerFrame – это периоды ШИМ (1,024 мс на кадр).
51       Тут можно указать и значение «0». В результате анимация будет 
52       выполняться максимально быстро.
53      
54     */
55 
56     tlc_playAnimation(ani_arduino, ANI_ARDUINO_FRAMES, 3);
57 
58 
59     // если вы хотите, чтобы код не запускал никаких операций, 
60     // пока не закончится анимация, используйте:
61     // while (!tlc_onUpdateFinished); 
62 
63   }
64 
65 }

См.также

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