6_Project/밸런싱 로봇

1. 모터 종류 및 제어 예제

Mi:sAng 2024. 11. 3. 19:17

1. 기본 회로도 

L298N(모터드라이버) - 아두이노 나노 - MPU9250의 연결이다.

기본 회로도


2. 모터의 종류

  1).DC 모터

    (1).리니어 모터

    (2).에어펌프, 워터펌프, 진동 모터 등

    (3).스텝모터 

      -스텝 모터 펄스에 의한 제어로 일정한 각도의 회전이 쉬운 모터

    (4).서보모터

    (5).BLDC 모터

      - BLDC(Brushless Motor) : DC 모터에서 브러시와 정류자를 제거하고 전자적인 정류 기구를 설치한 모터이다.

      - 정류자가 없어서 이것을 대신하는 전자 정류 회로가 따로 필요하다


  2).AC 모터

    - 유도기기형

        유도전동기는 회전자에 전기적으로 유도되는 전자기장을 이용하여 회전력을 발생시키는 방식의 전기 모터.
        유도전동기는 회전자 내부에 알루미늄 혹은 구리 등의 금속이 있는데, 
        회전자 내부로 전류가 흐르면 그 전류가 또 다른 전류를 유도시켜 회전자가 돌아가게 된다. 
        이러한 유도전동기는 가볍고 소음이 적으며, 저비용으로 제작할 수 있어서 
        일반적으로 가정용 전기 제품이나 산업용 기계 등에서 많이 사용된다.

        회전자에는 코일이 없다

 

    - 동기기형

        동기전동기는 회전자와 자기장이 동기화되어 회전력을 발생시키는 방식의 전기 모터다. 
        동기전동기는 회전자 내부에 자석이 있으며, 자석과 회전자 외부의 자기장이 상호작용하여 회전력을 발생시킨다. 
        동기전동기는 회전자와 자기장이 동기화되어야 하기 때문에, 회전자의 속도가 일정해야 하며, 
        외부에서 회전자의 속도를 제어하는 장치가 필요하다. 
        이러한 동기전동기는 유도전동기보다 크기가 크고, 무거우며, 비용이 높다. 
        그러나 동기전동기는 정확한 제어와 안정성이 높아서 고속 회전이 필요한 산업용 기계 등에서 주로 사용된다.

        회전자엔는 코일이 감겨있다.


3. 모터의 원리

  1).DC 모터

DC 모터 원리

 

https://www.youtube.com/watch?v=kt6t-GPWBt8

 


    (1).리니어 모터

 

https://www.youtube.com/watch?v=uf_Z57gAJTc

 


    (2).에어펌프, 워터펌프, 진동 모터 등

 

https://www.youtube.com/watch?v=RH22pXKy_mI

 


   

    (3).스텝모터 

스텝모터 원리

 

 

https://www.youtube.com/watch?v=eyqwLiowZiU

 

 


 

 

    (4).서보모터

      Control Unit이 가장 중요하다. 엔코더가 제어장치 역할을 하기도 한다.

서보모터 구조

 

https://www.youtube.com/watch?v=6IlZ7ypDl_A

 


 

 

    (5).BLDC 모터

BLDC 구조


  2).AC 모터

    - 유도기기형

 

https://www.youtube.com/watch?v=AQqyGNOP_3o

 

 

    - 동기기형

https://www.youtube.com/watch?v=Vk2jDXxZIhs

 

 


4. 모터 드라이버에 대해

  모터드라이버, 모터 제어기, 모터 컨트롤러는 모터를 제어하는 제품이다.
  DC모터, BLDC 모터, STEP 모터등은 모터 종류에 맞는 모터 드라이버를 사용하여 컨트롤 할 수 있다.
  DC 모터나 유도 모터를 돌리기 위해서는 제어장치 없이 단순히 전기를 연결하기만 하면 동작하지만, 
  BLDC 모터 STEP모터 등은 모터 드라이버가 없으면 동작 하지 않는다.
  모터 드라이버를 사용하면 토크제어, 속도제어, 전압제어, 전류제어, 위치제어 등을 정확하게 할 수 있고,

  모터 보호 기능 또한 할 수 있다.

 

https://www.youtube.com/watch?v=GAyzaVSBvN0

 

 

  1). 모터 드라이버 사용 이유

    DC 모터는 Pin이 2개 밖에 없고, Pin에 전원을 어떻게 연결하느 냐에 따라 모터의 방향이 달라진다.
    이를 정방향과 역방향을 합쳐 ‘정역제어’라고 한다.
    이는 소프트웨어적으로 해결 할 수 없는 문제이므로 회로를 만들어서 물리적으로 모터에

    가해지는 전압의 극성을 바꾸어 주어야 합니다.
    따라서 방향 제어를 하기 위한 회로가 필요하다

 

  2). 방향제어 :  H-Bridge 회로

    H-Bridge 회로 라는 것을 사용한다.

H-Bridge 회로

 

  3). 속도제어 : Duty Ratio 조절

    PWM 신호의 Duty Ratio를 조절하여 속도를 제어한다.

 


5. Buck - Converter 

추후 정리

 

 

 

 

 


 

6. Boost - Converter 

추후 정리

 

 

 

 

 


 

7. 모터 드라이버 L298N

ENA/ENB은 속도 제어를 위한 신호 & 전원

DIR은 방향 제어를 위한 신호 : 극성

 


 

8. 예제 코드

intSpeedPin=5;  
intpinA=6;    
intpinB=7;    
 
     
void setup()
{    
 pinMode(pinA,OUTPUT);  
 pinMode(pinB,OUTPUT);  
 pinMode(SpeedPin,OUTPUT);  
 Serial.begin(9600);
}    
     
void loop()
{      
 digitalWrite(pinA,HIGH);//모터가 시계 방향으로 회전    
 digitalWrite(pinB,LOW);  
 analogWrite(SpeedPin,255);//모터 속도를 최대로 설정  
 Serial.println("1");
 delay(1000);    
 
 analogWrite(SpeedPin,0);
 delay(1000);

 digitalWrite(pinA,LOW);//모터가 반시계 방향으로 회전    
 digitalWrite(pinB,HIGH);    
 analogWrite(SpeedPin,255);//모터 속도를 최대로 설정  
 Serial.println("2");
 delay(1000);    

 analogWrite(SpeedPin,0);
 delay(1000);

 digitalWrite(pinA,HIGH);//모터가 시계 방향으로 회전    
 digitalWrite(pinB,LOW);  
 analogWrite(SpeedPin,130);//130은 되어야지 돌아간다. 모터에 따라 다르다
 Serial.println("3");
 delay(1000);    
 
 analogWrite(SpeedPin,0);
 delay(1000);

 digitalWrite(pinA,LOW);//모터가 반시계 방향으로 회전    
 digitalWrite(pinB,HIGH);    
 analogWrite(SpeedPin,140);
 Serial.println("4");
 delay(1000);  

 analogWrite(SpeedPin,0);
 delay(1000);

}