Взаимосвязь энкодера и пьезодинамика.

grenment
Offline
Зарегистрирован: 04.06.2017
Если кто сможешь помочь, то тут при проверки не выдает ошибок, но взаимодействовать не хотят. Тут я хотел, чтобы при повороте энкодера, получалось число. От него должен выводится определённый звук на пьезодинамик.
По отдельности они работают,а вот в связке нет. 
 
 
#include <iarduino_Encoder_tmr.h>             //  Подключаем библиотеку iarduino_Encoder_tmr для работы с энкодерами через аппаратный таймер
iarduino_Encoder_tmr enc(5,6);              //  Объявляем объект enc для работы с энкодером указывая (№ вывода A, № вывода B)
                                              //  Если при объявлении объектов перепутать выводы, то поворот влево будет расценен как поворот вправо и наоборот
const int x = 1;
  const int y = 50;                                              //  При использовании библиотеки iarduino_Encoder_tmr можно подключить до 8 энкодеров.
int    i = 0;                                 //  Определяем переменную для подсчёта дискретных поворотов энкодера
void setup(){
  
    Serial.begin(9600);                       //  Инициируем передачу данных в монитор последовательного порта
         enc.begin();                         //  Инициируем работу с энкодером
    pinMode(3, OUTPUT);
}
void loop(){
  delay(100);
    int a=enc.read();                         //  Читаем состояние энкодера в переменную a
         if(a){                             //  Если энкодер зафиксировал поворот, то ...
        i=i+a;   /* i+=a*/                    //  Меняем значение переменной i на 1, т.к. в переменной a находится -1 (при повороте влево), или +1 (при повороте вправо).
        Serial.println(i); 
        int i;
         if (x > i > y) {
      tone(3, 500, 500);
    }
}
 
    }
 
 
inspiritus
Offline
Зарегистрирован: 17.12.2012

Могу предположить, что аппаратный таймер для работы библиотеки и команды tone один и тот же, потому нет звука.

dimin21590
dimin21590 аватар
Offline
Зарегистрирован: 26.10.2016

по моему const int x = 1; ето переменная которая не меняется попробуй просто int

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

dimin21590 пишет:

по моему const int x = 1; ето переменная которая не меняется

Так он её и не меняет.