Create AMR with Arduino, MDH100, MD200T, Zetson

README.md

AMR 개발#

아두이노 테스트 코드#

모터 구동 테스트 코드
const int PWM = 10;    // MD200T 6번 (SPEED_IN2) 노랑
const int DIR = 8;    // MD200T 2번 (DIR2) 주황
const int ST  = 9;    // MD200T 4번 (START/STOP2) 초록

void setup() {
  Serial.begin(9600);

  pinMode(PWM, OUTPUT);
  pinMode(DIR, OUTPUT);       // 회전 방향 (시계 방향 = HIGH)
  pinMode(ST, OUTPUT);        // 브레이크 (해제 = LOW)  

  digitalWrite(ST, HIGH);
  delay(2000);                // 전원 안정화
}

void loop() {

  digitalWrite(ST, LOW);      // 브레이크 해제
  digitalWrite(DIR, LOW);     // 반시계 회전
  analogWrite(PWM, 0);
  // delay(10000);
  // digitalWrite(ST, HIGH);     // 멈춤
  // delay(4000);

  // digitalWrite(ST, LOW);
  // digitalWrite(DIR, HIGH);    // 시계 회전
  // analogWrite(PWM, 125);
  // delay(10000);
  // digitalWrite(ST, HIGH);
  // delay(4000);
}
홀센서 확인 테스트 코드
// 홀센서 핀 번호
const int Hu = 4;
const int Hv = 3;
const int Hw = 2;

const int PWM = 10;    // MD200T 6번 (SPEED_IN2) 노랑
const int DIR = 8;    // MD200T 2번 (DIR2) 주황
const int ST  = 9;    // MD200T 4번 (START/STOP2) 초록

void setup() {
  Serial.begin(9600);

  pinMode(Hu, INPUT);
  pinMode(Hv, INPUT);
  pinMode(Hw, INPUT);

  pinMode(PWM, OUTPUT);
  pinMode(DIR, OUTPUT);       // 회전 방향 (시계 방향 = HIGH)
  pinMode(ST, OUTPUT);        
  digitalWrite(ST, HIGH); // 브레이크 (해제 = LOW)  
  delay(2000);            // 전원 안정화
}

//모터를 직접 손으로 돌리면서 체크
void loop() {
  int hu = digitalRead(Hu);
  int hv = digitalRead(Hv);
  int hw = digitalRead(Hw);

  Serial.print("Hu: "); Serial.print(hu);
  Serial.print(" | Hv: "); Serial.print(hv);
  Serial.print(" | Hw: "); Serial.println(hw);

  delay(200);  // 0.2초 간격 출력
}