본문 바로가기
아두이노

Make IT! Arduino -#05 코딩하기

by 오징어땅콩2 2020. 8. 2.
반응형

저번에 조이스틱에 대한 코딩을 했기 때문에 모터에 대한 코딩을 하면 된다.

조이스틱의 기을기에 대한 속도 변화가 없는 코딩이기 때문에,

모턴 쉴드, DC 모터를 다루어본 경험이 있다면 그다지 어렵지 않을것으로 보인다.

그리고 자동차의 전진,후진은 코딩에 의해 결정될수도 있고, 모터에 연결한 선의 연결방법에 의해서 결정될수도 있기 떄문에

생각을 해서 잘 연결 할 수도 있고, 다 하고 코딩으로 조절해도 될것 같다.

 

 

 
#define RMOTOR1 9
#define RMOTOR2 10
#define LMOTOR1 5
#define LMOTOR2 6
#define speed 250
 
void setup() 
{
  pinMode(RMOTOR1 , OUTPUT);
  pinMode(RMOTOR2 , OUTPUT);
  pinMode(LMOTOR1 , OUTPUT);
  pinMode(LMOTOR2 , OUTPUT);   
 
  digitalWrite(RMOTOR1, LOW);
  digitalWrite(RMOTOR2, LOW);
  digitalWrite(LMOTOR1, LOW);
  digitalWrite(LMOTOR2, LOW);
   
  Serial.begin(115200);
}
 
void loop() 
  int Jox = map(analogRead(A0), 01023-100100);
  int Joy = map(analogRead(A1), 01023-100100);  
 
  char buf[25];
  sprintf(buf, "Jox : %3d, Joy : %3d", Jox, Joy);
  Serial.println(buf);
 
  if (Jox >=90 && fabs(Joy) <= 20)move_forward();
  else if (Jox <= -90 && fabs(Joy) <= 20)move_back(); 
  else if (Joy >= -90 && fabs(Jox) <= 20)turn_right();  
  else if (Joy <= -90 && fabs(Jox) <= 20)turn_left();    
  
  delay(10);              
}
 
void move_forward()
{
  //전진
  Motor_Control(speed, 0, speed, 0);
}
 
void move_back()
{
  //후진
  Motor_Control( 0, speed,  0, speed);
}
 
void turn_right()
{
  //우회전
  Motor_Control( 0, speed,  speed, 0);
}
 
void turn_left()
{
  //죄회전
  Motor_Control( speed, 0,  0, speed);
}
 
void Motor_Control(int SR1, int SR2, int SL1, int SL2)
{
  digitalWrite(RMOTOR1, SR1);
  digitalWrite(RMOTOR2, SR2);
  digitalWrite(LMOTOR1, SL1);
  digitalWrite(LMOTOR2, SL2);  
}
 
 

'아두이노' 카테고리의 다른 글

Make IT! Arduino -#06 코딩하기  (0) 2020.08.04
코딩 이야기 #2  (0) 2020.08.03
Make IT! Arduino -#05 조립하기 2부  (0) 2020.07.20
Make IT! Arduino -#05,06 조립하기  (0) 2020.07.18
Make IT! Arduino -#04 보안 저금통 만들기  (0) 2020.07.14

댓글