Блок с датойБлок с временемБлок с возрастом сайта
Mr.ALB

    Анатолий Беляев (aka Mr.ALB). Персональный сайт

    Да пребудут с вами Силы СВЕТА!

     

    Тахометр(RPM meter)

    Тахометр - RPM meter

    Разработка программы тахометра (RPM meter). Полезная штучка для измерения оборотов вращения чего угодно, хоть шуруповёрта, хоть каких-то двигателей и т.п.


    Описание

    Тахометр представляет собой тот же счётчик импульсов за определённый период. К примеру, определяем число импульсов с датчика за секунду и умножив на 60 секунд получаем число импульсов за минуту. Если на один оборот имеем один импульс с датчика, то число импульсов за минуту и будет число оборотов за минуту. Если с датчика приходит какое-то другое число импульсов за один оборот, то нужно общее число полученных импульсов за минуту разделить на число импульсов за оборот.

      rpm = (nn / n) * 60;  // Обороты в минуту
      
      где:
        nn - число импульсов за секунду
        n  - число импульсов на оборот
    

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

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


    Схема

    Из выше описанных требований создаём схему. Датчик Холла используем A3144E, он реагирует только на северный полюс магнита, это удобно. На выходе этого датчика открытый коллектор, поэтому ему нужен нагрузочный резистор. Этот резистор используем в самом микроконтроллере. Тогда можно вывод 3 датчика непосредственно подключить ко входу микроконтроллера D2 (INT0).

    Вывод информации на OLED SSD1306 128*64 I2C. Небольшой удобный дисплей, минимум проводов для подключения. Adruino Nano можно заменить на подобные с микроконтроллером ATMega328P, однако в будущем возможно заменить на какой-нибудь простенький микроконтроллер типа CH32V003x, у которых 16кБ флэш памяти.

    Схема электрическая принципиальная
    Pic 1. Схема электрическая принципиальная

    Описание программы

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

    Управление осуществляется всего одной кнопкой SB1. Если нажать и удерживать больше 5 секунд, то программа переходит в режим настройки. Экран включается в инверсный режим. Теперь нажимая на кнопку короткими нажатиями можно увеличивать делитель. Максимальное число импульсов на оборот 30 (если нужно больше, то изменить в строчке 036). Далее сброс на 1 и так по кругу. После установки нужного числа делителя, через 5 секунд бездействия программа возвращается в режим измерения.

    Ниже на фото начальный экран. Входных импульсов нет. Делитель равен 1.

    Управление
    Pic 2. Управление

    Если удерживать кнопку 5 секунд, то экран переходит в инверсию.

    Управление
    Pic 3. Управление

    Далее нажатием кнопки устанавливаем делитель равный 4.

    Управление
    Pic 4. Управление

    Через 5 секунд бездействия, экран переходит в обычный вид. Делитель установлен на 4. Это значение запоминается в EEPROM.

    Управление
    Pic 5. Управление

    С датчика поступают импульсы. Определено 960 об/мин.

    Управление
    Pic 6. Управление

    В режиме измерения короткое нажатие на кнопку SB1 вызывает режим удерживания [Hold] последнего значения. Удобно. Следующее нажатие снимает удерживание значения.

    Управление
    Pic 7. Управление


    Конструкция

    Пока законченной конструкции нет. В процессе обдумывания...

    Проект в стадии разработки, возможны какие-то изменения и доработки...



    Приложение

    Все, что необходимо для повторения конструкции, можно скачать по ссылкам:


    Спасибо за внимание!
    Анатолий Беляев

    . Mr.ALB
    Предыдущая страница Страница 44 Далее