Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/BasicAnimations

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

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

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


Базовые анимации[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. }

См.также

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

  1. github.com - BasicAnimations.pde