Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Высокоскоростной тахометр на Arduino: новый алгоритм измерения RPM до 2 знаков после запятой

Компоненты и материалы

Arduino UNO 1
ИК-датчик приближенности (рекомендуемый в проекте) 1
Перемычки 3
Лазерный диод 655 нм (красный) 1
DC-мотор (для тестов) 1
USB-кабель (Mini-USB) 1
Крона 9V 1

Инструменты

Припой без свинца
Паяльник (только для пайки проводов к мотору)

Приложения и сервисы

Arduino IDE

О проекте

Высокоскоростной тахометр на Arduino: новый алгоритм измерения RPM до 2 знаков после запятой

Проект разработан с нуля для точного измерения RPM (об/мин) различных моторов с помощью одного ИК-датчика, Arduino и ключевого ингредиента — красного лазерного указателя.

ИК-датчик улавливает слабое ИК-излучение красного лазера. Синий/зелёный лазер даёт слишком мало ИК — напряжение падает до ~0.

Когда лопасть вентилятора на валу мотора перекрывает луч, показание падает до 0. Лопасть вращается — периодическое перекрытие. Когда путь свободен — луч снова попадает на датчик.

НОВЫЙ АЛГОРИТМ «SINGLE SHOT DETECTION» ДЛЯ БЫСТРЫХ И ТОЧНЫХ ИЗМЕРЕНИЙ

Код использует уникальный алгоритм, измеряющий RPM за <40 мс с высокой точностью. Ключевая особенность — Single Shot Detection для Arduino.

Программа вычисляет RPM каждый раз, когда лопасть перекрывает луч. Перекрытие = 1/n оборота (n — число лопастей). Поэтому алгоритм чуток реагирует на малейшие изменения RPM (до 0.01) на каждом 1/n обороте. Это даёт экстремально точные значения и высокую чувствительность.

Высокоскоростной тахометр на Arduino: новый алгоритм измерения RPM до 2 знаков после запятой

На скриншоте Serial Monitor видно: частота обновления ~2 раза в сек, RPM с двумя знаками после запятой.

Попробуйте проект, делитесь результатами и идеями в комментариях. Если понравилось — уважайте труд автора.

Профиль: @YASH36 — новые проекты.

Берегитесь и наслаждайтесь Arduino!!

Код

RPM_counter_101 (Arduino)

// code by YaSh
int sen = A0;
const float wid = 0.012; // ширина лопасти (м), подстройте под свой вентилятор
const float rad = 0.045; // радиус точки детектирования (м)
const float konst = 6.2832; // 2*PI
float time_1, time_2, vel, diff, tnet, rpm;

void setup() {
  Serial.begin(9600);
  pinMode(sen, INPUT);
  Serial.print(" \n please start the motor at least 3 seconds prior.\n");
  delay(3000);
}

void loop() {
  if (analogRead(sen) < 950) {
    time_1 = millis();
    delay(30);
  }
  if (analogRead(sen) > 950) {
    time_2 = millis();
    diff = (time_2 - time_1);
    vel = wid / diff; // угловая скорость
    tnet = (konst * rad) / vel; // время полного оборота
    rpm = 60000 / tnet; // мс -> мин -> RPM
  }
  Serial.print("\n The rpm is: ");
  Serial.println(rpm);
}

Схемы

Размещение базы и компонентов:

Высокоскоростной тахометр на Arduino: новый алгоритм измерения RPM до 2 знаков после запятой

Схема подключения датчика к Arduino:

Высокоскоростной тахометр на Arduino: новый алгоритм измерения RPM до 2 знаков после запятой

Производственный процесс

  1. Создайте автоматизированную аэропоническую систему с Raspberry Pi и датчиком влажности
  2. Интеграция термопары с Arduino Portenta H7 через MAX6675
  3. Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
  4. Проект с датчиком DHT11: индикация температуры светодиодами и пьезо-динамиком на Arduino
  5. Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
  6. Unopad: Бесшовный Arduino MIDI-контроллер для Ableton Live
  7. Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
  8. Умная банка на ESP8266 + Arduino: мониторинг наполненности в реальном времени
  9. Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
  10. Клеточный автомат «Жизнь» Конвея на Arduino Nano с OLED 128x64