Sw-motors.ru

Автомобильный журнал
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Датчик обороты для двигателя ардуино

Форум arduino.ua

  • Форум
  • » Аппаратные вопросы
  • » Космические значения при использовании attachInterrupt. Тахометр

#1 2017-06-16 17:45:14

Космические значения при использовании attachInterrupt. Тахометр

Приветствую, Господа. Мои безмятежные представления об осовоении Ардуины впервые наткнулись на камень.
Ближе к сути — Делаю элементарный тахометр. Классическая схема «Магнит—Датчик Холла».

Использую простейшее прерывание от того-же AlexGyver (а сложных и не бывает):

И всё бы хорошо, но у него всё работает и очень красиво и точно показывает RPM, а у меня и еще нескольких комментаторов на Ютубе — заоблачные значения, среди которых преобладают 28896 и 19264.

Господа, одна надежда на Вас. Пните меня в нужную сторону, ибо у меня уже психоз. Гугл уже содрогается от моих запросов по «ардуино», «прерываниям» и «датчикам холла». И ведь даже у буржуев такой проблемы я не замечал.

Большое спасибо за уделенное время.

  • Цитувати

#2 2017-06-16 18:25:14

Re: Космические значения при использовании attachInterrupt. Тахометр

Именно. Если в функцию прерывания запихнуть счетчик, то он будет увеличиваться на 5-15 и больше за одну протяжку магнита. С виду — именно дребезг. Но как у готового цифрового модуля может быть дребезг? (Чувствительность настраивал по многу раз, да и у других-то всё работает именно в таком простом варианте) Ладно, когда я подключаю геркон со стягивающим резистором (тут мех контакт, и логично делать задержку на устаканивание), но и с модулем ДХ и с Герконом — значения одни и те-же 28896 и 19264 . Бывают и отрицательные иногда.

Причем не зависимо от того, проношу ли я магнит единожды, или он на быстро вращающемся маховике.

Остання редакція ENiAC90 (2017-06-16 18:27:18)

  • Цитувати

#3 2017-06-16 19:20:46

Re: Космические значения при использовании attachInterrupt. Тахометр

Да это у автора кода. Я запитал на VCC.

  • Цитувати

#4 2017-06-16 21:55:05

Re: Космические значения при использовании attachInterrupt. Тахометр

Датчик Холла какой .

  • Цитувати

#5 2017-06-17 17:58:51

Re: Космические значения при использовании attachInterrupt. Тахометр

Датчик использую вот такой https://arduino-kit.ru/catalog/id/modul … lineynyiy_

В видео у Алекса https://www.youtube.com/watch?v=x2fLvS8Ms9w (ну красиво-жи!) используется такой

Оба имеют цифровые выходы. Оба подключаются к NANO. Причем я пробовал на двух МК, приобретенных в разных магазинах.

Я сразу подумал, что датчик шалит, но при подключении геркона (обычного, велосипедного) по этой схеме:
происходит то-же самое. Нереальное количество прерываний за один проход.

Я пробовал фильтровать так:

Кое как сие решение работает, но даже не смотря на этот кривой костыль, всё равно проскакивали залётные значения.

Как понять, что датчик глючный? И в нём ли дело, если с герконом работает так-же. (сейчас попробую pinMode(2, INPUT_PULLUP);)
А что если ардуинки гумн. да не, не может быть!

  • Цитувати

#6 2017-06-17 20:05:46

Re: Космические значения при использовании attachInterrupt. Тахометр

Остання редакція renoshnik (2017-06-17 20:27:25)

  • Цитувати

#7 2017-06-17 20:41:35

Re: Космические значения при использовании attachInterrupt. Тахометр

Остання редакція renoshnik (2017-06-17 20:43:37)

  • Цитувати

#8 2017-06-18 15:51:17

Re: Космические значения при использовании attachInterrupt. Тахометр

