2015/10/29 - [디지털 라이프 電子的生活 My Digital Life] - 아두이노 시작했습니다...
그걸 모형에 적용하기 전에 과학상자로 간단한 자동차를 만들어 시험 중에 있습니다.
위의 사진은 배터리는 연결 안 한 상태입니다. ^^
과정 중에 동영상 하나 찍어봤습니다.
구성품:
- 아두이노 우노 R3
- 모터 쉴드 (Adafruit)
- SG90 서보 모터
- 130 사이즈 모터 (1.5 ~ 6V) (알리익스프레스 링크)
USB 전원으로는 DC 모터 구동이 약한 것 같아, 외부 9V 배터리를 연결한 상태입니다.
모터는 일반 장난감에 들어간 모터가 3V 규격이어서 모터 쉴드에서 나오는 드라이빙 출력 전압인 4.5V를 충분히 견디기 힘들거라 상위 규격의 모터를 알리익스프레스에서 구입했습니다.
소스는 아래와 같습니다. Adafruit에서 공개한 모터 쉴드는 간단하게 DC 모터 구동을 위해 라이브러리를 제공합니다.
https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino/install-software
테스트한 소스는 아래와 같습니다. 여기저기 있는 소스를 짜깁기 한 것입니다.
// One DC motor & one Servo
#include <Servo.h>
#include <AFMotor.h>
Servo servo;
AF_DCMotor m1(2);
// for Servo
int servoPin = 9;
int center = 95;
int right = 65;
int left = 125;
// for DC motor
int maxspeed = 200;
void setup() {
// put your setup code here, to run once:
// define serial output
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Motor test!");
// initializing servo
servo.attach(servoPin);
servo.write(center);
// initializing DC motor
m1.setSpeed(200);
m1.run(RELEASE);
}
void loop() {
// put your main code here, to run repeatedly:
// move steering (servo)
Serial.print("right ");
servo.write(right);
delay(1000);
Serial.print("Center ");
servo.write(center);
delay(2000);
Serial.print("Left ");
servo.write(left);
delay(1000);
Serial.print("Center ");
servo.write(center);
delay(2000);
uint8_t i;
// M1 control
Serial.print(" M1 Forward ");
m1.run(FORWARD);
for (i=0; i<maxspeed; i++) {
m1.setSpeed(i);
delay(10);
}
delay (2000);
for (i=maxspeed; i!=0; i--) {
m1.setSpeed(i);
delay(10);
}
delay (2000);
Serial.print(" M1 Backward ");
m1.run(BACKWARD);
for (i=0; i<maxspeed; i++) {
m1.setSpeed(i);
delay(10);
}
delay (2000);
for (i=maxspeed; i!=0; i--) {
m1.setSpeed(i);
delay(10);
}
delay (2000);
}
일단 잘 되는 것 같아보이지만, 모터 드라이빙하는 전압이 전에 시험했을 때보다 낮게 나옵니다.
그리고, 차를 바닥에 놓으면 모터가 토크가 약한지 바퀴를 굴리지 못합니다.
이 부분에 대해서는 좀 더 확인이 필요하겠네요.
DC 모터 제어가 간단해야 할 것 같은데 생각만큼 잘 안 되네요. 쩝.
다음에 또 올려보겠습니다.
'디지털 라이프 電子的生活 My Digital Life > 아두이노 (Arduino)' 카테고리의 다른 글
아두이노 기반 RC의 무선 조종기에 대한 이런저런 생각들... (0) | 2017.08.12 |
---|---|
ATTiny85에 아두이노 올리기 (0) | 2017.05.15 |
주로 쓰는 아두이노 보드 종류들 (0) | 2017.05.14 |
아두이노로 RPM 카운터를 만들었습니다. (0) | 2016.08.25 |
아두이노 시작했습니다... (0) | 2015.10.29 |