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

В этом проекте мы соберем электронный курвиметр на основе Arduino.
Принцип его работы заключается в следующем. Вращающийся датчик измеряет число оборотов, но мы должны преобразовать вращение в пройденное расстояние. Пройденное расстояние зависит от диаметра колеса. Вращающийся датчик совершает N шагов за один полный оборот (360 градусов). Количество шагов на оборот зависит от поворотного энкодера, который можно изменить от 8 до 48. Предположим, N – количество шагов на оборот, а R – радиус колеса. Тогда пройденное расстояние за один оборот составляет 2xπxR, а пройденное расстояние за один шаг = 2xπxR/N.
В нашем проекте пройденное расстояние отображается на ЖК-экране в сантиметрах. В зависимости от компонентов, используемых в коде, мы меняем значения «N» и «R». В данном случае колесо напечатано на 3D-принтере, а вся сборка установлена на алюминиевом стержне.

Схема подключения компонентов курвиметра показана на следующем изображении.

Код программы для работы электронного курвиметра следующий.
#include <LiquidCrystal.h>
LiquidCrystal lcd(5, 6, 7, 8, 9, 10);
int pin1 = 2;
int pin2 = 3;
int Pos = 0;
int State;
int 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("MEASURNING 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;
}
© digitrode.ru