Друзья, напоминаем, что самовывозом забрать заказ можно после подтверждения менеджером.
(098) 067-12-26 Киевстар (098) 067-12-26   Киевстар
(066) 142-24-48 Vodafone (066) 142-24-48   Vodafone
(098) 067-12-26 Lifecell (063) 642-36-59   Lifecell
 info@arduino.ua
График работы магазина:
Пн-Пт: 9.00 - 19.00
Сб: 10.00 - 19.00
Вс: выходной
г. Киев, ул. Васильковская, 30
ст.м. "Васильковская"
Каталог

Школа робототехники intRobots

Запись аудиофайлов на микросхемы серии ISD1700

В одном из недавних проектов мне потребовалось добавить озвучивание коротких текстовых сообщений. Шилды типа MP3-модуля с SD-картой показались мне избыточными, а «обучать» ARDUINO воспроизводить человеческую речь значило бы отдать практически все ресурсы

Сборка электронных часов

Коротенькая статья с картинками - инструкция по сборке электронных часов, которые можно приобрести на страницах нашего магазина. Переведена с английского (и может, не совсем качественно)

Підключення енкодера до Ардуіно

Контролер (датчик) положення обертового об`єкта або по-іншому енкодер - це електромеханічний пристрій, за допомогою якого можна визначити положення обертається осі (вала). У звичайному інкрементальному енкодері, який ми будемо розглядати, цей сигнал

Клон Arduino или отладочная плата Atmega в корпусе DIP28

Сделанное собственными руками всегда тешит самолюбие и реализация «идеи, подкупающей своей новизной», «вызывает чувство глубокого удовлетворения» (из анекдотов, куда без них)...

Самодельный лабораторный блок питания

Одним из самых необходимых инструментов для каждого радиолюбителя является блок питания. Ведь без него иногда бывает достаточно сложно обойтись. Я считаю, что чем он лучше, тем удобнее и приятнее будет им пользоваться. Поэтому я бы хотел на своем
Напиши статью и получи скидку!

Підключення енкодера до Ардуіно

2019-07-20

Все статьи →

Енкодери можна використовувати в Arduino проектах коли потрібно вирахувати кут нахилу або точно

покрутити сервопривод. Також енкодер можна використовувати для регулювання швидкістю мотора

чи крокового мотора.В деяких приладах енкодер використовують як джойстик , замість того щоб

багато раз клацати по кнопкам можна прокрутити енкодер.

 

Види енкодерів:

Абсолютні енкодери

Основною характеристикою абсолютних енкодерів - як оптичних, так і магнітних - є число кроків,

тобто унікальних кодів на оберт і кількість таких обертів. При цьому не потрібне початкове

встановлення «нуля» та ініціалізації. Найпоширеніші типи вихідного сигналу — це паралельний код.

Оптичні енкодери

Оптичні енкодери мають жорстко закріплений на валу скляний диск із прецизійною оптичною

шкалою. При обертанні об`єкта з закріпленим на ньому диском оптопара зчитує інформацію, а

електронна схема перетворює її в послідовність дискретних електричних імпульсів. Абсолютні оптичні

енкодери — це датчики кута повороту, де кожному положенню вала відповідає унікальний цифровий

вихідний код, який разом з числом обертів є основним робочим параметром пристрою.

Магнітні енкодери

Магнітні енкодери з високою точністю реєструють проходження магнітних полюсів магнітного

елемента, що обертається на малій відстані від чутливого елемента, і перетворюють цю

інформацію у відповідний цифровий код.

Механічні та оптичні енкодери з послідовним виходом

Мають у своєму складі діелектричний чи скляний диск з нанесеними на нього випуклими,

провідними чи непрозорими ділянками, відповідно до конкретної конструкції приладу. Визначення

абсолютного кута повороту диска виконується лінійкою вимикачів чи контактів у випадку механічної

схеми, або лінійкою оптопар, у випадку оптичної схеми. Вихідні сигнали являють собою код Грея,

