반응형

【 아두이노 기초 】 #22 DC 모터 제어 하기 3

 이번 시간은 DC모터를 시리얼 통신(창)을 이용해 제어해보자, 입력값에 따라 속도 조절도 가능하다.

(관련 내용은 앞의 DC모터 자료를 참고 : http://rasino.tistory.com/133 )


※ 모터를 다룰 때는 주의 할 것은 코일로 이루어진 모터에 전류를 흘릴 경우 반대방향으로 기전력(역기전력)이 발생하게 되는데 이를 방지하기 위해 모터와 병렬로 다이오드를 반드시 달아 주어야 한다.  그래야 주변 회로(TR, FET 등)가 손상되지 않는다. 



▶ DC 모터 제어 회로도 :




▶ 부대품 목록 : 아두이노 보드, 브레드 보드


▶ 부품 목록    : DC 모터, 100Ω (전류 제한용도), NPN형 TR, 정류용 다이오드(1N4001~4007, 아무거나) 


▶ 실습 절차  : 

 1. 회로도를 참고하여 모터 와 부품들을 연결한다.
 
 2. 저항은 전류제한(+,- 쇼트 방지용) 용도로 사용하기 위함 임으로 100옴 
    정도의 작은 저항을 사용하면 된다. 따라서 만약 100옴의 저항이 없다면, 
    50옴, 80옴, 120옴, 200옴 등의 값이 작은 저항을 사용하면 문제가 없다. 

 3. TR은 스위치 작용을 위해 연결 한 것임으로 모델 종류에 상관 NPN 타입을
  사용하면 된다. 단, TR의 극성에 주의 한다. B(베이스 단자), 
   E(에이터 단자), C(콜렉터 단자)

 4. 아래 프로그램 코드를 작성해서 실행해 본다.

 5. 아래와 같이 시리얼 모니터 창을 열어 회전값을 입력해 본다.



▶ 실습 목표  : 




▶ 프로그램 (코드& 설명) : 


int motorPin =3;    // 모터 연결 핀을 정의한다.

void setup() {

   pinMode(motorPin, OUTPUT);   //모터 연결핀을 출력으로 설정

   Serial.begin(9600);        // 시리얼 통신을 초기화 한다

   Serial.println("Speed 0 to  255"); // 입력범위를 화면에 표시한다

}

void loop() {

  if(Serial.available())    // 시리얼 데이터가 있으면 실행한다

  {

    int speed = Serial.parseInt(); // 시리얼 입력 데이터를 정수로 저장

    if(speed> 0 && speed <= 255)

    {

      analogWrite(motorPin,speed); // 시리얼 입력데이터만큼 출력

      Serial.println(speed);   //현재 스피드를 출력한다

    }

  } 

}




▶ 실행 영상 : 







▶ 아두이노 코드 다운로드 : 


serial_Input_motorControl.ino





반응형
반응형

【 아두이노 기초 】 #11 FND 구동 실습 II



 앞서 FND에 '0'이라는 숫자를 표시해 보았다.  이제 FND에 숫자 0부터 9까지 카운트를 해보도록 하자.


참조 링크 : FND 구동실습 I 



▶ 실물 회로도면 :




▶ 부대품 목록 : 아두이노 보드, 브레드 보드


▶ 부품 목록    : FND (507, Common Anode 타입, 공통단자 +전압 연결),  220Ω 


▶ 회로 도면   : 


※ FND 는 크게 Anode(# 507) 타입과 cathode (#500) 타입 두 가지로 나뉜다. cathode(음극) 타입은 공통단자가 GND(그라운드, : 흔히 말하는 -마이너스 단자 )로 연결시켜 사용하는 타입이다. 위 도면에서 FND 내부의 LED 방향을 유심히 살펴보자. 


▶ FND 세그먼트와 핀 배치  : 

▽ #507


▽ #500





▶ 프로그램 (코드& 설명) : 


// 공통단자가 +VCC 연결인 507 Anode 타입을

// 사용할 경우 위 코드처럼 LOW를 출력해야 

// 해당 세그먼트가 켜진다  



▶ 실행 영상 : 

  



 


※ 추가로 알파벳 대문자 혹은 소문자 출력도 코딩을 해보면 좋다.


▶ 아두이노 코드 다운로드 : 

sketch_FND0to9.ino




반응형
반응형

【 아두이노 기초 】 #10 FND 구동 실습 I


 아두이노 I/O 포트 제어를 통해 FND(7 segment display)를 제어 해보자.


▶ 실물 회로도면 :




▶ 부대품 목록 : 아두이노 보드, 브레드 보드


▶ 부품 목록    : FND (507, Common Anode 타입, 공통단자 +전압 연결),  220Ω 


▶ 회로 도면   : 


※ FND 는 크게 Anode(# 507) 타입과 cathode (#500) 타입 두 가지로 나뉜다. cathode(음극) 타입은 공통단자가 GND(그라운드, : 흔히 말하는 -마이너스 단자 )로 연결시켜 사용하는 타입이다. 위 도면에서 FND 내부의 LED 방향을 유심히 살펴보자. 


▶ FND 세그먼트와 핀 배치  : 

▽ #507


▽ #500





▶ 프로그램 (코드& 설명) : 


// 공통단자가 +VCC 연결인 507 Anode 타입을

// 사용할 경우 위 코드처럼 LOW를 출력해야 

// 해당 세그먼트가 켜진다  



▶ 실행 영상 : 


  FND에 숫자 '0'을 표시해보도록 하자.  기타 원하는 숫자 혹은 위치에 LED segment를 켜보도록 연습해본다.


 



※ 다음 글에서 이번 과제에 이은 FND 구동을 위한 응용 예제를 다루어 보도록 하겠다. 


▶ 아두이노 코드 다운로드 : 

sketch_FND.ino




반응형
반응형

【 아두이노 기초 】 #09 시리얼 통신을 통한 I/O 구동 실습

 시리얼(Serial) 통신을 이용하여 아두이노의 포트 제어를 실습해 볼 수 있다.  



▶ 실물 회로도면 :




▶ 부대품 목록 : 아두이노 보드, 브레드 보드


▶ 부품 목록    : LED X 5 (보유수량 만큼),  220Ω(LED 수량 만큼) 


▶ 회로 도면   : 


※ LED 극성에 주의 한다. 


▶ 실제 연결 모습  : 


아두이노의 0, 1 번 포트는 하드웨어 시리얼 통신을 위한 TX, RX 포트 임으로 아두이노의 2번 포트 부터 사용하도록 한다.




▶ 프로그램 (코드& 설명) : 



2~5번 LED 코드 내용도 위와 같은 형태로 해서 작성한다. 



▶ 실행 영상 : 


 (전체화면으로 보세요)



※ 다음 시간에는 이런 입출력 기능을 이용하여 FND (7segment Display) 를 제어 해도도록 하겠다. 


▶ 아두이노 코드 다운로드 : 

sketch_SerialLEDon_off.ino


반응형