[마이크로 프로세서] 모터 드라이버

이현준·2020년 11월 26일
0

모터 드라이버 2륜

회로

https://www.tinkercad.com/things/eaD1QqKPqRy-2/editel

소스 코드

void setup(){
  //motor 1
  pinMode(13, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(5, OUTPUT);
  digitalWrite(13, HIGH);
  //motor 2
  pinMode(12, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(6, OUTPUT);
  digitalWrite(12, HIGH);
}
void loop(){
  //motor 1 
  digitalWrite(9, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  digitalWrite(10, LOW);
  delay(3000);

  //motor 2 
  digitalWrite(9, LOW);
  digitalWrite(5, HIGH);
  digitalWrite(6, LOW);
  digitalWrite(10, HIGH);
  delay(3000);
  
  //motor 3 - 같으면 안 돌아간다(0rpm)
  digitalWrite(9, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(6, LOW);
  digitalWrite(10, LOW);
  delay(3000);
  
}

모터 드라이버 - 속도 조절

회로

https://www.tinkercad.com/things/j6PERX5XiY4-/editel

소스코드

int enablePin = 11;
int in1Pin = 10;
int in2Pin = 9;
int switchPin = 7;
int potPin = 0;
 
void setup()
{
  pinMode(in1Pin, OUTPUT);

  pinMode(in2Pin, OUTPUT);
  pinMode(enablePin, OUTPUT);
  pinMode(switchPin, INPUT_PULLUP);
}
 
void loop()
{
  int speed = analogRead(potPin) / 4;
  boolean reverse = digitalRead(switchPin);
  setMotor(speed, reverse);
}
 
void setMotor(int speed, boolean reverse)
{
  analogWrite(enablePin, speed);
  digitalWrite(in1Pin, ! reverse);
  digitalWrite(in2Pin, reverse);
}
  • 속도 조절하려면 DC모터보다는 스텝모터를 추천함 왜냐하면 DC모터 같은 경우에는 생으로 전압을 조절해야돼서

결과

저항이 클수록 느리게 돌아간다

저항이 작을수록 빠르게 돌아간다

0개의 댓글