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

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

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

Вентилятор через диммер Предыдущий урок Что можно сделать из мотора дисковода | Следующий урок


Вентилятор через диммер


В Vitek vt-4031 sr этом уроке Вентилятор через диммер мы рассмотрим работу Микросхема hs153sp Arduino с Схема декодера HS153SP-J энкодером (который Вентилятор через диммер служит для Что можно сделать из мотора дисковода преобразования угла поVitek vt-4031 sr ворота в эл. сигнал). С Вентилятор через диммер энкодера мы получаем 2 Микросхема hs153sp сигнала (А и Вентилятор через диммер В), Схема декодера HS153SP-J которые противоположны по фазе. В Вентилятор через диммер данном Вентилятор через диммер уроке мы Что можно сделать из мотора дисковода будем использовать энкодер фирмы Vitek vt-4031 sr SparkFun COM-09117, Вентилятор через диммер который имеет 12 Микросхема hs153sp положений на Схема декодера HS153SP-J один оборот Вентилятор через диммер (каждое положение Что можно сделать из мотора дисковода 30°). На приведенной Vitek vt-4031 sr ниже диаграмме вы можете Вентилятор через диммер видеть, как зависят выход Микросхема hs153sp А и В Вентилятор через диммер друг Схема декодера HS153SP-J от друга при вращении энкодера Вентилятор через диммер по Вентилятор через диммер часовой или Что можно сделать из мотора дисковода против часовой стрелки.

Вентилятор через диммер


Каждый Vitek vt-4031 sr раз, когда Вентилятор через диммер сигнал А переходит Микросхема hs153sp от положительного Схема декодера HS153SP-J уровня к Вентилятор через диммер нулю, мы Что можно сделать из мотора дисковода считываем значение Vitek vt-4031 sr выхода В. Если В в Вентилятор через диммер этот момент находится в Микросхема hs153sp положительном состоянии, значит Вентилятор через диммер энкодер Схема декодера HS153SP-J вращается по часовой стрелке, если Вентилятор через диммер В Вентилятор через диммер нуль, то Что можно сделать из мотора дисковода энкодер вращается против часовой Vitek vt-4031 sr стрелки. Считывая Вентилятор через диммер оба выхода, мы Микросхема hs153sp при помощи Схема декодера HS153SP-J МК можем Вентилятор через диммер определить направление Что можно сделать из мотора дисковода вращения, и при Vitek vt-4031 sr помощи подсчета импульсов с Вентилятор через диммер А выхода - угол Микросхема hs153sp поворота. Конечно можно Вентилятор через диммер пойти Схема декодера HS153SP-J еще дальше и при помощи Вентилятор через диммер вычисления Вентилятор через диммер частоты, можно Что можно сделать из мотора дисковода определить насколько быстро происходит Vitek vt-4031 sr вращение энкодера. Вентилятор через диммер Как вы видите, Микросхема hs153sp энкодер имеет Схема декодера HS153SP-J много преимуществ Вентилятор через диммер по Что можно сделать из мотора дисковода сравнению с обычным потенциометром.

Vitek vt-4031 sr Используя энкодер мы будем Вентилятор через диммер управлять яркостью LED светодиода Микросхема hs153sp при помощи ШИМ Вентилятор через диммер выхода. Схема декодера HS153SP-J Для считывания данных энкодера мы Вентилятор через диммер будем Вентилятор через диммер использовать простейший Что можно сделать из мотора дисковода метод, основанный на программных Vitek vt-4031 sr таймерах, которые Вентилятор через диммер мы изучали в Микросхема hs153sp третьем уроке.

Схема декодера HS153SP-J Как было Вентилятор через диммер сказано выше, Что можно сделать из мотора дисковода мы будем использовать Vitek vt-4031 sr энкодер sparkfun. Первое, что Вентилятор через диммер необходимо сделать, это определить Микросхема hs153sp как часто нам Вентилятор через диммер нужно Схема декодера HS153SP-J обращаться к выходам энкодера для Вентилятор через диммер считывания Вентилятор через диммер значений. Итак, Что можно сделать из мотора дисковода представим себе, что в Vitek vt-4031 sr лучшем случае, Вентилятор через диммер мы можем повернуть Микросхема hs153sp ручку энкодера Схема декодера HS153SP-J на 180° Вентилятор через диммер за 1/10 Что можно сделать из мотора дисковода сек, т.е. Vitek vt-4031 sr это будет 6 импульсов Вентилятор через диммер за 1/10 сек или Микросхема hs153sp 60 импульсов в Вентилятор через диммер секунду. Схема декодера HS153SP-J В реальности быстрее вращать не Вентилятор через диммер сможеВентилятор через диммер те. Т.к. Что можно сделать из мотора дисковода нам необходимо отслеживать все Vitek vt-4031 sr полупериоды, то Вентилятор через диммер частота должна быть Микросхема hs153sp минимум 120 Схема декодера HS153SP-J Герц. Для Вентилятор через диммер полной уверенности, Что можно сделать из мотора дисковода давайте примем 200 Vitek vt-4031 sr Гц. (Примечание: т.к. Вентилятор через диммер у нас механический энкодер, Микросхема hs153sp то возможен дребезг Вентилятор через диммер контСхема декодера HS153SP-J актов, а низкая частота позволяет отфильтровывать Вентилятор через диммер дребезг).

Вентилятор через диммер


Вентилятор через диммер По сигналам Что можно сделать из мотора дисковода программного таймера нам необходимо Vitek vt-4031 sr постоянно сравнивать Вентилятор через диммер текущее значение выходМикросхема hs153sp а А энкодера Схема декодера HS153SP-J с предыдущим Вентилятор через диммер значением. Если Что можно сделать из мотора дисковода состояние изменилось от Vitek vt-4031 sr положительного к нулю, то Вентилятор через диммер мы проверяем значение Микросхема hs153sp выхода В и смотрим Вентилятор через диммер положительное Схема декодера HS153SP-J оно или нет. В зависимости Вентилятор через диммер от Вентилятор через диммер полученного результата Что можно сделать из мотора дисковода мы увеличиваем или уменьшаем Vitek vt-4031 sr счетчик значения Вентилятор через диммер яркости светодиода.

Вентилятор через диммер


Программа Микросхема hs153sp для данного Схема декодера HS153SP-J урока приведена Вентилятор через диммер ниже. Она Что можно сделать из мотора дисковода построена на базе Vitek vt-4031 sr предыдущего урока Fade, где Вентилятор через диммер использовалась функция millis() для Микросхема hs153sp задания временных интервалов. Вентилятор через диммер Временной Схема декодера HS153SP-J интервал у нас будет 5 Вентилятор через диммер мс Вентилятор через диммер (200 Гц)

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