아두이노2016. 5. 2. 21:48

아두이노 보드에는 여러가지가 있지만 실제로 사용할 제품을 만들 경우나 작으면서 얇은 휴대형의 장치를 만들 경우에는 되도록 작은 아두이노 보드를 사용하는 것이 좋습니다.  핀 커넥터 같은 경우도 공간을 차지하므로 커넥터 없이 사용할 단자만 납땜하여 사용하면 공간이 훨씬 줄어들 것입니다. 이런 모든면에서 기준에 부합되는 아두이노 보드가 아두이노 프로 미니 보드 (Arduino Pro Mini) 가 아닐까 생각해 봅니다. 하지만 조금 불편한 점도 있는데 PC에서 작성한 프로그램을 보드에 직접 업로드 할 수가 없다는 점 입니다.  우노의 경우에는 USB 연결을 하면 USB를 통해서 바로 프로그램의 업로드가 가능했지만 프로미니에서는 이 기능이 제거되어 있습니다. USB를 통하여 PC와의 통신을 담당하는 칩이 없는 것이죠. 그래서 프로그램을 업로드 하려면 프로미니와 USB TO TTL 이라는 장치를 연결해 주어야 합니다. 


우선은 아두이노 프로미니에 대해서 알아보고 아래쪽에서 USB TO TTL 모듈을 이용한 프로그램 업로드에 대해서 알아보겠습니다.

아두이노 프로 미니의 모습니입니다. 무척 가볍고 작습니다. 비교한 동전은 구형 십원짜리가 아니라 작은 크기의 신형? 10원짜리 입니다. 백원짜리랑 비교하려고 했는데 백원짜리가 없네요. ^^;  무게는 달아보진 않았지만 찾아보니 2g 정도 된다고 합니다. 가벼워서 드론 같은데 쓰이면 딱 알맞겠습니다. MCU는 우노와 동일한 ATMega328 입니다. 그러므로 기능이나 성능도 같습니다. 구버전의 프로미니는 ATMega168을 이용했었다고 합니다. 프로미니는 3.3V/8Mhz, 5V/16Mhz 의 두 가지 버전이 있습니다. 저의 보드는 5V/16Mhz 제품 입니다. 상세한 스펙은 아래와 같습니다. 


아두이노 프로 미니 스펙

1. 20 digital input/output port RX and TX, D2 ~ D13, A0 ~ A5

2. 8 analog input port A0 ~ A7

3. 1 to the TTL level a serial port to send and receive port RX/TX

4. 6 PWM port, D3, D5, D6, D9, D10, D11

5. Using Atmel Atmega328P - AU microcontroller

6. Support serial download

7. Support external 3.8 V ~ 12 V  power supply

(5V 제품 : 5~12V, 3.3V제품 : 3.3~12V)

8. Support the 12 v and the following batteries

9. 16 MHZ clock frequency

10. Size: 33.3 * 18 (mm)



뒷 모습 입니다. 16M 과 5V에 체크가 되어 있습니다.


테스트를 위하여 기본으로 제공되는 저 핀들을 모두 납땜해서 붙여야 합니다. 보드가 작아서 만만한 작업이 아니네요. 실제로 얇은 물건을 만들 필요성이 있다면 저 핀들 대신에 보드에 전선을 직접 납땜해야 겠지요.


프로미니와 같이 구입한 USB TO TTL 장치 입니다. PC에 꼽아서 사용합니다. USB를 통해서 PC에서 작성한 프로그램을 프로미니로 업로드 하는 역할을 합니다.


USB TO TTL 모듈 뒷면 입니다. 각 단자별 설명이 붙어 있습니다. 참고로 RX 와 TX 는 프로미니와 엇갈려서 연결해야 합니다. RX-RX, TX-TX 이렇게 연결하면 프로그램이 업로드 되지 않습니다.


그럼 이제 어려운 작업이 남았네요. 테스트를 위해서 단자들을 납땜해야 겠습니다. 휴~



납땜은 이렇게 미니 브레드보드에 납땜할 핀을 꼽은 후에 동전으로 균형을 맞추고 진행했습니다. 핀이 고정되어서 납땜하기가 훨씬 편하네요.


납땜을 완료 했습니다. 납땜할때는 옆의 단자와 쇼트나지 않게 꼼꼼하게 잘 해야 합니다. 뭐 막상 해보니까 그다지 어렵지 않네요. 잘 되려나요? 


납땜 모습 입니다. 잘 된데도 있고 잘 안된데도 있는데 이 정도면 잘 한거 같습니다. ㅋ

USB TO TTL 모듈과 아두이노를 연결했습니다. 모듈에 저 주황색 쇼트 점퍼는 전압을 조절하는 역할을 합니다. 저게 없는게 많던데 제가 구입한 것은 저게 있더군요. 용도는 전압조절 입니다. 5V와 VCC를 쇼트 시키면 3.3V 를 사용할 수 있고 3.3V와 VCC를 쇼트 시키면 5V를 쓸 수 있습니다. 저의 프로 미니는 5V 이기 때문에 3.3V와 VCC단자에 꼽아서 쇼트 시켰습니다.  (쇼트 점퍼에 대해서는 '큰구름' 님의 댓글을 참조 바랍니다)


