- 모터는 라틴어의 'moto(움직이다)'에서 온 단어로 플레밍의 왼속 법칙에 따라 전기 에너지를 운동에너지로 변환하는 장치이다.
- DC모터는 전기장에 흐르는 전류의 방향을 전환하면서 자력의 밀어내는 힘이나 끌어당기는 힘으로 회전력을 생성시키는 원리로 작동되며, 가볍고 구조가 간단하지만 전기가 멈추어야 할 때 관성에 의하여 정확한 정지 위치를 지정하기 어렵다는 단점이 있다.
- DC모터를 제어하기 위하여 digitalWrite( )함수를 이용한다. digitalWrite( )함수를 사용하면 DC모터의 속도는 제어할 수 없다.
- 서보모터는 정확한 위치 제어가 어려운 DC모터의 단점을 극복하기 위하여 DC모터에 귀환 회로를 추가하여 0도에서 180도의 각도를 정밀하게 제어할 수 있는 모터이다. 주로 로봇 분야에서 관절이나 손과 같은 정밀함이 필요한 경우에 주로 사용되고 있다.
- 서보모터를 제어하는 아두이노 프로그램을 작성하려면 프로그램의 윗부분에 #include <servo.h>를 입력하여 서보모터의 제어를 위한 객체를 정의한 서보 라이브러리를 포함해야 한다.
- servo.attach(pin) 함수는 서보모터를 어느 핀으로 제어할 것인지 설정하는 함수이다.
- servo.write(angle) 함수는 서보에 angle 값을 전달하여 값에 따라 샤프트를 해당 방향으로 정확하게 이동시키는 함수이다.
- 스테퍼모터는 아날로그 시계의 초침처럼 고유의 분할 각도가 있고 이 각도에 따라 단계적으로(step-by-step) 움직이는 모터로 360도 회전할 수 있으며 회전수, 정확한 각도, 방향 등을 제어할 수 있다.
- 스테퍼모터는 회전하는 것이 아니라 한 순간에 한 스텝씩 이동하는 것이다. 만약 360도 회전을 하려면 최대 200단계로 나누어 한 단계의 1.8씩 일정한 크기로 축을 이동시킨다.
- 스테퍼모터의 샤프트가 한 바퀴(360도)를 완전히 회전하려면 2048의 스텝 수가 필요하다.