Господа! Огромнейшее спасибо всем, кто откликнулся! Вячеслав Азаров оказался прав. Датчик — отвратительнейшего качества! Я не мог в это поверить, ведь они же продаются сотнями на Алиэкспресс и в наших магазинах (кстати его я купил в этом магазине http://arduino-ua.com/prod1203-modyl-da … olla-a3144). И в интернете нет АБСОЛЮТНО никаких негативных отзывов о их работе, посему я думал, что сам дурак! Сегодня абсолютно случайнейшим образом наткнулся на это видео:

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

Читать еще:  Двигатель vq35de расход масла

Очень надесюсь, что эта тема поможет новичкам не биться лбом о стену, и быть готовым к таким некачественным датчикам.

Единственное, чем я могу объяснить сходство нереального количества срабатываний геркона и сего ДХ в промежуточном положении магнита — геркон имеет дребезг, и я попробую его завязать через RC цепь с триггером Шмитта (который при подключении питания от ардуины на 14-ю и 7-ю ногу почему-то даёт космический шум в мои колонки).

Следующим видео у автора было:

Если бы я купил сразу такой датчик, я бы не получил такой печальный, но нужный опыт.

(Можно-ли попросить модератора изменить название темы на «Остерегайтесь бракованных китайских датчиков. Сумасшедший Датчик Холла.» Чтобы не вводить людей в заблуждения, в которое попал я)?

Еще раз огромное спасибо вам!

  • Цитувати

#9 2017-06-18 17:22:08

Re: Космические значения при использовании attachInterrupt. Тахометр

Почти согласен. Но другие модули, тоже имея компаратор и похожую развязку, подключаются «одним проводом» без бубна и шаманств, и выдают стабильный цифровой сигнал, с которым может работать даже ребёнок. Да и зачем делать такую «сложную схему» и продавать ее за 2 бакса, если нуждно еще что-то аппаратно мудрить?))

А если человек захочет аналоговый сигнал — то он возьмет сам ДХ без обвязки на плате, и наваяет необходимые ему фильтры (хотя с аналоговым сигналом у этого датчика проблем не заметил, значения меняются от 515 до 200, стабильно и без скачков/дребезга, и этого достаточно для определения магнитного поля, но не для прерываний).

  • Цитувати

#10 2018-08-02 15:40:32

Re: Космические значения при использовании attachInterrupt. Тахометр

При такой-то смехотехнике — не удивительно.

ИСПОЛЬЗОВАНИЕ ДАТЧИКА ХОЛЛА С ARDUINO

В этой статье мы рассмотрим, как использовать модуль датчик холла совместно с Arduino. Датчик холла — это датчик, который меняет свой выходной потенциал (напряжение) в зависимости от присутствии или отсутствии магнитного поля. Это означает, что выходной сигнал датчика Холла является функцией плотности магнитного поля вокруг него. Когда плотность магнитного потока вокруг него превышает некоторое заранее выставленное пороговое значение, датчик обнаруживает его и меняет напряжение тока выхода для того чтобы показать присутствие магнитного поля.

Датчики эти в последнее время стали очень популярны и нашли много различных применений. Одним из мест популярных использований датчиков холла — в автомобильных схемах, где они используются для определения положения, измерения расстояния и скорости. Они также установлены в смартфоны и компьютеры, в разных переключателях где присутсвие магнитного поля использовано для того чтобы включить или выключить цепь питания.

По виду они обычно выглядят как плата с 3 контактами: один контакт сигнал и другие 2 для питания датчика. Это существенно упрощает подключение модуля к любому микроконтроллеру или исполнительной схеме.

В сегодняшнем материале Elwo.ru покажет, как работает датчик холла, подключив его вместе со светодиодом к Arduino блоку. Arduino будет запрограммирован таким образом, что, когда магнит приближается к датчику холла — светодиод включается, а когда магнит удаляется — он гаснет.

Схема принципиальная

Схема для этого проекта проста, так как все, что нам нужно сделать, это подключить 3 контакта датчика холла и светодиод к платформе Arduino. Соедините компоненты, как показано на схеме.

Датчик Холла — Ардуино

  • VCC — 5V
  • GND — GND
  • SIG — D2
