Load Загрузка

Тахометр на Ардуино с оптическим датчиком

Тахометр на Ардуино с оптическим датчиком

Для расчёта некоторых механизмов мне нужен тахометр. Например для расчёта скорости движения робота-пылесоса нужно знать скорость вращения электромотора и исходя из этого рассчитать передаточное число редуктора.

Тахометр я решил сделать на Ардуино, это конечно финансово и трудозатратно, но очень интересно, плюс свобода разработки. Быстрее и проще купить тахометр в Китае. Если вы всё же решитесь повторить мой проект, то вот вам список деталей для самодельного тахометра:

Arduino pro mini, или другие версии
Оптический инфракрасный датчик
OLED дисплей 0,96 дюйма или любой другой, что понравится
Кнопка питания (слайдер)
USB-разъём для зарядки аккумулятора
Li-ion аккумулятор, можно от старого мобильного телефона
Провода

Сначала я конечно же искал в Интернете самодельные тахометры на Ардуино, мне попался проект тахометра Алекса Гайвера. Загрузив прошивку я начал тестировать устройство, периодически в мониторе порта проскакивали отрицательные значения или показывало слишком завышенные обороты до миллиона единиц. Я думал что глюки связаны с моим датчиком, пробовал переписывать прошивку по своему, но результат всегда был один. Есть в Интернете проекты на этой прошивке, но у меня она почему-то не пошла.

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

Тахометр на Ардуино с оптическим датчиком

В качестве экранчика я использовал маленький OLED-дисплей, на нем можно вместить много цифр. Питается устройство от аккумулятора старого мобильного, заряжается как телефон через USB-разъём. Железо получилось компактное, для него я смоделировал корпус и распечатал на 3д принтере.

Тахометр на Ардуино с оптическим датчиком

Тахометр можно дополнить кнопками для задания количества лопастей на измеряемых вентиляторах, тогда не нужно будет вычислять на калькуляторе фактическое количество оборотов в минуту. Можно добавить кнопку для запоминания максимальных оборотов. На Ардуино используется всего несколько пинов, поэтому устройство можно дополнить множеством дополнительных функций. Также на экран можно выводить больше информации, установленный дисплей позволяет это делать. Вобщем тут есть пространство для творчества.

Наконец, я перемерил этим тахометром всё, что в доме вращается, моторчики, шуруповерт, миксер, колесо у заводной машинки, прибор очень интересный, игрушка для разработчика :)

Скачать скетч Тахометра и STL-файлы

Добавлю ещё чужое видео, которое мне помогло подключить экранчик к Ардуино.

Немного про подключение OLED LCD модуля к ардуино и работу с библиотекой OLED_I2C, вывод элементарной графики и текста.


shadow
Дмитрий ДА Опубликовал статью: Дмитрий ДА
Дата: 12.10.2020


shadow


shadow

КОММЕНТАРИИ

  • Андрей№1 | 11.03.2023 10:55

    Была такая же нужда - тахометр для измерения оборотов движков для моделей самолетов. Шел вашим путем, гайверовский тахометр тоже не пошёл с вашими же глюками. всё аналогично. Слепил ещё один на 1602, вообще не завелся, времени не было со скетчами разбираться, тоже начал своё лепить и тут ваш проект увидел и он пошел. Измеряет обороты до 32270, далее меняет знак на минус и начинает обороты уменьшать. Жаль нечем проверить точность тахометра, но вроде где-то более-менее правильно показывает. Налепил на свето-фото диоды густой красный светофильтр - работать стал намного лучше, внешняя засветка перестала мешать. Спасибо Вам за вашу приблуду - мне помогла.

    Ответить
  • Дмитрий ДА
    Дмитрий ДА№2 | 11.03.2023 11:40
    Ответ для Андрей на комментарий: Была такая же нужда - тахометр для измерения оборотов движков для моделей самолетов. Шел вашим путем

    Андрей, спасибо!
    Данные будут точнее, чем больше период измерения, например если поставим 5 сек, то прибор будет в течение 5 сек считать обороты, а потом сделает расчёты. Может не всегда удобно держать прибор 5 сек на моторе, но зато данные более точные. Можно дополнительную кнопку сделать для переключения времени измерения 1-3-5-10 сек.

    Ответить
  • Griny
    Griny№3 | 30.04.2023 12:22

    Дмитрий, подскажите чайнику, в какой строке скетча я должен изменить период измерения для повышения точности. Прошу привести эту строку целиком. Буду очень признателен!

    Ответить
  • Дмитрий ДА
    Дмитрий ДА№4 | 30.04.2023 12:36
    Ответ для Griny на комментарий: Дмитрий, подскажите чайнику, в какой строке скетча я должен изменить период измерения для повышения

    if(millis() - last_time > 1000) // обновлять раз в секунду

    В этой строке 1000 - это одна секунда, поставьте 2-3-5 секунд, тогда в течение этого времени прошивка будет считать обороты, а потом выдаст данные на экран.

    Ответить
  • Griny
    Griny№5 | 30.04.2023 21:01
    Ответ для Дмитрий ДА на комментарий: if(millis() - last_time > 1000) // обновлять раз в секунду В этой строке 1000 - это одна секун

    Дмитрий, огромное Вам спасибо за оперативность! Дай Бог Вам всего, что Вы желаете!

    Ответить



НАПИСАТЬ КОММЕНТАРИЙ

Ваше имя

Ваш e-mail



Shadow

  • Как сделать сюрикен из бумаги
    Сюрикены из бумаги — забавные летающие звездочки, похожие на оружие японских ниндзя. Как же сделать сюрикен из бумаги? С помощью нашей пошаговой схемы это получится очень легко, даже у тех, кто не знаком с оригами.
    Александра 23.04.2020
  • Как вырастить манго из косточки в домашних условиях
    Манго довольно просто вырастить в домашних условиях из косточки, главное соблюдать правила ухода и поддерживать необходимые условия. Манго можно содержать в квартире как необычное декоративное растение. 
    Александра 22.10.2021
  • Складывание четырёхлучевой снежинки
    Сложить и вырезать снежинку с четырьмя лучами это просто, смотрите или качайте видеоролик.
    Дмитрий ДА 14.11.2009
Вверх ⇒
Страница сгенерирована за 0,060203075408936 сек.
SQL-запросов: 6
Памяти использовано: 497 kB.