Оглавление:

Измерение скорости двигателя с помощью Arduino: 6 шагов
Измерение скорости двигателя с помощью Arduino: 6 шагов

Видео: Измерение скорости двигателя с помощью Arduino: 6 шагов

Видео: Измерение скорости двигателя с помощью Arduino: 6 шагов
Видео: Управление моторами с Arduino 2024, Ноябрь
Anonim
Измерение скорости двигателя с помощью Arduino
Измерение скорости двигателя с помощью Arduino
Измерение скорости двигателя с помощью Arduino
Измерение скорости двигателя с помощью Arduino
Измерение скорости двигателя с помощью Arduino
Измерение скорости двигателя с помощью Arduino

Сложно ли измерить обороты мотора ??? Я так не думаю. Вот одно простое решение.

Только один ИК-датчик и Arduino в вашем комплекте могут это сделать.

В этом посте я дам простое руководство, объясняющее, как измерять обороты любого двигателя с помощью ИК-датчика и Arduino UNO / nano.

Запасы:

1. Arduion uno (Amazon) / Arduion nano (Amazon)

2. ИК-датчик (Amazon)

3. Двигатель постоянного тока любой (Amazon)

4. LCD 16 * 2 (Amazon)

Используемые инструменты

1. Паяльник (Amazon)

2. Инструмент для зачистки проводов (Amazon)

Шаг 1: Шаг: 1 Убедитесь, что датчики и устройства работают в рабочем состоянии

Что такое ИК-датчик? ИК-датчик - это электронное устройство, которое излучает свет, чтобы ощущать какой-либо объект в окружающей среде. Инфракрасный датчик может измерять температуру объекта, а также обнаруживать движение. Обычно в инфракрасном спектре все объекты излучают тепловое излучение в той или иной форме. Эти типы излучения невидимы для наших глаз, но инфракрасный датчик может их обнаружить.

Что такое двигатель постоянного тока? Двигатель постоянного тока (DC) - это тип электрической машины, которая преобразует электрическую энергию в механическую. Двигатели постоянного тока получают электроэнергию через постоянный ток и преобразуют эту энергию в механическое вращение.

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

Что такое Ардуино?

Arduino - это электронная платформа с открытым исходным кодом, основанная на простом в использовании аппаратном и программном обеспечении. Платы Arduino могут считывать входные данные - свет на датчике, палец на кнопке или сообщение Twitter - и превращать его в выход - активировать двигатель, включать светодиод, публиковать что-то в Интернете. Вы можете указать своей плате, что делать, отправив набор инструкций микроконтроллеру на плате. Для этого вы используете язык программирования Arduino (на основе проводки) и программное обеспечение Arduino (IDE), основанное на обработке.

Скачать ARDUINO IDE

Шаг 2: как это работает?

Так в чем же логика этого ??

Он работает очень похоже на кодировщик. Энкодеры сложно понять новичкам. Все, что вам нужно знать, это то, что ИК-датчик генерирует импульс, и мы выясняем временной интервал между каждым импульсом.

В этом случае ИК-датчик отправит импульс на Arduino, когда его ИК-луч будет перехвачен пропеллерами двигателей. Обычно мы используем гребные винты с двумя лопастями, но я использовал гребной винт с тремя лопастями, как показано на рисунке. в зависимости от количества лопастей гребного винта нам необходимо изменить некоторые значения при расчете оборотов.

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

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

Существует несколько способов решения проблемы, но мы должны выбрать, какой из них лучше всего в этих кодах. Я измерил продолжительность между прерываниями (ИК-датчик). Я использовал функции micros () для измерения длительности импульсов в микросекундах.

вы можете использовать эту формулу для измерения RPMRPM = ((1 / продолжительность) * 1000 * 1000 * 60) / лезвия

где, длительность - временной интервал между импульсами.

60 - секунд в минуты

1000 - мельница в сек

1000 - микроволны в мельницу

лопасти - нет крыльев в винте.

ЖК-дисплей - Arduino обновляет регистры команд и данных ЖК-дисплея. Которая отображает символы ASCII на ЖК-дисплее.

Шаг 3: запрограммируйте свой Arduino с помощью Arduino IDE

#включают

ЖК-дисплей LiquidCrystal (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // ИК-датчик INPUT unsigned long prevmicros; // Для хранения времени unsigned long duration; // Для сохранения разницы во времени unsigned long lcdrefresh; // Для сохранения времени обновления ЖК-дисплея int rpm; // значение RPM boolean currentstate; // Текущее состояние сканирования ИК-входа boolean prevstate; // Состояние ИК-датчика при предыдущем сканировании void setup () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LOW; } void loop () {//////////////////////////////////////////// ///////////////////////////////////// Измерение оборотов currentstate = digitalRead (IR_IN); // Считываем состояние ИК-датчика if (prevstate! = Currentstate) // Если есть изменение на входе {if (currentstate == LOW) // Если только вход меняется с HIGH на LOW {duration = (micros () - prevmicros); // Разница во времени между оборотами в микросекундах rpm = ((60000000 / duration) / 3); // об / мин = (1 / время миллис) * 1000 * 1000 * 60; prevmicros = micros (); // запоминаем время для вычисления числа оборотов}} prevstate = currentstate; // сохраняем данные этого сканирования (предыдущего сканирования) для следующего сканирования ///////////////////////////////////// /////////////////////////////////////////////// ЖК-дисплей, если ((millis () - lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print («Скорость мотора»); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (об / мин); lcdrefresh = миллис (); }}

Шаг 4: Моделирование с использованием Proteus

Моделирование с использованием Proteus
Моделирование с использованием Proteus

Этот проект работал отлично, когда я пытался смоделировать его с помощью proteus.

Вместо использования ИК-датчика я использовал генератор импульсов постоянного тока, который имитировал ИК-импульс, подобный тому, который генерируется, когда ИК-лучи попадают на лопасти гребного винта.

вам необходимо внести изменения в свою программу в зависимости от используемого вами датчика

ИК-датчик с LM358 должен использовать эту команду.

if (currentstate == HIGH) // Если ввод меняется только с LOW на HIGH

ИК-датчик с LM359 должен использовать эту команду.

if (currentstate == LOW) // Если только ввод меняется с ВЫСОКОГО на НИЗКИЙ

Шаг 5: аппаратное выполнение

Аппаратное исполнение
Аппаратное исполнение
Аппаратное исполнение
Аппаратное исполнение
Аппаратное исполнение
Аппаратное исполнение

Для схемы используйте изображения моделирования или обратитесь к программным кодам и выполните соответствующие соединения. Загрузите программный код в Arduino и измерьте обороты любого двигателя. Следите за моей следующей публикацией и смотрите мой канал на YouTube.

Рекомендуемые: