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

Arduino:Примеры/FlashLedFlexiTimer2

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

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

Контакты:

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


Периодическое включение и выключение светодиода (для FlexiTimer2)[1]

Это скетч для библиотеки FlexiTimer2 (разновидность MsTimer2, позволяющая настраивать разрешение) и платы Arduino, который демонстрирует, как периодически включать и выключать светодиод на Arduino. Интервал – 0,5 секунды.

Код

  1. /*
  2.  
  3. Периодическое включение и выключение светодиода (для FlexiTimer2)
  4.  
  5. FlexiTimer2 – это библиотека для Arduino, упрощающая 
  6. использование timer2 и позволяющее настраивать разрешение.
  7. Она называется FlexiTimer2, потому что базируется на MsTimer2,
  8. но при этом дает больше гибкости («flexibility»).
  9.  
  10. О библиотеке MsTimer2 читайте тут:
  11. http://www.arduino.cc/playground/Main/MsTimer2
  12. О библиотеке FlexiTimer2 читайте тут:
  13. http://www.arduino.cc/playground/Main/FlexiTimer2
  14.  
  15. */
  16.  
  17. #include <FlexiTimer2.h>
  18.  
  19. // включаем/выключаем светодиод каждые 0,5 секунды:
  20.  
  21. #if ARDUINO >= 100
  22. const int led_pin = LED_BUILTIN;	  // переменная для контакта, 
  23. 	                             // подключенного к встроенному 
  24. 	                             // светодиоду 
  25. #else
  26. const int led_pin = 13;           // по умолчанию контактом для 
  27.                                   // светодиода является 13-ый контакт
  28. #endif
  29.  
  30. void flash()
  31. {
  32. static boolean output = HIGH;
  33.  
  34.   digitalWrite(led_pin, output);
  35.   output = !output;
  36. }
  37.  
  38. void setup()
  39. {
  40.   pinMode(led_pin, OUTPUT);
  41.  
  42.   FlexiTimer2::set(500, 1.0/1000, flash); // вызываем эту функцию каждые 500 миллисекунд
  43.   // FlexiTimer2::set(500, flash); // также поддерживается формат библиотеки MsTimer2
  44.   FlexiTimer2::start();
  45. }
  46.  
  47. void loop()
  48. {
  49. }

См.также

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

  1. github.com - FlashLed.pde