ВНИМАНИЕ!
Если вы не знаете, куда подключить Arduino, где взять программу для прошивки, как установить драйвера, как всё настроить и как устанавливать библиотеки – читайте статейку “Первые шаги с Arduino”, ссылка справа от этого текста. Там же разобраны типичные ошибки, описаны варианты питания и есть краткий FAQ.
- 3 цифровой пин используется как источник питания (+5В) для датчика Холла. Для этого в setup() прописано подать сигнал высокого уровня на 3 пин.
- 2 пин принимает прерывания. Для нано и уно это 2 и 3 пины, и при объявлении прерывания она называются соответственно 0 и 1 (0 это второй, 1 это третий)
- 3 цифровой пин используется как источник питания (+5В) для датчика Холла. Для этого в setup() прописано подать сигнал высокого уровня на 3 пин.
- 2 пин принимает прерывания. Для нано и уно это 2 и 3 пины, и при объявлении прерывания она называются соответственно 0 и 1 (0 это второй, 1 это третий)
-
Библиотека разархивируется в папку
- Поковырявшись в библиотеке, можно найти управление яркостью дисплея
- 3 цифровой пин используется как источник питания (+5В) для датчика Холла. Для этого в setup() прописано подать сигнал высокого уровня на 3 пин.
- 2 пин принимает прерывания. Для нано и уно это 2 и 3 пины, и при объявлении прерывания она называются соответственно 0 и 1 (0 это второй, 1 это третий)
- Функция map – преобразует диапазон частот вращения (в примере от 0 до 1500) в диапазон угла поворота сервомашинки (в примере от 0 до 180 – максимально возможный для сервы)
- 3 цифровой пин используется как источник питания (+5В) для датчика Холла. Для этого в setup() прописано подать сигнал высокого уровня на 3 пин.
- 2 пин принимает прерывания. Для нано и уно это 2 и 3 пины, и при объявлении прерывания она называются соответственно 0 и 1 (0 это второй, 1 это третий)
Тахометр собранный с использованием датчика линии прост в подключении. Вам не нужно вносить конструктивные изменения в деталь, скорость вращения которой требуется измерить: сверлить отверстия, делать прорези, устанавливать дополнительные элементы и т.д. Достаточно нанести на неё контрастную линию (чёрную на светлой поверхности или белую на тёмной) и поднести датчик линии, Вы сразу получите точный результат, количество оборотов в минуту. Скетч не нуждается в корректировке, независимо от того, какого цвета будет линия.
Нам понадобится:
- Arduino х 1шт.
- Trema-модуль Аналоговый датчик линии х 1шт.
- Trema-модуль Четырехразрядный LED индикатор х 1шт.
- Trema Shield х 1шт.
Для реализации проекта нам необходимо установить библиотеку:
- Библиотека iarduino_4LED (для работы с четырёхразрядным LED индикатором).
О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE.
Видео:
Схема подключения:
LED индикатор подключается к любым двум выводам Arduino (как цифровым, так и аналоговым), номера указываются в скетче. Датчик линии подключается к любому аналоговому входу, номер указывается в скетче.
В данном уроке, LED индикатор подключён к цифровым выводам 2 и 3, а датчик линии подключён к аналоговому входу A0.
Алгоритм работы:
- Вывод информации на LED индикатор осуществляется только в момент перехода датчика линии со светлого на тёмное поле.
- Первой строкой функции loop, проверяем не находится ли датчик линии на тёмном поле, если это так, то …
- Выводим количество оборотов в минуту на LED индикатор (если не зафиксировано переполнение millis) и сохраняем время перехода
- Выполняем цикл while до тех пор, пока датчик линии не покинет тёмное поле. Благодаря чему предыдущая операция выполняется только 1 раз, за всё время нахождения датчика на тёмном поле.
- Если датчик находится на тёмном или светлом поле, дольше 6 секунд, то выводим надпись «STOP» (эти строки можно убрать, если количество оборотов Вашего устройства ниже 10 в минуту).
Код программы:
скачать
Ссылки:
- Код программы
- Библиотека iarduino_4LED.
- Wiki — Установка библиотек в Arduino IDE.
- Wiki — Четырёхразрядный индикатор (Trema-модуль).
- Wiki — Датчик линии, аналоговый.
- Wiki — Trema Shield.
Тахометр представляет собой счетчик числа оборотов в минуту (RPM counter). Существует два типа тахометров: механические и цифровые.
Общие принципы работы проектируемого тахометра
В этом проекте мы будем создавать цифровой тахометр на основе платы Arduino и модуля инфракрасного датчика для обнаружения вращения и подсчета числа оборотов любого вращающегося объекта. Принцип его действия основан на том, что инфракрасный передатчик излучает инфракрасные лучи которые затем отражаются обратно к инфракрасному приемнику и затем инфракрасный модуль генерирует импульс на своем выходе который обнаруживается контроллером Arduino когда мы нажимаем кнопку start. Он осуществляет счет в течение 5 секунд.
После этих 5 секунд плата Arduino рассчитывает число оборотов в минуту по следующей формуле.
RPM= Count x 12 для одиночного вращающегося объекта.
Но поскольку в этом проекте для демонстрации работы схемы мы используем потолочный вентилятор, то мы должны внести некоторые изменения в приведенную формулу:
Обобщенная структурная схема работы устройства представлена на следующем рисунке.
Необходимые компоненты
Работа схемы
Схема устройства представлена на следующем рисунке.
Схема содержит плату Arduino Pro Mini, модуль инфракрасного датчика и ЖК дисплей. Плата Arduino управляет всем процессом функционирования устройства: считывание импульса с выхода модуля инфракрасного датчика, вычисление частоты вращения (в оборотах в минуту) и передача значения этой частоты на ЖК дисплей. Инфракрасный датчик используется для обнаружения объекта. Мы можем регулировать чувствительность данного датчика с помощью встроенного в него потенциометра. Модуль инфракрасного датчика состоит из инфракрасного передатчика и фотодиода, который обнаруживает инфракрасные лучи. Инфракрасный передатчик излучает инфракрасные лучи, когда эти лучи падают на поверхность, они отражаются от нее и улавливаются фотодиодом (более подробно об этих процессах можно прочитать в статье про робота, движущегося вдоль линии). Выход фотодиода подключен к компаратору, который сравнивает значение с выхода фотодиода с опорным напряжением и результат сравнения выдает на плату Arduino.
Выход модуля инфракрасного датчика напрямую подключен ко контакту 18 (A4) Arduino. Vcc и GND подсоединены к контактам Vcc и GND arduino. ЖК дсиплей подключен к плате Arduino в 4-битном режиме. Его управляющие контакты RS, RW и En напрямую подсоединены к контактам 2, GND и 3 Arduino. Контакты данных D4-D7 подключены к контактам 4, 5, 6 и 7 Arduino. В схеме также присутствует кнопка, которую необходимо нажать для подсчета числа оборотов. Наш тахометр на основе платы Arduino подсчитывает число оборотов в течение 5 секунд а потом по вышеприведенной формуле осуществляет пересчет этого значения в число оборотов в минуту. Кнопка подключена к контакту 10 Arduino.
Исходный код программы
В программе мы будем использовать функцию чтения значения с цифрового контакта Arduino чтобы считать значение с выхода модуля инфракрасного датчика. На основе этого считанного значения мы затем будем осуществлять расчет числа оборотов в минуту.
Далее представлен полный текст программы.
#include // подключение библиотеки для работы с ЖК дисплеем LiquidCrystal lcd(3, 2, 4, 5, 6, 7); // контакты, к которым подключен ЖК дисплей #define sensor 18 // контакт, к которому подключен модуль инфракрасного датчика #define start 10 // контакт, к которому подключена кнопка int delay1() { //unsigned int long k; int i,j; unsigned int count=0; for(i=0;i<1000;i++) {j=0;j<1227;j++) { if(dRead(sensor)) { count++; while(digitalRead(sensor)); } } } return count; } void setup() { pinMode(sensor, INPUT); pinMode(start, INPUT); pinMode(13, OUTPUT); lcd.begin(16, 2); lcd.print("Techometer"); lcd.setCursor(0,1); lcd.print("Circuit Digest"); delay(2000); digitalWrite(start, HIGH); } void loop() { unsigned int time=0,RPM=0; lcd.clear(); lcd.print(" Please Press "); lcd.setCursor(0,1); lcd.print("Button to Start "); while(digitalRead(start)); lcd.clear(); lcd.print("Reading RPM....."); time=delay1(); lcd.clear(); lcd.print("Please Wait....."); RPM=(time*12)/3; delay(2000); lcd.clear(); lcd.print("RPM="); lcd.print(RPM); delay(5000); }
Видео, демонстрирующее работу схемы
421 просмотровИспользуемые источники:
- https://alexgyver.ru/source_tahometer/
- https://lesson.iarduino.ru/page/urok-29-tahometr-opredelyaem-skorost-vrascheniya-pri-pomoschi-datchika-linii/
- https://microkontroller.ru/arduino-projects/tahometr-na-arduino/