본문 바로가기
프로젝트

아두이노 로봇팔 프로젝트 - 1

by 비엠이 2020. 12. 11.

어느정도 작업을 진행한 후에 이 기록을 적기 시작한다.

현재까지의 상황

 

-  일단 실질적으로 사용할 서보모터인 ‘MG 996R’ 4개를 구매하였다 (중에 1개가 불량이어서 교체)

 

-   서보모터 ’SG-90’을 이전 자동문 제작 시 사용해봤기에 기본적인 서보모터 구동 방법을 알기에 모터가 이상 있는지 확인하고

     곧바로 다중(2개 이상)제어를 해보았다.

 

-   여기서 문제가 생겼는데 모터 각각 1개씩 따로 사용할 때는 정상적으로 작동되었는데 두개같이 사용하니 모터에 전기가

 들어오는 건 확인할 수 있었는 데 작동은 되지않았다. 이유를 찾아보니 기존의 가장 기본적인 케이블만으로는 서보모터

 2개이상 작동하기에 전력이 부족하다는 것을 알게 되었다. 

 

 9V짜리 건전지와 잭을 구입하여 연결하였더니 서보모터 두개 연결하여 작동시켰더니 제대로 작동했다.

 

-  조이스틱 모듈을 구입하여 모터1 X축에 따라, 모터2 Y축에 따라 설정한 각도로 구동 되도록 하였다.

 

 

 

 

 #include<Servo.h> 

 

Servo servo1;     

Servo servo2;

 

byte a;

 

const int SW_pin = 2;

const int X_pin = A0;

const int Y_pin = A1;

 

void setup() {

  Serial.begin(9600);

  

  servo1.attach(7);    

  servo1.write(0);

  servo2.attach(8);    

  servo2.write(0);

 

  pinMode(SW_pin, INPUT);

  digitalWrite(SW_pin, HIGH);

 

  delay(100);

}

 

void loop() {

   int button = digitalRead(SW_pin);

   int xReading = analogRead(X_pin);

   int yReading = analogRead(Y_pin);

 

  Serial.print("Switch:  ");

  Serial.print(button);

  Serial.print("\n");

  Serial.print("X-axis: ");

  Serial.print(xReading);

  Serial.print("\n");

  Serial.print("Y-axis: ");

  Serial.println(yReading);

  Serial.print("\n\n");

  delay(300);

 

  if(xReading <= 300)

  {

    servo1.write(0);

    }

    

    else if(xReading >= 900 )

    {

      servo1.write(180);

      }

      

      else 

      {

        servo1.write(90);

      }

 

   if(yReading <= 300)

   {

    servo2.write(0);

    }

    

    else if(yReading >= 900 )

    {

      servo2.write(180);

      }

      

      else 

      {

        servo2.write(90);

      }

      

//------------------------------------------------------

   

    a = Serial.read(); 

    

    if(a == '1')     

    {

      servo1.write(0);           

      delay(10);

     }

    else if(a == '2')     

    {

       servo1.write(90);         

       delay(10);

     } 

     

   

     

     else if(a == '4')     

    {

      servo2.write(0);           

      delay(10);

     }

    else if(a == '5')     

    {

       servo2.write(90);         

       delay(10);

     }

 

}

 

'프로젝트' 카테고리의 다른 글

라즈베리파이 MQTT 사용  (0) 2020.12.10
아두이노를 이용한 환자감시장치(Patient Monitor) 제작  (0) 2020.12.10
4D프린팅 기술  (0) 2020.12.10