Замена 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 год, и опять как обойтись без делэй - это ппц... извините, не сдержался, обычно я более чем толерантен.
на войне человек был.Зарегистрировался и пошел в Армию. Вернулся и занялся Ардуиной.