亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

自制高精度测距轮:Arduino Nano + 旋转编码器 + 1602 LCD

组件与材料

Arduino Nano R3×1
1602 字符型 LCD (白字蓝底)×1
带按键旋转编码器×1
10 kΩ 单圈电位器 (LCD 对比度)×1
220 Ω 电阻 (LCD 背光限流)×1

所需工具

软件

项目原理

测距轮利用旋转运动学公式 s = rθ 计算行程。旋转编码器每转输出 N 个脉冲,轮子半径 R,则:

代码中仅需修改 N(编码器每转脉冲数,典型 20-48)与 R(轮半径,cm)即可适配不同轮子。

自制高精度测距轮:Arduino Nano + 旋转编码器 + 1602 LCD

硬件接线

代码

/* 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;   // 轮半径 cm
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;
}

原理图

自制高精度测距轮:Arduino Nano + 旋转编码器 + 1602 LCD

制造工艺

  1. 复古 Numitron 管时钟:Arduino Nano 驱动,低温可靠省电
  2. Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
  3. 自制简易红外避障传感器:IR LED + 光电二极管 + Arduino
  4. Arduino DIY 电压表:Nokia 5110 屏幕显示,手把手教学
  5. MobBob:3D 打印智能机器人,Android 手机无缝控制,语音视觉一体
  6. 基于 Arduino、Yaler 与 IFTTT 构建 Web 化 IoT 仪表盘
  7. DIY 高频频率计 - Arduino Nano 实测 6.5MHz,三档测量时间可选
  8. 高精度空气质量监测仪:Sharp GP2Y1010AU0F 粉尘传感器 + Arduino Nano
  9. Arduino Nano 手持盖革计数器:DIY 核辐射检测仪
  10. Arduino UNO + 以太网盾板实现低成本太阳辐射测量仪(热电堆原理)
  11. Arduino Nano 与 WS2812 灯带打造 1D 乒乓球游戏——分步 DIY 教程
  12. 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