Замена delay не в loop, поиском пользовался, мне не помогло(
- Войдите на сайт для отправки комментариев
Втр, 27/06/2017 - 23:30
Доброго времени суток. Помогите, пожалуйста решить проблему: как обойтись без delay. форумы перечитал, много чего пробовал но мне почему то это не помогало и программа начинала работать совсем плохо. Сама железяка представляет собой энкодер подключённый к ардуино и с ардуино выходит два транзистора имитирующие нажатие кнопки vol+ и vol- на магнитоле. Железка рабочая полностью. С delay работает когда энкодер вращаешь не слишком быстро. Как только скорость вращения увеличиваешь всё ложиться крахом....
Вот мой код:
#include <Encoder.h> // библиотека энкодера int b; Encoder myEnc(2, 3); // пины куда подключен энкодер void setup() { pinMode(14, OUTPUT); // назначаем 14 пин выходом pinMode(15, OUTPUT); // назначаем 15 пин выходом } long oldPosition = -999; // переменная для нормальной работы энкодера void loop() { long newPosition = myEnc.read(); // считываем значения с энкодера if (newPosition != oldPosition) // этот участок кода тоже нужен для нормальной работы энкодера { oldPosition = newPosition; // этот участок кода тоже нужен для нормальной работы энкодера } if(newPosition > b) // если крутили в большую сторону то выполняем функцию vol_plus { vol_plus(); b=newPosition; } if(newPosition < b) // если крутили в большую сторону то выполняем функцию vol_minus { vol_minus(); b=newPosition; } } void vol_minus() { digitalWrite(15,HIGH); delay(60); digitalWrite(15,LOW); delay(60); } void vol_plus() { digitalWrite(14,HIGH); delay(60); digitalWrite(14,LOW); delay(60); }
Заранее очень благодарен за помощь)
регистрация 2014 год, и опять как обойтись без делэй - это ппц... извините, не сдержался, обычно я более чем толерантен.
регистрация 2014 год, и опять как обойтись без делэй - это ппц... извините, не сдержался, обычно я более чем толерантен.
на войне человек был.Зарегистрировался и пошел в Армию. Вернулся и занялся Ардуиной.