CodingMaker

13강 Arduino OUTPUT 본문

Fablab Academy

13강 Arduino OUTPUT

메이커K 2017. 12. 11. 15:22


   Moter OUTPUT   


모터를 사용하려면

회전 속도만 조절할건지

회전각을 사용할건지 

정확한 힘을 제어하는걸 할 것인지


속도만 제어하려고 할때(카트를 만들때, 선풍기)

브러쉬 DC 모터

왼쪽 5~6V에서 돌아가는 

회전에서 마찰이 생겨서 수명이 짧다.

작은 드론(브러쉬 소리)


브러쉬리스 DC모터는 - 속도 제어 , 소음 적고, 수명이 길다. 크기도 다양하다.


헬기나  


스테핑 모터 - 속도, 위치 제어

12mm가고 멈춰야할때

제일 많이 사용할 일이 생긴다.

3D 프린터의 경우도 스테핑 모터가 한 2개정도 들어있다

컴퓨터 CD룸에도 스테핑 모터: 어느정도 나왔다가 멈추게 한다.


5V 스텝모터 + 드라이버 모듈 보드


서보모터 : 속도 위치 토크제어

취미용은 끝판왕이 아니고 그냥 각도만 제어한다.


모터 드라이버는 스테핑 모터 드라이버

2003 스텝모터 

모터 드라이버들은 보통 자기의 전력 한계치가 있다.

전류가 작은거는 ULN 2003 500mA

전류가 센건 L298



실습


라이브러리 불러오기

for문 

파일>예제>servo>Sweep


아두이노 홈페이지에 레퍼런스에 들어간다.


명령 찾아서 참조에서 찾기 하면 된다.


명령 코드를 선택하고


file:///C:/Program%20Files%20(x86)/Arduino/reference/www.arduino.cc/en/Reference/Void.html


서보를 어떤 각도로 이동하겠다


-----------------------------------------------

트렌지스터가 스위치 같은거다

기계식 방법은 릴레이 전자식은 

무접점 접점

220V 제어하고 싶을때 살수 있는건 릴레이 모듈이

아두이노/라즈베리파이 호환 1채널 릴에이 모듈


스텝모터중에 무거운거는 12V 24V를 제어할때 사용한다.


smtp


태양전지

패널을 판다

태양광 모듈이 있다 찾아보면 좋다 5볼트로 정류 장치를 사용하면 전류를 뽑아 쓸수도 있다


http://fabmodules.org



   9. 서보모터(라이브러리 활용하기)   


https://www.kocoafab.cc/tutorial/view/62


코드(Example - Servo - Sweep)

  #include <Servo.h> //서보 라이브러리를 불러온다.

Servo myservo;  // 서보를 제어할 서보 오브젝트를 만든다.

int pos = 0;    // 서보 위치를 저장할 변수를 선언한다.


void setup() {

  myservo.attach(9);  // 핀 9의 서보를 서보 오브젝트에 연결한다.

}


void loop() {

  for (pos = 0; pos <= 180; pos += 1) { // 0도에서 180도로 이동한다.

    // 이동할때 각도는 1도씩 이동한다.

    myservo.write(pos);              // 'pos'변수의 위치로 서보를 이동시킨다.

    delay(15);                       // 서보 명령 간에 15ms를 기다린다.

  }

  for (pos = 180; pos >= 0; pos -= 1) { // 180도에서 0도로 이동한다.

    myservo.write(pos);              // 서보를 반대방향으로 이동한다.

    delay(15);                       // 서보 명령 간에 15ms를 기다린다.

  }

}


실행동영상



라이브러리

컴퓨터에서 자주 사용되는 부분 프로그램들을 모아 놓은 것, 언제든지 자유롭게 이용할 수 있도록 구성되어 있다

아두이노를 쓰다보면 새로운 센서를 쓸 때 가장 많이 찾게 되는 것이 라이브러리이다.

아두이노에서는 기본 함수들과 클래스정도는 직접 헤더파일을 추가해주지 않아도 컴파일 과정에서 자동으로 라이브러리가 추가되기 때문에 별다은 작업없이 사용할 수 있다.


#include<라이브러리의 헤더파일> //라이브러리 추가


아두이노에서 코드를 참조에서 참기하면 각 코드에 대한 설명을 들을 수 있다.

각 라이브러리에 대한 설명을 들을 수 있다.


https://www.arduino.cc/en/Reference/ServoWrite


네오픽셀도 다운을 받으면 편하게 쓸수 있다.


For 문


   9-1. 가변저항으로 돌리는 서보모터   


https://kocoafab.cc/tutorial/view/64

가변저항을 돌리는 만큼 서보모터의 각도를 돌려보자.

코드

 #include <Servo.h> //서보 라이브러리를 불러온다.

const int sensorPin=A0; //가변저항을 A0에 설정한다.

Servo myservo;  // 서보를 제어할 서보 오브젝트를 만든다.



void setup() {

  myservo.attach(9);  // 핀 9의 서보를 서보 오브젝트에 연결한다.

}


void loop() {

  int value = analogRead(sensorPin); // 가변저항의 값을 읽어들인다.

  int angle = map(value,0,1023,0,179); //읽어 들인 값을 0~179까지 변환한다.

  myservo.write(angle); //서보의 각도를 설정한다.

  delay(15); // 서보 명령 간에 15ms를 기다린다.

}


실행동영상



  9-2. 포토레지스터와 서보모터  


포토레지스터와 서보모터를 이용하여 일정 밝기 이상이면 열리는 잠금장치를 만들어본다

코드

 #include <Servo.h> //서보 라이브러리를 불러온다.

int sensorPin=0; //가변저항에 연결한 아날로그 핀의 번호를 설정한다.

Servo myservo;

int lightLevel;

int angle=0;


void setup() {

  myservo.attach(9);  // 핀 9의 서보를 서보 오브젝트에 연결한다.

}


void loop() {

  lightLevel = analogRead(sensorPin); //아날로그 값을 읽음

  if(lightLevel>500){ //lightLevel이 500이상이면

    angle=90; //서보의 각도를 90으로 설정

  }

  else{ //lightLevel이 500이면

    angle = 0; //서보의 각도를 0으로 설정

  }

  myservo.write(angle); //서보를 angle의 각도로 이동시킨다.

}


실행동영상


'Fablab Academy' 카테고리의 다른 글

15 Final Project  (2) 2017.12.11
14강 Arduino 통신  (0) 2017.12.11
12강 Arduino INPUT  (0) 2017.12.11
11강 Arduino LED  (0) 2017.12.11
10강 laser cutting  (0) 2017.12.11