який дозволяє позбутися неоднозначності інтерпретації сигналу.

https://i0.wp.com/alexgyver.ru/wp-content/uploads/2019/01/encoder-600x489.jpeg

Так як ми розглядаємо застосування енкодера в парі з Arduino - логічніше буде розглядати готові

енкодерние модулі, яких у китайців є кілька різних.

https://i0.wp.com/alexgyver.ru/wp-content/uploads/2019/01/96encoder.jpghttps://i0.wp.com/alexgyver.ru/wp-content/uploads/2019/01/enc2.jpghttps://i0.wp.com/alexgyver.ru/wp-content/uploads/2019/01/enc33.jpg

 

               Класичний                                     Продвинутий                                                     Промисловий

 

Підключення

Підключається модуль енкодера дуже просто: харчування на живлення (GND і VCC), логічні Піни CLK,

DT (тактові висновки енкодера) і SW (вивід кнопки) на будь-які Піни Arduino (D або A). У круглих

модулів виводи енкодера підписані як S1 і S2, а вивод кнопки як Key, підключаються точно так же. Від

порядку підключення тактових висновків енкодера залежить "напрямок" його роботи, але це можна

поправити в програмі.

https://i0.wp.com/alexgyver.ru/wp-content/uploads/2019/01/encS-1-600x338.jpg

У модулів енкодера тактові висновки підтягнуті до землі і дають високий сигнал при спрацьовуванні,

також на них стоять конденсатори. Контакт кнопки нікуди не підтягнутий! Промисловий енкодер

підключається точно так же, чорний і червоний дроти у ньогоживлення, інші - тактові виходи.

 

Програмування

Почнемо з того, що буває два типи енкодерів, я назвав їх одноімпульсні і двухімпульсні, тип енкодера

можна визначити за зовнішнім виглядом самого енкодера:

https://i0.wp.com/alexgyver.ru/wp-content/uploads/2019/01/types-1.jpg

Чим відрізняються енкодери на практиці: якщо опитувати одноімпульсний енкодер як

двухімпульсний, то для відпрацювання одного тика потрібно повернути рукоятку на два тіка. Якщо

опитувати двухімпульсний як одноімпульсний, то для відпрацювання одного тика потрібно повернути

рукоятку на два тика. Тобто при неправильному використанні причина відразу видно.

 

Я не знайшов в інтернеті нормальних бібліотек для енкодера з хорошою функціональністю, тому

написав свою, GyverEncoder. Що вміє:

  • Відпрацювання повороту рукоятки енкодера
  • Відпрацювання "натиснутого повороту" енкодера
  • Відпрацювання "швидкого повороту" енкодера
  • Робота з двома типами енкодерів
  • Відпрацювання натискання / кліка / утримання кнопки з антидребезга контактів

Увага! Параметри захисту віддрі брязкоту контактів і таймаут утримання кнопки налаштовується у

файлі .h бібліотеки майже на самому початку.

 

Основні функції та методи бібліотеки:

Encoder (uint8_t clk, uint8_t dt); // CLK, DT

Encoder (uint8_t, uint8_t, uint8_t); // CLK, DT, SW

Encoder (uint8_t, uint8_t, uint8_t, boolean); // CLK, DT, SW, тип (TYPE1 / TYPE2): TYPE1 однокроковий, TYPE2 двохкроковий. Якщо ваш енкодер працює дивно, змініть тип

void tick (); // опитування енкодера, потрібно викликати постійно або в перериванні

void setType (boolean type); // TYPE1 / TYPE2 - тип енкодера TYPE1 однокроковий, TYPE2 двохкроковий. Якщо ваш енкодер працює дивно, змініть тип

void setTickMode (boolean tickMode); // MANUAL / AUTO - ручний або автоматичний опитування

енкодера функцією tick (). (За замовчуванням ручний)

void setDirection (boolean direction); // NORM / REVERSE - напрямок обертання енкодера