위의 두 장의 사진을 보면 연결을 할 수 있겠지만 다시 한 번 연결에 대해서 정리해 보겠습니다.


아두이노 프로 미니와 USB TO TTL 모듈의 연결


 아두이노 프로 미니

 USB TO TTL 모듈

 VCC

 5V

 GND

 GND

 TXD

 RXD

 RXI

 TXD







USB TO TTL 모듈의 단자는 6개인데 3.3V와 VCC 단자는 점퍼로 쇼트 시켰기 때문에 위의 표와 같이 4개의 단자만 연결하면 됩니다.


※ 참고로 이 모듈은 DTR(리셋기능)이 없는 제품 입니다. 그래서 프로그램 업로드 시 아두이노의 리셋버튼을 눌러서 수동으로 아두이노를 리셋해줘야 업로드가 완료 됩니다. 만약 DTR 핀이 있는 USB TO TTL 모듈을 가지고 계시면 위의 표와 같이 연결하시고 모듈의 DTR 핀을 프로 미니의 TXD 옆에 있는 DTR 단자에 추가로 연결해 주셔야 합니다. DTR핀이 있는 모듈은 업로드시 자동으로 리셋이 되므로 아두이노의 리셋버튼을 누를 필요가 없습니다. 구입하실때는 이왕이면 DTR핀이 있는 제픔으로 구매하세요.


PC의 USB에 USB TO TTL 모듈을 꼽아 보았습니다. 위와 같이 CH340 (칩의 이름) 이라는 장치가 COM4 포트로 자동으로 잡혔습니다. 만약 인식되지 않는다면 가지고 있는 모듈의 칩셋이 무엇인지 알아내서 해당되는 드라이버를 설치해야 합니다. 




PC에 연결하고 LED 를 하나 연결하고 Blink 예제를 업로드 해 보았습니다. 잘 됩니다.  저의 모듈과 같이 DTR 기능이 없는 모듈로 아두이노 프로미니에 업로드 하는 방법을 조금 자세히 알려드리겠습니다. 다시 한 번 말하지만 DTR 기능이 있는 모듈은 이 과정이 필요가 없습니다.


1. 업로드 준비가 모두 끝났으면 아두이노 프로미니의 리셋버튼을 누른채로 스케치 프로그램의 업로드 버튼을 누릅니다.

2. 프로그램이 컴파일 되고 있는 중에도 계속 누르고 있습니다.

3. 컴파일이 완료되고 '업로드...' 라고 나오면 누르고 있던 리셋버튼 떼 줍니다.

4. 그럼 잠시 후 '업로드 완료' 가 될 것 입니다.


혹시나 드라이버도 잘 잡히고 인식도 잘 되는데 안되는 분들은 모듈을 뽑았다가 다시 꼽아 보세요. 저도 맨 처음 드라이버를 잡았을때는 잘 안됐는데 뽑았다가 다시 꼽으니 잘 되네요.



※추가내용 (2016.12.19) : 아두이노 프로미니의 상세한 Pin Map 을 http://adlerweb.deviantart.com/art/Arduino-R-like-Pro-Mini-Pinout-Diagram-555078152 에서 퍼왔다. 누르면 커짐.


반응형
Posted by 대네브 (deneb)

댓글을 달아 주세요

  1. 큰구름

    글 잘 읽었습니다. 감사합니다.
    다만, USBtoTTL모듈과 아두이노 연결에서 설명이 좀 잘못된것 같은데 아닐까요.

    제 생각은 모듈의 쇼트 점퍼는 TX와 RX의 전압 레벨을 정할때 사용하는것이 아닐까 생각됩니다.
    즉, USBtoTTL모듈의 쇼트점퍼를 5v와 vcc에 끼우면 TX,RX의 레벨이 +5v 레벨의 입출력 되고,

    3.3v와 vcc에 끼우면 TX,RX의 레벨이 +3.3v 레벨의 입출력 되는식으로 말이죠.

    그래서 쇼트점프를 끼우면 사용할 TX,RX의 레벨과 아두이노가 원하는 전원을 동시에 사용할 수 없어니
    이 USBtoTTL모듈은 아두이노에 딱 맞춰서 나온제품이 아니란 거죠.
    정석대로라면 납땜작업을 해 양쪽의 레벨을 맞춰야 사용해야겠지만
    TXRX 3.3v레벨에서도 불안정하지만 동작은 하는것이 아닌가 생각됩니다.

    만약에 USBtoTTL모듈의 회로가 아래와 비슷하다면
    쇼트점퍼를 빼 버린 상태에서도 사용할 수 있지 않을까 생각됩니다만...
    https://ecs7.tokopedia.net/img/cache/700/product-1/2015/6/9/283166/283166_d1017e50-0e64-11e5-b58f-19cb64efb121.jpg

    그리고 CH340 데이터 시트에서 DTR 핀에서 100nF 콘덴서를 달아서 리셋으로 연결해 사용할 수도 있다는 글도 있는것 같습니다.

    2018.02.02 21:01 [ ADDR : EDIT/ DEL : REPLY ]
    • 감사합니다. 큰구름님 말씀이 맞는것 같습니다.
      취미수준으로 하는 포스팅이라 틀린게 많네요 ^^
      본문 수정 하겠습니다
      감사합니다!

      2018.02.02 21:20 신고 [ ADDR : EDIT/ DEL ]