Проход по ссылкам навигацииГлавная : Статьи :

Arduino UNO урок 6 (Энкодер)

Arduino UNO урок 6 (Энкодер)

Телефон Предыдущий урок Драйвер для led своими руками | Следующий урок


Телефон


В Программирование плк для начинающих этом уроке Телефон мы рассмотрим работу Программирование stm32 на ассемблере Arduino с Приставка к мультиметру для измерения esr энкодером (который Телефон служит для Драйвер для led своими руками преобразования угла поПрограммирование плк для начинающих ворота в эл. сигнал). С Телефон энкодера мы получаем 2 Программирование stm32 на ассемблере сигнала (А и Телефон В), Приставка к мультиметру для измерения esr которые противоположны по фазе. В Телефон данном Телефон уроке мы Драйвер для led своими руками будем использовать энкодер фирмы Программирование плк для начинающих SparkFun COM-09117, Телефон который имеет 12 Программирование stm32 на ассемблере положений на Приставка к мультиметру для измерения esr один оборот Телефон (каждое положение Драйвер для led своими руками 30°). На приведенной Программирование плк для начинающих ниже диаграмме вы можете Телефон видеть, как зависят выход Программирование stm32 на ассемблере А и В Телефон друг Приставка к мультиметру для измерения esr от друга при вращении энкодера Телефон по Телефон часовой или Драйвер для led своими руками против часовой стрелки.

Телефон


Каждый Программирование плк для начинающих раз, когда Телефон сигнал А переходит Программирование stm32 на ассемблере от положительного Приставка к мультиметру для измерения esr уровня к Телефон нулю, мы Драйвер для led своими руками считываем значение Программирование плк для начинающих выхода В. Если В в Телефон этот момент находится в Программирование stm32 на ассемблере положительном состоянии, значит Телефон энкодер Приставка к мультиметру для измерения esr вращается по часовой стрелке, если Телефон В Телефон нуль, то Драйвер для led своими руками энкодер вращается против часовой Программирование плк для начинающих стрелки. Считывая Телефон оба выхода, мы Программирование stm32 на ассемблере при помощи Приставка к мультиметру для измерения esr МК можем Телефон определить направление Драйвер для led своими руками вращения, и при Программирование плк для начинающих помощи подсчета импульсов с Телефон А выхода - угол Программирование stm32 на ассемблере поворота. Конечно можно Телефон пойти Приставка к мультиметру для измерения esr еще дальше и при помощи Телефон вычисления Телефон частоты, можно Драйвер для led своими руками определить насколько быстро происходит Программирование плк для начинающих вращение энкодера. Телефон Как вы видите, Программирование stm32 на ассемблере энкодер имеет Приставка к мультиметру для измерения esr много преимуществ Телефон по Драйвер для led своими руками сравнению с обычным потенциометром.

Программирование плк для начинающих Используя энкодер мы будем Телефон управлять яркостью LED светодиода Программирование stm32 на ассемблере при помощи ШИМ Телефон выхода. Приставка к мультиметру для измерения esr Для считывания данных энкодера мы Телефон будем Телефон использовать простейший Драйвер для led своими руками метод, основанный на программных Программирование плк для начинающих таймерах, которые Телефон мы изучали в Программирование stm32 на ассемблере третьем уроке.

Приставка к мультиметру для измерения esr Как было Телефон сказано выше, Драйвер для led своими руками мы будем использовать Программирование плк для начинающих энкодер sparkfun. Первое, что Телефон необходимо сделать, это определить Программирование stm32 на ассемблере как часто нам Телефон нужно Приставка к мультиметру для измерения esr обращаться к выходам энкодера для Телефон считывания Телефон значений. Итак, Драйвер для led своими руками представим себе, что в Программирование плк для начинающих лучшем случае, Телефон мы можем повернуть Программирование stm32 на ассемблере ручку энкодера Приставка к мультиметру для измерения esr на 180° Телефон за 1/10 Драйвер для led своими руками сек, т.е. Программирование плк для начинающих это будет 6 импульсов Телефон за 1/10 сек или Программирование stm32 на ассемблере 60 импульсов в Телефон секунду. Приставка к мультиметру для измерения esr В реальности быстрее вращать не Телефон сможеТелефон те. Т.к. Драйвер для led своими руками нам необходимо отслеживать все Программирование плк для начинающих полупериоды, то Телефон частота должна быть Программирование stm32 на ассемблере минимум 120 Приставка к мультиметру для измерения esr Герц. Для Телефон полной уверенности, Драйвер для led своими руками давайте примем 200 Программирование плк для начинающих Гц. (Примечание: т.к. Телефон у нас механический энкодер, Программирование stm32 на ассемблере то возможен дребезг Телефон контПриставка к мультиметру для измерения esr актов, а низкая частота позволяет отфильтровывать Телефон дребезг).

Телефон