void setFastTimeout (int timeout); // установка таймаута швидкого повороту

boolean isTurn (); // повертає true при будь-якому повороті, сама скидається в false

boolean isRight (); // повертає true при повороті направо, сама скидається в false

boolean isLeft (); // повертає true при повороті наліво, сама скидається в false

boolean isRightH (); // повертає true при утриманні кнопки і повороті направо, сама скидається в false

boolean isLeftH (); // повертає true при утриманні кнопки і повороті наліво, сама скидається в false

boolean isFastR (); // повертає true при швидкому повороті

boolean isFastL (); // повертає true при швидкому повороті

boolean isPress (); // повертає true при натисканні кнопки, сама скидається в false

boolean isRelease (); // повертає true при відпуску кнопки, сама скидається в false

boolean isClick (); // повертає true при натисканні і відпусканні кнопки, сама скидається в false

boolean isHolded (); // повертає true при утриманні кнопки, сама скидається в false

boolean isHold (); // повертає true при утриманні кнопки, не скидати

 

Підключення двох енкодерів

// два енкодера

#include "GyverEncoder.h"

Encoder enc1(4, 3, 2);

Encoder enc2(7, 6, 5);

void setup() {

Serial.begin(9600);

}

void loop() {

// обов`язкова функція відпрацювання. Повинна постійно опитуватись

enc1.tick();

enc2.tick();

if (enc1.isLeft()) Serial.println("enc 1 left");

if (enc1.isRight()) Serial.println("enc 1 right");

if (enc2.isLeft()) Serial.println("enc 2 left");

if (enc2.isRight()) Serial.println("enc 2 right");

}

 

Режим швидкого повороту

#define CLK 2

#define DT 3

#define SW 4

#include "GyverEncoder.h"

Encoder enc1 (CLK, DT, SW);

int value = 0;

void setup () {

Serial.begin (9600);

enc1.setType (TYPE1); // тип енкодера TYPE1 однокроковий, TYPE2 двохкроковий. Якщо ваш енкодер

працює дивно, змініть тип \ =

enc1.setFastTimeout (40); // таймаут на швидкість isFastR. Стандарт. 50

 

}

void loop () {

// обовёязкова функція відпрацювання. Повинна постійно опитуватись

enc1.tick ();

if (enc1.isRight ()) value ++; // якщо був поворот направо, збільшуємо на 1

if (enc1.isLeft ()) value--; // якщо був поворот наліво, зменшуємо на 1

if (enc1.isRightH ()) value + = 5; // якщо було утримання + поворот направо, збільшуємо на 5

if (enc1.isLeftH ()) value - = 5; // якщо було утримання + поворот наліво, зменшуємо на 5

if (enc1.isFastR ()) value + = 10; // якщо був швидкий поворот направо, збільшуємо на 10

if (enc1.isFastL ()) value - = 10; // якщо був швидкий поворот наліво, зменшуємо на 10

if (enc1.isTurn ()) {// якщо був здійснений поворот (індикатор повороту в будь-яку сторону)

Serial.println (value); // виводимо значення при повороті

}

}

 

У бібліотеці містяться додаткові приклади роботи з енкодером

 

Застосування енкодерів

Оптичні енкодери набули найбільшого поширення в промисловості, станочному обладнанні,

виробничих лініях, роботизованих механізмах - всюди, де потрібно контролювати рух або

переміщення. Це обумовлено тим, що технологія виготовлення енкодерів освоєна, зрозуміла, добре

відпрацьована і давно зробила крок до країн Південно-Східної Азії.

 

Області застосування енкодерів

В даний час найбільш затребувані оптичні енкодери з порожнистим валом - вони надійні в роботі, їх

легше встановлювати, зручніше налаштовувати і обслуговувати.

 

Посилання:

Ваша оценка статьи:

Отлично
Хорошо
Удовлетворительно
Плохо
Очень плохо

Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Пока нет отзывов на эту статью.
оплата картами Visa и MasterCard