Тахометр на Ардуино с оптическим датчиком
Для расчёта некоторых механизмов мне нужен тахометр. Например для расчёта скорости движения робота-пылесоса нужно знать скорость вращения электромотора и исходя из этого рассчитать передаточное число редуктора.
Тахометр я решил сделать на Ардуино, это конечно финансово и трудозатратно, но очень интересно, плюс свобода разработки. Быстрее и проще купить тахометр в Китае. Если вы всё же решитесь повторить мой проект, то вот вам список деталей для самодельного тахометра:
Arduino pro mini, или другие версии
Оптический инфракрасный датчик
OLED дисплей 0,96 дюйма или любой другой, что понравится
Кнопка питания (слайдер)
USB-разъём для зарядки аккумулятора
Li-ion аккумулятор, можно от старого мобильного телефона
Провода
Сначала я конечно же искал в Интернете самодельные тахометры на Ардуино, мне попался проект тахометра Алекса Гайвера. Загрузив прошивку я начал тестировать устройство, периодически в мониторе порта проскакивали отрицательные значения или показывало слишком завышенные обороты до миллиона единиц. Я думал что глюки связаны с моим датчиком, пробовал переписывать прошивку по своему, но результат всегда был один. Есть в Интернете проекты на этой прошивке, но у меня она почему-то не пошла.
В процессе набивания шишек с прошивкой, я придумал как написать свою. По началу ничего не выходило вообще, но потом все переменные стали на свои места и тахометр заработал как положено. Код прошивки получился очень простой.
В качестве экранчика я использовал маленький OLED-дисплей, на нем можно вместить много цифр. Питается устройство от аккумулятора старого мобильного, заряжается как телефон через USB-разъём. Железо получилось компактное, для него я смоделировал корпус и распечатал на 3д принтере.
Тахометр можно дополнить кнопками для задания количества лопастей на измеряемых вентиляторах, тогда не нужно будет вычислять на калькуляторе фактическое количество оборотов в минуту. Можно добавить кнопку для запоминания максимальных оборотов. На Ардуино используется всего несколько пинов, поэтому устройство можно дополнить множеством дополнительных функций. Также на экран можно выводить больше информации, установленный дисплей позволяет это делать. Вобщем тут есть пространство для творчества.
Наконец, я перемерил этим тахометром всё, что в доме вращается, моторчики, шуруповерт, миксер, колесо у заводной машинки, прибор очень интересный, игрушка для разработчика :)
Скачать скетч Тахометра и STL-файлы
Добавлю ещё чужое видео, которое мне помогло подключить экранчик к Ардуино.
Немного про подключение OLED LCD модуля к ардуино и работу с библиотекой OLED_I2C, вывод элементарной графики и текста.
Написать комментарий
КОММЕНТАРИИ
НАПИСАТЬ КОММЕНТАРИЙ
-
Узнайте, как сделать бумажные самолетики с помощью этих простых инструкций.Александра 05.02.2021
-
Эту лампу я отыскал на просторах англоязычного Интернета. Автор нашёл очень интересную идею создания такой лампы в игрушках фанерных динозавров.Дмитрий ДА 03.01.2010
-
Я собрал для вас коллекцию видеороликов с игрушками катающихся шариков, такие забавы интересны и детям и взрослым.
Дмитрий ДА 01.12.2009
Была такая же нужда - тахометр для измерения оборотов движков для моделей самолетов. Шел вашим путем, гайверовский тахометр тоже не пошёл с вашими же глюками. всё аналогично. Слепил ещё один на 1602, вообще не завелся, времени не было со скетчами разбираться, тоже начал своё лепить и тут ваш проект увидел и он пошел. Измеряет обороты до 32270, далее меняет знак на минус и начинает обороты уменьшать. Жаль нечем проверить точность тахометра, но вроде где-то более-менее правильно показывает. Налепил на свето-фото диоды густой красный светофильтр - работать стал намного лучше, внешняя засветка перестала мешать. Спасибо Вам за вашу приблуду - мне помогла.
ОтветитьАндрей, спасибо!
ОтветитьДанные будут точнее, чем больше период измерения, например если поставим 5 сек, то прибор будет в течение 5 сек считать обороты, а потом сделает расчёты. Может не всегда удобно держать прибор 5 сек на моторе, но зато данные более точные. Можно дополнительную кнопку сделать для переключения времени измерения 1-3-5-10 сек.
Дмитрий, подскажите чайнику, в какой строке скетча я должен изменить период измерения для повышения точности. Прошу привести эту строку целиком. Буду очень признателен!
Ответитьif(millis() - last_time > 1000) // обновлять раз в секунду
ОтветитьВ этой строке 1000 - это одна секунда, поставьте 2-3-5 секунд, тогда в течение этого времени прошивка будет считать обороты, а потом выдаст данные на экран.
Дмитрий, огромное Вам спасибо за оперативность! Дай Бог Вам всего, что Вы желаете!
ОтветитьДобрый день! А можно тахометр приспособить, чтобы не только измерял, но и поддерживал нужные обороты? Спасибо
ОтветитьМожно конечно. Проверяете в скетче обороты и если они ниже какого-то заданного числа, то включаете некий пин, который управляет нагрузкой. Например, можно поставить транзистор и подавать на него ШИМ в зависимости от количества оборотов мотора, которым управляет этот транзистор..
ОтветитьДобрый день! Как изменить скетч для олед 128*32 дисплея? для четырех циферок после двух-запятая? спасибо
ОтветитьЕсли я вас правильно понял, нужно количество цифр увеличить.
ОтветитьДисплей такой же, только размер больше?
вот такой модуль https://aliexpress.ru/item/1005004572487969.html?spm=a2g2w.orderdetail.0.0.1f574aa6YNxfI5&sku_id=12000029674573174
Ответитьвид 33,35 об/мин или RPM
еще вопрос - как добавить кнопку для достижения нужных оборотов?
дисплей, наоборот, меньше. вид информации такой 33,35 об/мин
Ответить"Можно конечно. Проверяете в скетче обороты и если они ниже какого-то заданного числа, то включаете некий пин, который управляет нагрузкой. Например, можно поставить транзистор и подавать на него ШИМ в зависимости от количества оборотов мотора, которым управляет этот транзистор.." можно схему и скетч? спасибо!