Подключаем энкодер к ардуино

  Рет қаралды 37,604

Паяльник TV

Паяльник TV

7 жыл бұрын

С помощью энкодера удобно производить регулировку параметров цифровых электроприборов. В этом видеоролике описан принцип работы икрементального энкодера и предложены варианты программной обработки данных от энкодера с помощью Arduino.
Ссылки:
Arduino UNO урок 6 - Энкодер (код не всегда работает хорошо): cxem.net/arduino/arduino8.php
Скетчи:
Немного изменённый код с сайта (вместо яркости число): enc0.ino
Код для плавного энкодера от муз. центра: enc1.ino
Код для энкодера с дискретными углами поворота: enc2.ino

Пікірлер: 45
@payalnik_TV
@payalnik_TV 7 жыл бұрын
Скетчи можно скачать в теме поддержки на форуме. Там же все вопросы по работе схемы: forum.cxem.net/index.php?/topic/177136-подключаем-энкодер-к-ардуино/ Раздел с сотнями проектов на Arduino на сайте: cxem.net/arduino/arduino.php
@JekaMandra
@JekaMandra 4 жыл бұрын
Спасибо. Только ваш код и заработал как надо!
@Rus_slan
@Rus_slan 4 жыл бұрын
Хорошо и познавательно. А на счёт управление блоком реле с помощью энкодера. Подскажите?
@user-tx1ho6tt8l
@user-tx1ho6tt8l 7 жыл бұрын
Спасибо за видео есть ещё способ использование энкодера в ардуино - используя прерывание, мне кажется это более правильный способ #include LiquidCrystal_I2C lcd(0x3F, 20, 4); int Count=0; const int PinCLK = 2; const int PinDT = 4; volatile boolean TurnDetected; volatile boolean up; void encoder(){ volatile boolean CLK = digitalRead(PinCLK); volatile boolean DT = digitalRead(PinDT); up=((!CLK && DT)||(CLK && !DT)); TurnDetected = true; } void setup() { lcd.begin(); lcd.clear(); lcd.home(); pinMode(PinCLK, INPUT); pinMode(PinDT, INPUT); attachInterrupt(0,encoder,CHANGE); } void loop() { lcd.setCursor (0,0); lcd.print(Count); lcd.print(" "); if (TurnDetected) { if (up){ Count++; } else Count--; TurnDetected = false; } }
@Evtomax
@Evtomax 7 жыл бұрын
Энкодер, который крутится вручную, - не такой критически важный и скоростной элемент, чтобы использовать прерывания. На платах Arduino прерывания можно навесить чаще всего только на 2 пина.
@user-tx1ho6tt8l
@user-tx1ho6tt8l 7 жыл бұрын
тут я немного не соглашусь - если основной задачей ардуино будет обработка энкодера - то тогда да - смысла использовать прерывания нет - но если написать скетч который выполняет очень много задач в цикле, а энкодер используется допустим для подстройки и очень редко - то лучше использовать прерывание иначе реакция на энкодер будет очень медленной - но и ограничение в 2 прерывание в принципе можно обойти
@Evtomax
@Evtomax 7 жыл бұрын
Если ввод начинает тормозить, то опрос устройств ввода по прерываниям таймера.
@sherkhan1978
@sherkhan1978 5 жыл бұрын
@@user-tx1ho6tt8l, можете на примере скетча научить как это делать? Начинающий. Еще не сталкивался с этим финтом.
@k_alexis79
@k_alexis79 4 жыл бұрын
Ваш код не эффективен, т.к. прибавление и вычитание у вас происходит в основном цикле и счёт происходит не быстрее чем частота циклов. Это должно быть к коде прерывания вместо того, что у вас. Вывод на экран нет необходимости делать каждый цикл, достаточно раз в 100-200 мс. У вас это сильно тормозит цикл.
@user-ri4bs6zj8p
@user-ri4bs6zj8p 7 жыл бұрын
А выложите пожалуйста урок про решение уравнений равновесия схемы на основе законов Ома и Кирхгофа. А то в интернете не нашёл информации на примитивно-понятном языке. Заранее спасибо
@hagenh3365
@hagenh3365 4 жыл бұрын
Заходим в ардуино.иде управление библиотеками, набираем "encoder", находим encoder step counter, ставим и наслаждайтесь. Да vcc надо подключить к +5v тоже.
@SERVICE_KARELIA
@SERVICE_KARELIA Ай бұрын
В прямом направлении по положительному фронту, а в обратном - по отрицательному?
@NovaCat777
@NovaCat777 7 жыл бұрын
Проверил все варианты, не подходят для моего энкодера. У моего не 4е шага за раз, а два, то есть фиксированные позиции 00 и 11. По приведённым кодам у меня счет по два шага с кодом для плавного и с последним кодом считает не на каждый тик, а через один. Как подправить? Разобрался. Надо в LOOP добавить делитель int enc_value = value/2; или просто закомментить valueDec(); и valueInc(); в первом и третьем блоках. Вариант с делителем предпочтительнее, не дает ложного прибавления или вычитания. Второй вариант будет прибавлять или вычитать при не полном шаге.
@Rin_Media
@Rin_Media 5 жыл бұрын
А как быстро можно крутить что бы Ардуино смог считать импульсы без пропусков? мне нужно сделать счётчик импульсов, и энкодер в нём будет крутиться очень быстро. Точно не знаю, но несколько десятков килогерц думаю точно будет... Сможет ли он считать эти данные на таких скоростях? И вообще какая максимальная скорость считывания у Ардуино? Видео полезное. 👍👍👍. Спасибо за него. Ставлю большой ЛАЙК
@user-live_fair
@user-live_fair 4 жыл бұрын
Что необходимо изменить в скетче для появления десятичного значения? То есть надо изменять значения шагом 0,25.
@user-pu5pi4ke3q
@user-pu5pi4ke3q 6 жыл бұрын
а можно Вас попросить о помощи???мне нужно управлять шаговым двигателем с помощью энкодера и выставлять шаг и скорость???
@itsmakar2412
@itsmakar2412 4 жыл бұрын
Пж скажи что такое двигатель с энкодером (в нем 5 контактов)
@Avlicon
@Avlicon 4 жыл бұрын
Чем отличаются предоставленные вами энкодеры ?
@user-et4rg9nj2j
@user-et4rg9nj2j 7 жыл бұрын
здравсвуйте скаже пажалуста как замерить ток трансформатора тестором ?
@user-sk6xj8xs9b
@user-sk6xj8xs9b 7 жыл бұрын
есть ещё проще обработчик энкодера . любой из концевиков энкодера цепляем на аппаратное прерывание ардуинки. а в обработчике прерывания смотрим на значения со второго концевика , если там ноль то крутили в одну сторону а если один то в другую . и ничего запоминать не надо , и в цикле опрашивать тоже , а если поставить аппаратный тригер на концевик который на прерывание работает , то можно и мотором крутить ни разу не собъется ------------- сори не заметил пост Дениса
@Evtomax
@Evtomax 7 жыл бұрын
Вот как раз при использовании прерываний дребезг проявляет себя во всей красе, ибо не фильтруется низкой частотой опроса. Я проводил много экспериментов перед тем, как усложнять обработку (в видео это не попало). Ну и такая примитивная обработка уменьшает разрешение для многих энкодеров. В видео пример есть.
@seriy-1232
@seriy-1232 6 жыл бұрын
Как заменить 2 кнопки "-" и "+" энкодера?!
@charger3851
@charger3851 3 жыл бұрын
Автор ответь пожайлуста !!!! Как подключить энкодер к Arduino pro micro???я начинающий ничего не понимаю
@dr.emmettbrown8466
@dr.emmettbrown8466 7 жыл бұрын
А кнопка на энкодере? Я делал через прерывания и для борьбы с дребезгом использовал триггер Шмидта. А вот с кнопкой что то не пошло :(
@Evtomax
@Evtomax 7 жыл бұрын
Для кнопки код будет в одном из следующих видео на нашем канале.
@dr.emmettbrown8466
@dr.emmettbrown8466 7 жыл бұрын
я сам не знаю что не пошло, я поставил кнопку тоже на прерывание с параметром FALLING и контроллер стал подвисать. Честно, я даже не стал разбираться что не так ибо в моем проекте кнопка не нужна и я просто плюнул на это. А вот сам энкодер работает хорошо. А так просто интересуюсь на будущее.
@romanlubim55
@romanlubim55 7 жыл бұрын
У меня проблема с энкодером на муз. центре. Работал, спустя некоторое время стал отскакивать назад. Причина в нем или в коде?
@ivperivm10
@ivperivm10 7 жыл бұрын
Роман Ионов контакты стерлись. Можно разобрать и немного подогнуть их
@romanlubim55
@romanlubim55 7 жыл бұрын
хорошо, попробую
@user-uf5oi3es9g
@user-uf5oi3es9g 7 жыл бұрын
провода самодельные или готовые? у меня тока f-f
@Evtomax
@Evtomax 7 жыл бұрын
Готовые.
@Rin_Media
@Rin_Media 5 жыл бұрын
В общем у меня задача сделать прибор для измерения микрон... я думал применить для этого энкодер от струйного принтера (тот, что прозрачным диском сделан)...
@user-ou3yl8qo4w
@user-ou3yl8qo4w 5 жыл бұрын
Может пригодится kzfaq.info/get/bejne/e5NxfNVmuMzOaXk.html на 16:50 в видео говорится о импульсах
@user-of8gx9li7h
@user-of8gx9li7h 7 жыл бұрын
Сейчас хотя бы узнал, как он называется. А то резисторами кличал)
@user-zi6kd3pd1w
@user-zi6kd3pd1w 5 жыл бұрын
Такая же фигня
@maxfrvr
@maxfrvr 7 жыл бұрын
Здравствуйте, в чем может быть проблема, повторяю второй скетч из видео( энкодер с фиксированными позициями), у меня идет отсчет только в отрицательную сторону, считает только в одну сторону. Думал энкодер поломанный, загрузил первый скетч, все работает, считает и в плюс и в минус но считает не корректно, если медленно крутить. Короче энкодер рабочий, а все равно только в 1 сторону считает. Где искать решение ?
@JekaMandra
@JekaMandra 4 жыл бұрын
там есть. 3 типа
@qweqwe4693
@qweqwe4693 7 жыл бұрын
В компьютерных мышах тоже энкодер есть?
@Radionewss
@Radionewss 7 жыл бұрын
qwe qwe да, колесо мыши на энкодере
@payalnik_TV
@payalnik_TV 7 жыл бұрын
В старых с колесиками. В оптических нет.
@user-fz3ks8ew1p
@user-fz3ks8ew1p 7 жыл бұрын
есть и в новых,точнее в очень новых, где есть еще колесико сверху.
@qweqwe4693
@qweqwe4693 7 жыл бұрын
Паяльник TV Мы про одни и те же колесики говорим?Про те,которыми,например, страницы в браузере вверх вниз крутить?
@Radionewss
@Radionewss 7 жыл бұрын
в современных мышках колесо мыши выполнено либо в исполнении энкодера либо стоит оптопара( светодиод и фотодиод) между которыми колесо на котом прорези. при вращении колеса получаются импульсы.
@flashmotor3817
@flashmotor3817 3 жыл бұрын
а в скетче делить на 4))))
Термостат на Arduino
8:01
Паяльник TV
Рет қаралды 35 М.
1❤️#thankyou #shorts
00:21
あみか部
Рет қаралды 88 МЛН
DO YOU HAVE FRIENDS LIKE THIS?
00:17
dednahype
Рет қаралды 20 МЛН
He sees meat everywhere 😄🥩
00:11
AngLova
Рет қаралды 9 МЛН
⬅️🤔➡️
00:31
Celine Dept
Рет қаралды 50 МЛН
Уроки Arduino. Работа с энкодером
10:55
Заметки Ардуинщика
Рет қаралды 179 М.
Работа с энкодером  от принтера
12:26
Цирюльня хромого Йосыпа
Рет қаралды 66 М.
Простой FM-жучок Своими руками
2:08
Мои хобби
Рет қаралды 16 М.
how to flash atmega8 with arduino
16:47
Radioblogful. Видеоблог паяльщика
Рет қаралды 61 М.
принцип работы энкодера
12:07
Stepmotor
Рет қаралды 31 М.
Connect the encoder from the mouse to Arduino
7:45
Home Made
Рет қаралды 85 М.
1$ vs 500$ ВИРТУАЛЬНАЯ РЕАЛЬНОСТЬ !
23:20
GoldenBurst
Рет қаралды 1,3 МЛН
Asus  VivoBook Винда за 8 часов!
1:00
Sergey Delaisy
Рет қаралды 1,1 МЛН