Сборка точного измерительного колеса на Arduino Nano и вращательном энкодере
Компоненты и материалы
- Arduino Nano R3 — 1 шт.
- ЖК-дисплей 16×2 (синий на белом) — 1 шт.
- Вращательный энкодер с кнопкой — 1 шт.
- Потенциометр 10 кОм — 1 шт.
- Резистор 220 Ом — 1 шт.
Инструменты
- Паяльник.
Программное обеспечение
- Arduino IDE.
О проекте
Измерительное колесо (колёсный тахометр) определяет пройденное расстояние по вращению колеса. Энкодер считает импульсы за оборот. Расстояние за шаг = 2πR / N, где R — радиус колеса, N — импульсов на оборот (зависит от энкодера, 8–48). Результат выводится на LCD в сантиметрах. Код прост и настраивается под используемые компоненты. В примере корпус напечатан на 3D-принтере, ось — алюминиевый стержень.
Код
/* Measuring Wheel by Mirko Pavleski */
#include <LiquidCrystal.h>
LiquidCrystal lcd(5, 6, 7, 8, 9, 10);
int pin1 = 2, pin2 = 3;
int Pos = 0, State, LastState;
const float pi = 3.14;
const float R = 3.25; // радиус см
const int N = 40; // импульсов на оборот
float distance = 0;
void setup() {
pinMode(pin1, INPUT_PULLUP);
pinMode(pin2, INPUT_PULLUP);
lcd.begin(16, 2);
lcd.print("MEASURING WHEEL");
LastState = digitalRead(pin1);
}
void loop() {
State = digitalRead(pin1);
if (State != LastState) {
if (digitalRead(pin2) != State) Pos++;
else Pos--;
}
distance = ((2 * pi * R) / N) * Pos;
lcd.setCursor(0, 1);
lcd.print(distance);
lcd.setCursor(5, 1);
lcd.print("cm ");
LastState = State;
}
Схема
Схема подключения в разделе Schematics (фото).
Производственный процесс
- Ретро-часы на индикаторах Numitron с Arduino: просто, надёжно, экономно
- Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
- Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
- Сборка вольтметра на Arduino с дисплеем Nokia 5110 — Пошаговое руководство
- MobBob: Самостоятельная сборка Arduino-робота под управлением Android-смартфона
- Веб-управляемый IoT-индикатор на Arduino, Yaler и IFTTT
- Частотомер до 6.5 МГц на Arduino Nano: DIY измеритель частоты
- Точный монитор качества воздуха на датчике Sharp GP2Y1010AU0F
- Ручной дозиметр (Гейгер-счетчик) на Arduino Nano: сборка в 3D-корпусе
- Надёжные будильник на DS1302 RTC и Arduino UNO — сборка и код