Arduino Due + Motor Shield: DC motor

아두이노 듀에와 아두이노 모터쉴드로 할 수 있는 가장 간단한 것.

DC모터를 정회전,역회전으로 구동할 수 있는 모터쉴드.

 

필요한 하드웨어

  • 아두이노 듀에
  • 아두이노 모터 쉴드
  • DC 모터
  • DC변압 파워서플라이

회로

회로를 구성하려면 아두이노 모터 쉴드를 아두이노 듀에 위에 마운트할 필요가 있다. 그다음에 DC모터에서 나오는 전선 두 가닥을 모터 쉴드 채널 A의 스크류드라이버 터미널에 연결해야 한다. 마지막으로 변압 전원 어댑터를 아두이노 듀에의 DC커넥터에 연결한다. DC모터의 전압 요구사항에 맞는 것으로 어댑터를 골라야 한다. 이 예제에서 사용되는 팬으로는 보드에 12V를 공급했다.

그 다음 아두이노 보드를 컴퓨터에 연결하고 Arduino IDE 1.5를 실행해서 아래 코드를 입력한다.

아두이노 듀에, 모터 쉴드, 그리고 팬이 서로 연결되어 있다.

사용 IDE

버전:Arduino 1.5.2

보드선택:도구>보드>Arduino Due(Programming Port)

 

코드 1

const int
PWM_A = 10, //3,
DIR_A = 13, //12,
BRAKE_A = 9,
SNS_A = A0;

void setup() {
// Configure the A output
pinMode(BRAKE_A, OUTPUT); // Brake pin on channel A
pinMode(DIR_A, OUTPUT); // Direction pin on channel A// Open Serial communication
Serial.begin(9600);
Serial.println(“Motor shield DC motor Test:\n”);
}

void loop() {// Set the outputs to run the motor forward
digitalWrite(BRAKE_A, LOW); // setting brake LOW disable motor brake
digitalWrite(DIR_A, HIGH); // setting direction to HIGH the motor will spin forward
analogWrite(PWM_A, 255); // Set the speed of the motor, 255 is the maximum value
delay(5000); // hold the motor at full speed for 5 seconds
Serial.print(“current consumption at full speed: “);
Serial.println(analogRead(SNS_A));

// Brake the motor

Serial.println(“Start braking\n”);
// raising the brake pin the motor will stop faster than the stop by inertia
digitalWrite(BRAKE_A, HIGH); // raise the brake
delay(5000);

// Set the outputs to run the motor backward

Serial.println(“Backward”);
digitalWrite(BRAKE_A, LOW); // setting againg the brake LOW to disable motor brake
digitalWrite(DIR_A, LOW); // now change the direction to backward setting LOW the DIR_A pin

analogWrite(PWM_A, 255); // Set the speed of the motor

delay(5000);
Serial.print(“current consumption backward: “);
Serial.println(analogRead(SNS_A));

// now stop the motor by inertia, the motor will stop slower than with the brake function
analogWrite(PWM_A, 0); // turn off power to the motor

Serial.print(“current brake: “);
Serial.println(analogRead(A0));
Serial.println(“End of the motor shield test with DC motors. Thank you!”);

while(1);
}

코드2

const int
PWM_A   = 3,
DIR_A   = 12,
BRAKE_A = 9,
SNS_A   = A0;
void setup() {
// Configure the A output
pinMode(BRAKE_A, OUTPUT);  // Brake pin on channel A
pinMode(DIR_A, OUTPUT);    // Direction pin on channel A// Open Serial communication
Serial.begin(9600);
Serial.println(“Motor shield DC motor Test:\n);
}
void loop() {// Set the outputs to run the motor forward
digitalWrite(BRAKE_A, LOW);  // setting brake LOW disable motor brake
digitalWrite(DIR_A, HIGH);   // setting direction to HIGH the motor will spin forward
analogWrite(PWM_A, 255);     // Set the speed of the motor, 255 is the maximum valuedelay(5000);                 // hold the motor at full speed for 5 seconds
Serial.print(“current consumption at full speed: “);
Serial.println(analogRead(SNS_A));

// Brake the motor

Serial.println(“Start braking\n);
// raising the brake pin the motor will stop faster than the stop by inertia
digitalWrite(BRAKE_A, HIGH);  // raise the brake
delay(5000);

// Set the outputs to run the motor backward

Serial.println(“Backward”);
digitalWrite(BRAKE_A, LOW);  // setting againg the brake LOW to disable motor brake
digitalWrite(DIR_A, LOW);    // now change the direction to backward setting LOW the DIR_A pin

analogWrite(PWM_A, 255);     // Set the speed of the motor

delay(5000);
Serial.print(“current consumption backward: “);
Serial.println(analogRead(SNS_A));

// now stop the motor by inertia, the motor will stop slower than with the brake function
analogWrite(PWM_A, 0);       // turn off power to the motor

Serial.print(“current brake: “);
Serial.println(analogRead(A0));
Serial.println(“End of the motor shield test with DC motors. Thank you!”);

while(1);
}

 

2 thoughts on “Arduino Due + Motor Shield: DC motor

  1. Hello there, My name is Aly and I would like to know if you would have any interest to have your website here at dothome.co.kr promoted as a resource on our blog alychidesign.com ?

    We are updating our do-follow broken link resources to include current and up to date resources for our readers. If you may be interested in being included as a resource on our blog, please let me know.

    Thanks, Aly

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다