Телефон По сигналам Драйвер для led своими руками программного таймера нам необходимо Программирование плк для начинающих постоянно сравнивать Телефон текущее значение выходПрограммирование stm32 на ассемблере а А энкодера Приставка к мультиметру для измерения esr с предыдущим Телефон значением. Если Драйвер для led своими руками состояние изменилось от Программирование плк для начинающих положительного к нулю, то Телефон мы проверяем значение Программирование stm32 на ассемблере выхода В и смотрим Телефон положительное Приставка к мультиметру для измерения esr оно или нет. В зависимости Телефон от Телефон полученного результата Драйвер для led своими руками мы увеличиваем или уменьшаем Программирование плк для начинающих счетчик значения Телефон яркости светодиода.

Телефон


Программа Программирование stm32 на ассемблере для данного Приставка к мультиметру для измерения esr урока приведена Телефон ниже. Она Драйвер для led своими руками построена на базе Программирование плк для начинающих предыдущего урока Fade, где Телефон использовалась функция millis() для Программирование stm32 на ассемблере задания временных интервалов. Телефон Временной Приставка к мультиметру для измерения esr интервал у нас будет 5 Телефон мс Телефон (200 Гц)

Драйвер для led своими руками /*
** Энкодер
** Программирование плк для начинающих Для управлением Телефон яркостью LED используется Программирование stm32 на ассемблере энкодер Sparkfun
Приставка к мультиметру для измерения esr */
 
int Телефон brightness = Драйвер для led своими руками 120;       // яркость Программирование плк для начинающих LED, начинаем с половины
Телефон int fadeAmount = 10;        Программирование stm32 на ассемблере // шаг изменения Телефон яркости Приставка к мультиметру для измерения esr LED
unsigned long currentTime;
unsigned Телефон long Телефон loopTime;
const Драйвер для led своими руками int pin_A = 12;       Программирование плк для начинающих // pin Телефон 12
const int Программирование stm32 на ассемблере pin_B = Приставка к мультиметру для измерения esr 11;       // Телефон pin 11
Драйвер для led своими руками unsigned char encoder_A;
Программирование плк для начинающих unsigned char encoder_B;
unsigned Телефон char encoder_A_prev=0;
 
void setup()  Программирование stm32 на ассемблере {
  // declare Телефон pin Приставка к мультиметру для измерения esr 9 to be an output:
  Телефон pinMode(9, Телефон OUTPUT);         // Драйвер для led своими руками устанавливаем pin 9 как Программирование плк для начинающих выход
  pinMode(pin_A, Телефон INPUT);
  pinMode(pin_B, INPUT);
  Программирование stm32 на ассемблере currentTime = Приставка к мультиметру для измерения esr millis();
  loopTime Телефон = currentTime;
Драйвер для led своими руками }
 
void loop()  Программирование плк для начинающих {
  currentTime = millis();
  Телефон if(currentTime >= (loopTime + Программирование stm32 на ассемблере 5)){ // проверяем Телефон каждые Приставка к мультиметру для измерения esr 5мс (200 Гц)
    encoder_A = Телефон digitalRead(pin_A);     Телефон // считываем Драйвер для led своими руками состояние выхода А энкодера
    Программирование плк для начинающих encoder_B = Телефон digitalRead(pin_B);     // считываем Программирование stm32 на ассемблере состояние выходПриставка к мультиметру для измерения esr а А энкодера   
    Телефон if((!encoder_A) && (encoder_A_prev)){    // Программирование плк для начинающих если состояние изменилось с Телефон положительного к нулю
      if(encoder_B) Программирование stm32 на ассемблере {
        // Телефон Приставка к мультиметру для измерения esr выход В в полож. сост., значит вращение Телефон по Телефон часовой стрелке
        Драйвер для led своими руками // увеличиваем яркость, не Программирование плк для начинающих более чем Телефон до 255
        if(brightness Программирование stm32 на ассемблере + fadeAmount <= 255) Телефон brightness += Драйвер для led своими руками fadeAmount;              
      }  
      else Программирование плк для начинающих {
        // Телефон выход В в 0 сост., значит Программирование stm32 на ассемблере вращение против часовой Телефон стрелки    
        Приставка к мультиметру для измерения esr // уменьшаем яркость, но не Телефон ниже Телефон 0
        if(brightness Драйвер для led своими руками - fadeAmount >= 0) Программирование плк для начинающих brightness -= Телефон fadeAmount;              
      }  
 
    }  
    Программирование stm32 на ассемблере encoder_A_prev = Приставка к мультиметру для измерения esr encoder_A;     // Телефон сохраняем знДрайвер для led своими руками ачение А для следующего Программирование плк для начинающих цикла
     
    analogWrite(9, brightness);   // Телефон устанавливаем яркость на 9 Программирование stm32 на ассемблере ножку
    
    loopTime = Телефон currentTime;
  Приставка к мультиметру для измерения esr }                      
}