Вопрос по таймеру

Leopoll
Offline
Зарегистрирован: 16.06.2016

Зашел в тупик слегка.

Задача простая - каждые 8 секунд открывать клапан на определенное время ( с точностью до 0,1 секунды) от нуля (закрыт постоянно) до полных 8 секунд (открыть постоянно). Организовать с помощью таймера, чтобы не мешать основной программе. Поскольку уже использую в проекте Blynk, то думал использовать встроенный таймер этой библиотеки. 

#include <BlynkSimpleShieldEsp8266.h>
BlynkTimer timer;
int Klapan_shim0 = 50; // Это значение меняется пользователем в процессе от 0 до 100
int timer_count = 0;
void setup() {
timer.setInterval(100L, klapan);
}
pinMode ( 25, OUTPUT ); // Пин клапана.
void klapan(){
  timer_count ++;
  if ( timer_count == 80) {
    timer_count = 0;
    digitalWrite ( 25, HIGH);  
  else if ( timer_count  == round (Klapan_shim0 * 80 / 100) ){
  digitalWrite ( 25, LOW);   
  }
}
void loop() {
}

Но во-первых походу в Blynk период срабатывания таймера около 0,5 сек. Изменить это видимо нельзя. Так что строка

timer.setInterval(100L, klapan);

не работает как надо.

Выходит специально из-за этого придется добавлять TimеrOne?

Во-вторых, может есть способ лучше? Ведь по сути мне нужно вызвать только две фунции - открытие и закрытие, причем каждая будет вызываться с одним и тем же интервалом 8 секунд, вот только паузу между ними надо будет регулировать. 

 

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

https://github.com/DetSimen/Arduino-

спрашывай, если чо.

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017
mobistrike
mobistrike аватар
Offline
Зарегистрирован: 19.08.2016

И никаких вопросов.

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

mobistrike пишет:

И никаких вопросов.

клапан, таки открывается и закрывается без вопросов. О_О