산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 나노와 로터리 인코더로 만드는 정밀 측정 바퀴

부품 및 준비물

부품수량
아두이노 나노 R31
16x2 문자 LCD (백색/청색)1
로터리 인코더 (푸시버튼 내장)1
10kΩ 포텐셔미터 (LCD 콘트라스트용)1
220Ω 저항 (LCD 백라이트용)1

필요 도구

사용 소프트웨어

프로젝트 개요

측정 바퀴(measuring wheel)는 바퀴 회전수를 이용해 두 점 사이의 거리를 측정하는 도구입니다. 회전 운동학 공식 s = rθ를 적용합니다.

아두이노 나노와 로터리 인코더로 만드는 정밀 측정 바퀴

동작 원리

이 공식을 코드에 적용하여 이동 거리를 센티미터 단위로 LCD에 표시합니다. 사용 부품에 맞게 N과 R 값을 수정하면 됩니다. 본 프로젝트에서는 바퀴를 3D 프린터로 출력하고 알루미늄 봉에 조립했습니다.

소스 코드

/* Measuring Wheel
 * by Mirko Pavleski
 * https://www.youtube.com/channel/UCHLzc76TZel_vCTy0Znvqyw
 */
#include <LiquidCrystal.h>

LiquidCrystal lcd(5, 6, 7, 8, 9, 10);  // RS, E, D4, D5, D6, D7

int pin1 = 2;   // 인코더 A상
int pin2 = 3;   // 인코더 B상
int Pos = 0;    // 누적 스텝
int 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;
}

회로도

아두이노 나노와 로터리 인코더로 만드는 정밀 측정 바퀴

응용 아이디어

제조공정

  1. 아두이노로 만드는 레트로 누미트론 클락: 심플하고 신뢰성 높으며 에너지 효율적
  2. 아두이노 나노와 MPU-6050으로 실시간 자이로스코프 게임 만들기
  3. 아두이노로 간단한 장애물 센서 만들기 - IR LED & 포토다이오드 튜토리얼
  4. 아두이노와 노키아 5110 LCD로 만드는 DIY 전압계 - 단계별 가이드
  5. MobBob: 아두이노 로봇 직접 만들기, 안드로이드 스마트폰으로 매끄럽게 제어
  6. 아두이노, Yaler, IFTTT로 웹 연동 IoT 게이지 만들기
  7. 아두이노 나노 DIY 주파수 카운터 – 6.5MHz까지 측정 가능
  8. Sharp GP2Y1010AU0F 센서로 정밀 공기질 모니터 만들기
  9. 아두이노 나노로 만드는 휴대용 가이거 계수기
  10. DS1302 RTC와 아두이노 우노로 만드는 신뢰할 수 있는 알람 시계