DUE+encoder+DAC не могу разобраться что делаю не так.
- Войдите на сайт для отправки комментариев
Втр, 07/03/2017 - 12:07
Здравтвуйте, использую ДУЕ, энкодер и ЦАП. При повороте энкодера значение изменяется на 4 единицы, это устанвки библиотеки энкодера. Мне необходимо увеличить значение, чтобы код изменялся на 24 единицы, вот как я пытаюсь сделать:
#include <UTFT.h> #include <Encoder.h> UTFT g = UTFT(CTE32HR, 38, 39, 40, 41); Encoder myEncL(11, 12); Encoder myEncR(7, 6); const int pin_l = DAC0; // pin DAC0 int newPosition_l = 0; // начало с 0 const int pin_r = DAC1; // pin DAC1 int newPosition_r = 0; // начало с 0 void setup() { analogWriteResolution(12); //энкодер analogWrite(pin_l, newPosition_l); // устанавливаем DAC0 analogWrite(pin_r, newPosition_r); // устанавливаем DAC1 //Экран g.InitLCD(); } void loop() { int newPosition_r = myEncR.read(); if(newPosition_r >= 4095){ newPosition_r = 4095; myEncR.write(newPosition_r); } else if(newPosition_r <= 0){ newPosition_r = 0; myEncR.write(newPosition_r); } int newPos_r = (newPosition_r + 20); analogWrite(pin_r, newPos_r); // устанавливаем DAC1 g.printNumI( newPos_r, 350, 240, 5); } При старте устанавливается 0, затем 20, а вот при повороте энкодера все равно только +4 единицы , двадцать не добавляет. Где косяк? Подскажите пожалуйста.
Потому, что newPosition увеличивается только на свои 4 единицы, к которым вы прибавляете 20.
Т.е. 0+20, 4+20, 8+20, и.т.д. От того и получаете 0, 20, 24, 28...
Нужно в newPosition тоже писать новое значение.
А что-то тут неправильно. Например знак равно. Обычно его не ставят.
А что-то тут неправильно. Например знак равно. Обычно его не ставят.
Я не заморачивался, библиотека правленная головастым товарищем, с руссификатором. Как в скетче примера было так и адаптировал, под мой экранчик идеально подошла.
Нужно в newPosition тоже писать новое значение.
Спасибо, не подскажите где в самой библиотеке это поменять? Либа скачана отсюда:
https://www.pjrc.com/teensy/td_libs_Encoder.html
В библу, думается, лучше не стоит лазить ))
Ваш энкодер на один щелчок изменяет значение на 4?
Можно попробовать как-нибудь так -
Может так, чтоб не трогать библиотеку
Ну я так выше и предложил..
Может так,
Спасибо друг, ты гений..
OlegK спасибо, до меня сразу не доперло.. замкнутый цикл на увеличение все получался