потенциометр _ не понимаю принцип

fsdb
Offline
Зарегистрирован: 24.10.2015

Прошу помочь понять принцип. не понимаю для чего тут CLK. как понимается что минус а что плюс.

 

const int interruptA = 0; / / Interrupt 0 (pin 2)

   const int interruptB = 1; / / Interrupt 1 (pin 3)

   int CLK = 2; / / PIN2

   int DAT = 3; / / PIN3

   int BUTTON = 4; / / PIN4

   int LED1 = 5; / / PIN5

   int LED2 = 6; / / PIN6

   int COUNT = 0;

   void setup ()

   {

   attachInterrupt (interruptA, RoteStateChanged, FALLING);

   / / AttachInterrupt (interruptB, buttonState, FALLING);

   pinMode (CLK, INPUT);

   digitalWrite (2, HIGH); / / Pull High Restance

   pinMode (DAT, INPUT);

   digitalWrite (3, HIGH); / / Pull High Restance

   pinMode (BUTTON, INPUT);

   digitalWrite (4, HIGH); / / Pull High Restance

   pinMode (LED1, OUTPUT);

   pinMode (LED2, OUTPUT);

   Serial.begin (9600);

   }

   void loop ()

   {

   if (! (digitalRead (BUTTON)))

   {

   COUNT = 0;

   Serial.println ("STOP COUNT = 0");

   digitalWrite (LED1, LOW);

   digitalWrite (LED2, LOW);

   delay (2000);

   }

   Serial.println (COUNT);

   }

   / / -------------------------------------------

   void RoteStateChanged () / / When CLK FALLING READ DAT

   {

   if (digitalRead (DAT)) / / When DAT = HIGH IS FORWARD

   {

   COUNT;

   digitalWrite (LED1, HIGH);

   digitalWrite (LED2, LOW);

   delay (20);

   }

   else / / When DAT = LOW IS BackRote

   {

   COUNT -;

   digitalWrite (LED2, HIGH);

   digitalWrite (LED1, LOW);

   delay (20);

   }

   }

 

 

 

fsdb
Offline
Зарегистрирован: 24.10.2015

если ориентироваться на

075

   if (digitalRead (DAT)) 

 

то всегда будет или + или -. но двидение его не всегда же идет!

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

при чём здесь потенциометр ?
строки 1 , 3 , 5 , 7 , 21 , 23 - это про энкодер
...ещё кнопка и два светодиода

про что этот скетч - ты понимаешь ?

fsdb
Offline
Зарегистрирован: 24.10.2015

потенциометр очень даже. но код кривой и я пытаюсь разобраться. иногда я получаю + вместо - на нем

fsdb
Offline
Зарегистрирован: 24.10.2015
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

fsdb пишет:

потенциометр очень даже. но код кривой и я пытаюсь разобраться. иногда я получаю + вместо - на нем

Энкодер не измеряет потенцию :)

fsdb
Offline
Зарегистрирован: 24.10.2015

хорошо. не измеяет. детали опишите. что делает . как делает.

fsdb
Offline
Зарегистрирован: 24.10.2015

почему код тупит. или прошу дать валидный код. в интернете  я вижу только аналоговый

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

fsdb, тема энкодеров до такой степени разжёвана, что начинать об этом снова говорить нет сил:)  Вот хорошая библа  Вот пример статьи о том что это такое.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

там же не по русски , но по человечески написано 

Rotary encoders Module for Arduino UNO

 при чём здесь потенциометр ? похож на него ???!!!!!!!!!!

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

выход-работа скетча это COUNT в сериал-мониторе !
при вращении туда/сюда "потенциометра" - как изменяются данные в сериал-мониторе ?
не задумались - чё это "потенциометр" крутится без ограничения угла поворота ? ещё и рывками как бы ?
 

fsdb
Offline
Зарегистрирован: 24.10.2015

спасибо. я просто не знал что бывает енкодер))) . нашел скетч не такой кривой и более менее заработало но все равно проскакивает не верное значение при вращении

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

пины 2 и 3 через конденсаторы подсоедините к земле
номиналы кондёров - поищите по лексеме "аппаратный антидребезг энкодера"

fsdb
Offline
Зарегистрирован: 24.10.2015

да с кондерами лучше стало. правда поставил какие были. но все равно лучше

fsdb
Offline
Зарегистрирован: 24.10.2015

спасиббо

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

fsdb пишет:

да с кондерами лучше стало

сникерс !!!! лучше ?
да , стало лучше....