Читать еще:  Всережимный регулятор оборотов дизельного двигателя

LED можно подсоединить сразу в Arduino с положительной ногой в pin 13 Arduino и другой ногой в земляной штырь без резистора, потому что arduino имеет внутренний резистор прикрепленный к pin 13.

Требуемые компоненты для схемы

Для построения этого проекта требуются следующие компоненты.

  • Датчик холла
  • Arduino Uno
  • LED
  • Магнит
  • Провода

Теперь можем перейти к коду для этого проекта.

Код прошивки МК

Код для этого проекта очень прост, так как все, что нужно сделать это проверить, ощущается ли магнитное поле, и если да — включается ли от него светодиод.

В функции настройки void мы объявляем pinmode для контактов Arduino, к которому подключены светодиод и датчик Холла.

Далее идет функция void loop, задача здесь как если бы надо было использовать кнопку для управления светодиодом с Arduino между ними. Читаем выход датчика холла и храним в переменной с именем state.

Полный код для этого проекта показан далее:

int hallSensorPin = 2;
int ledPin = 13;
int state = 0;

void setup() <
pinMode(ledPin, OUTPUT);
pinMode(hallSensorPin, INPUT);
>

Скопируйте код и загрузите его на плату Arduino. Вы должны увидеть переключение светодиода, когда магнит поднесен близко к датчику, показанному на фото.

Делаем бесконтактный лазерный тахометр на Arduino

Простой в сборке цифровой бесконтактный тахометр на Arduino позволяет измерять скорость вращения до 99,999 об/мин

Лазерный тахометр – прибор предназначенный для оперативного измерения частоты вращения (оборотов в единицу времени) различных вращающихся деталей и механизмов. Принцип работы такого тахометра основан на измерении частоты вращения с помощь лазерного луча, отраженного от контрастной маркерной ленты, наклеенной на движущийся предмет или вал. Стоимость подобных промышленных приборов достаточно высока даже для бюджетных вариантов. В статье мы рассмотрим вариант подобного прибора на Arduino, который не уступает по точности бюджетным промышленным приборам (Рисунок 1).

Рисунок 1.Бесконтактный лазерный тахометр на Arduino.

Для сборки тахометра понадобиться: плата Arduino Nano, модуль лазерного излучателя, модуль лазерного приемника (модуль лазерного датчика), модуль OLED дисплея 128×32 с интерфейсом I 2 C, тактовая кнопка, разъем для подключения 9-вольтового элемента питания типа «Крона».

Схема подключения модулей к плате Arduino изображена на Рисунке 2. Процессы сборки, подключения компонентов к плате Arduino, а также компоновки в корпусе, демонстрируются в видеоролике в конце статьи.

Рисунок 2.Схема лазерного тахометра на Arduino (подключение модулей к плате
Arduino Nano).

Примененный модуль лазерного излучателя (модуль лазерного диода) имеет номинальное напряжение питания 5 В; генерируемое излучение в диапазоне 650 нм мощностью 5 мВт (Рисунок 3). Потребляемый лазером ток составляет не более 40 мА, поэтому допустимо его подключение к выходу 5 V платы Arduino (выход встроенного в плату Arduino регулятора напряжения 5 В).

Рисунок 3.Модуль лазерного излучателя.

Модуль лазерного сенсора использует приемник немодулированного лазерного излучения, поэтому при измерениях рекомендуется избегать засветки сенсора ярким солнечным светом или другими источниками света (Рисунок 4). При попадании лазерного излучения на датчик (в нашем случае – отраженный лазерный луч) на его выходе «Out» появляется высокий уровень, в отсутствии засветки датчика на выходе фиксируется низкий логический уровень. Номинальное напряжение питания модуля лазерного приемника составляет 5 В. Также на плате модуля лазерного приемника установлен светодиод, индицирующий подачу питания.

Рисунок 4.Модуль лазерного датчика.

Примененный модуль OLED дисплея с разрешением 128×32 точки (на контроллере SSD1306) подключается к плате Arduino по интерфейсу I 2 C. Напряжение питания модуля дисплея равно 5 В (Рисунок 5).

Рисунок 5.Модуль OLED дисплея с интерфейсом I 2 C и разрешением
128×32 точки для лазерного тахометра.

Скетч Arduino доступен для скачивания в разделе загрузок. В скетче, помимо стандартных библиотек Arduino, используются библиотеки Adafruit_GFX.h и Adafruit_SSD1306.h для работы с OLED дисплеем. Если эти библиотеки не установлены в среде Arduino, их необходимо установить с помощью менеджера библиотек.

Читать еще:  Что означает модификация двигателя

Для прибора разработан корпус, проектные файлы для печати корпуса на 3D принтере доступны для скачивания в разделе загрузок. При сборке прибора автор в корпусе совместил модуль лазерного излучателя и приемника.

Видео сборки прибора и демонстрация работы

Как вы можете заметить в видеоролике, начиная с 4:40 самодельный лазерный тахометр показывает примерно те же значения, что и промышленный прибор, но с боле высокой частотой обновления значений на дисплее. Автор проекта в комментариях к видеоролику утверждает, что прибор позволяет измерять скорость до 99,999 об/мин.

Загрузки

  1. Проектные файлы корпуса
  2. Лазерный тахометр скетч Arduino

Перевод: Vadim по заказу РадиоЛоцман

Управление мотором Ардуино

В этом уроке мы рассмотрим как управлять обычным мотором постоянного тока при помощи Ардуино.

У вас наверняка есть такие моторчики дома от старых игрушек или машинок. Так давайте их используем, нечего им валяться без дела. И не важно на какое они напряжение 5 вольт или 12 вольт, главное что бы были постоянного тока, а не переменного.

Управлять будем с помощью Ардуино, а точнее с помощью ШИМ выводов которые есть на этих платах.
Можно конечно купить специальную плату-драйвер для управления моторами, но мы не будем этого делать, а обойдёмся только Ардуино.

В управлении мотором нет ничего сложного, надо только подключить мотор к выводу ШИМ, а потенциометр которым будем управлять, к аналоговому входу.

ШИМ – это Широтно-Импульсная Модуляция, или по другому PWM – Pulse-Width Modulation — процесс управления мощности методом пульсирующего включения и выключения прибора.

ШИМ выходов на платах Ардуино несколько.

На платах Arduino UNO такие выходы отмечены знаком тильда.
Выходы которые можно использовать как ШИМ — это 3, 5, 6, 9, 10, 11

У Arduino Mega они обозначаются как PWM со 2 по 13 пин и 44-46.

У Arduino NANO никаких обозначений на плате нет. Надо просто запомнить это 3, 5, 6, 9, 10, 11.
Точно так же как и у Ардуино УНО.

Подробнее про технологию ШИМ можно прочитать на моём сайте.
http://arduino-kid.ru/arduino_nano_pwm
Там описан принцип работы, а также некоторые ограничения которые надо знать. Например, при совместной работе с функцией tone().

Напрямую подключать моторы к Ардуино нельзя, так как они потребляют большой ток и могут питаться не 5 вольтами, а больше. Поэтому я подключил мотор через транзистор и параллельно мотору установил диод..

Описание скетчей.

Сегодня будет несколько скетчей.
Первый для управления скоростью вращения мотора. Управлять будем с помощью потенциометра. А в следующем уроке я покажу, как управлять вращением мотора программно. Плавно меняя скорость вращения.
Во втором мы объединим то что делали в двух последних уроках.
Это используем датчик ХОЛЛА и индикатор TM1637 для подсчёта оборотов вращения.
Короче сделаем тахометр на Ардуино. А для любителей велоспорта это прям почти готовый проект для определения скорости по количеству оборотов.
На мотор я приклеил магнит, а напротив установил датчик ХОЛЛА. И каждый раз когда магнит находится рядом с датчиком, датчик посылает сигнал на Ардуино и выводит значения на индикатор TM1637.

Как подключить мотор к Ардуино я показал на видео.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector