개요:

FTDI보드는 PC USB포트를 통해 아두이노와 PC간의 시리얼 통신을 가능하게 해주며, PC에서 제작된 프로그램을 아두이노로 전송하는 용도로도 사용됩니다. (아두이노UNO, Mega2560제품은 본 기능이 내장되어 있습니다.)

 


 

[사진1] FTDI변환기들 (좌: 5V형, 중간: 5V형 릴리패드 디자인 , 우: 3.3V형)

 

선택시 참고사항: USB시리얼 변환기는 몇가지 유형의 제품이 있지만 사용전압만 맞쳐주면 서로 호환이 됩니다. 아래의 제품별 호환 FTDI변환기를 참고하시기 바랍니다.

 

 
아두이노 제품명
 
호환되는 FTDI USB시리얼 변환기
Arduino Pro 5V, Pro mini 5V FTDI 변환기 5V 
Arduino Pro 3.3V, Pro mini 3.3V, FIO(3.3V) FTDI 변환기 3.3V
LilyPad Basic, LilyPad Simple
*릴리패드는 내장 레귤레이터가 없으므로
입력되는 외부전압을 기준으로 작동됩니다.
FTDI 5V or 3.3V
*회로 구성에 따라 3.3V형과 5V형 모두 사용 가능합니다.

 

여러가지 전압레벨의 아두이노를 사용중이실 경우 하나의 FTDI변환기를 5V형 및 3.3V형으로 사용할 수 있는 기능이 있습니다. (FTDI보드 해킹 자료를 참고하세요

아두이노 FIO는 독특한 기능을 여럿 갖고 있습니다.

1. LiPo 배터리 충전기능 내장
2. 충전위한 USB포트 제공 ( PC에 꽂아두면 충전이 됨)
3. XBee소켓내장 ( XBee를 꽂으면 무선통신이 가능해집니다.)

즉, LiPo배터리를 꽂아두면,  휴대형/ 충전형 아두이노 디바이스가 되고
사용후 PC에 꽂아두면 충전이 되므로 전원에 대해 신경쓸 일이 줄었습니다.

게다가 무선통신을 위해 많이 이용되는 XBee모듈 장착용 소켓이 내장되어 있어서
이곳에 XBee를 꽂아주면, 시리얼 통신으로 PC를 비롯한 외부 장치들과 연동이 됩니다.  Wow~

이래저래 매우 유용한 제품임이 분명합니다. 기능으로 볼 때 아직까지 보급이 많이 안 된 제품인것이 이상할 정도네요;;

아래의 사진을 보시면 여러 기능을 이해하실 수 있을겁니다.


[사진1]기본형태 -  XBee 장착용 소켓이 보입니다.
반대편엔 Atmega328P AU 칩과 리셋버튼이 있습니다.



[사진2]옆면에  USB포트와 JST 배터리 커넥터가 보입니다.
USB포트는 USB시리얼 변환기와 무관하며, 단순히 USB케이블로부터 전원을 받아오는데 사용됩니다.
이 전원으로 JST소켓에 장착된 LiPo배터리를 충전하는 기능이 내장되어 있습니다.


[사진3] JST커넥터로 Lipo배터리 연결한 장면


[사진4] USB케이블을 연결하여 충전이 되고 있습니다.  CHG 표시 LED에 불이 들어온것이 보입니다.


[사진5] XBee를 장착한 장면입니다.



[사진6] XBee와 Lipo배터리 장착한 상태


[사진7] 외부케이블 연결을 위해 핀헤더소켓을 장착한 상태입니다.


[사진8] FTDI USB시리얼 변환기를 이용해 프로그래밍 하기위한 접속예입니다.


참고로, 아트로봇에서 판매중인 FTDI USB시리얼 변환기는 아두이노 Pro, Pro mini, FIO, LilyPad 모두와 호환되는 핀배열을 갖고있어서 핀헤더만 장착하면 그대로 연결할 수 있습니다.  (단, 5V형과 3.3V형 제품은 구분해줘야 합니다.)



(2012.4월 추가사항)
헤더 납땜없이 FTDI 보드로 Fio에 프로그래밍을 할경우 아래의 이미지를 참고하시기 바랍니다.   임시 결합시 18mm 핀헤더를 사용하시고 아래의 이미지 같이 금속핀을 양쪽에 균등하게 배분한 뒤 FTDI보드와 Fio에 연결후  Fio 와의 결합을 정확히 하기 위해 약간 힘을 줘서 기울여준 상태로 프로그램을 Uploading 하시면됩니다.   접촉상태가 좋지않으면 프로그램 업로드시 오류가 뜹니다.

 

 

 

 

 

아두이노를 처음시작하시는 분들을 위한 참고사항입니다.

입문자분들이 아두이노로 가장 먼저하는것이 LED ON/OFF 제어인데요

이때 주의할 점이 있습니다.

일부 서적이나 안내글에서 LED를 저항도 없이 5V전원이나  아두이노 출력핀에 연결하는 경우가 있습니다.
이는 잠깐이라도 하지 않는것이 좋습니다. (실행은 자유지만, LED는 물론이고 값비싼 아두이노까지 단명할 수 있습니다;; )

물론 AVR 자체 및 전류제한회로등에 의한 보호기능이 약간은 있겠지만, 완전하지 않으며 아두이노 수명단축을 재촉하는 일이 될 수 있으므로  LED연결시엔  꼭 전류제한용 저항을 장착하시기 바랍니다. 
어 떤값의 저항을 사용할지 모르신다면, 보통 2V정도에서 작동하는 LED를 5V전원에서 작동하는 경우 200~330옴 정도를 많이 사용합니다. 이때 전류제한용 저항의 값이 작아지면 더 밝아지고, 커지면 어두워집니다. 너무 큰저항값을 사용하면 LED가 꺼지죠
(정확한 저항값 계산은 관련자료를 찾아보시며 많이 나올겁니다)

아래의 이미지를  참고하시기바랍니다.

[그림1]의 경우 LED는 금방 돌아가십니다.

[그림2]의 경우 특히 많이 인용되는 장면인데요, 이것도 안좋은 예입니다. 
 아두이노 Blink예제 소개 페이지에도 저항이 포함되어있는것을 보실 수 있습니다: http://arduino.cc/en/Tutorial/Blink

 참 고로, 표준아두이노의 경우 디지탈핀13번에는 내부LED용 전류제한저항이 기본으로 내장되어있지만, 외부에 별도로 연결된 LED와는 무관합니다. (싱크방식으로 연결할수는 있긴합니다만 그건 나중에 회로공부를 조금 하신후에 응용하세요^^)
그러므로 13번핀이라도 직결하지 마시기 바랍니다.

아두이노 핀을통해 LED를 직접 구동할 경우엔 항상
[그림3.] 같이 전류제한용 저항을 함께 연결해주시기 바랍니다.



[그림1] LED 5V전원 직결




[그림2] 디지탈 5V출력에 LED 직결




[그림3] 디지털 5V출력에 전류제한용 저항과 LED 직결 (권장)



한가지 더 말씀드리면,  FND나 LED여러개를 구동할때도 역시 LED 하나마다 개별적으로 저항이 들어가는게 원칙입니다.
(다만 동시에 한개만 작동하는경우 회로구성에 따라 저항개수를 줄이수는 있습니다.)
그리고, 여러개의 LED를 구동할때는 전체 전류허용량을 고려해야합니다.

그림4.를 참고하시기 바랍니다.  핀하나에서 흘릴수있는 최대전류량이 40mA입니다. 
즉, LED 구동시 이값을 넘기면 안된다는 얘기입니다. 그래서 각각 저항을 추가해 줘야합니다.
그리고 또한가지 잊지말아야 할것은  전체허용전류량입니다.  
즉, 핀하나당 전류가  40mA이하로 흘러야함과 동시에, 전체적으로 200mA가 넘지않아야 합니다.

부디, 값비싼 아두이노 오래오래 고장없이 사용하시길 바람하는맘으로 이글을 적습니다. 
참고가 되셨기를~


[그림4] Atmega328 전류허용범위



Arduino Pro mini의 경우,  프로그래밍을 위해 FTDI USB시리얼 변환기를 사용해야합니다.

이때, 어떻게 연결해야하는지 궁굼해 하시는 분들이 계실것 같아서 참고자료를 올려봅니다.

 

참고로, Pro mini의 경우 2gram이 안되는 무게로인해 쿼드콥같은 경량형 작품에 사용되기 적합한 제품입니다.

그리고, 경량화를 위해 사용하는 경우라면 궂이 프로그래밍시에만 사용하는 FTDI변환기 결합용 헤더핀을 납땜해 둘 필요가 없으므로 아래와 같이 길이가 긴 헤더핀을 FTDI변환기에 꽂은 뒤 핀을 Pro mini에 삽입 후 약하게 꺽어 눌러주면 임시 결합이 됩니다. 이상태로 프로그래밍을 해도 정상적으로 진행이 되므로 참고하시기 바랍니다.

 

프로그래밍시엔, 아두이노 프로그래밍 환경인 스케치에서 기본 지원이 되는 모델이므로

1. 보드 설정을 Arduino Pro or Pro Mini (작동전압/작동속도)로 선택해주시고,

2. FTDI USB시리얼 변환기가 사용중인 포트번호를 설정해주시면 됩니다.

 

 

아래의 이미지와 동영상을 참고사하기 바랍니다.

사진1. 결합방향 참조 (납땜없이 사용하는 예)

사진2. 납땜없이도 연결하여 프로그래밍이 가능합니다.

 

 

동영상1. 임시결합하여 프로그래밍 후 작동상태 확인 후 탈착해 봤습니다.

참고로 무지 작은 Arduino Pro mini 라도 아두이노UNO와 동일하게 프로그래밍으로 제어가능한 LED가 디지탈13번핀에 기본장착되어 있습니다. 크기는 작지만 기본 기능은 동급입니다!!

 

 

 

아두이노UNO를 사용하여 새로운 타입의 아두이노 SoftPot(위치감지)센서와 서보모터 연동 사용예입니다.

아두이노 스타터킷 및 아두이노 인벤터킷에 포함된  새로운타입의 센서입니다.


SoftPot센서는 세개의 단자가 있으며 기본 작동법은 가변저항과 같습니다.  전압핀과 GND을 연결하면 나머지 단자를 통해 접촉위치에 해당되는 전압을 측정할 수 있습니다.   아래의 회로도 참조

[그림1. SoftPot센서 단자안내 - 대응 회로도(사용법은 가변저항과 같습니다.)


아두이노 스케치 소스는 아래와 같습니다. 
스케치에서 기본제공하는 서보제어 예제코드를 거의 그대로 사용했습니다.  참 쉽죠잉~!

알림:
스케치제공 서보모터 작동 기본예제 코드는 작동범위를 0~180으로 설정했지만, 실제로 서보모터의 종류에따라 이값의 범위를 지원하지 못하는경우가 있습니다. 이경우 서보모터에 무리가 가게 되므로  제경우 10~170으로 값의 범위를 줄여줬습니다. 항상 사용하려는 기기의 한계범위를 고려해서 프로그래밍을 해줘야 기기를 오래오래 고장없이 사용할 수 있습니다.


#include <Servo.h>
 
Servo myservo;  // 서보모터제어를 위한 객체를 생성합니다
 
int potpin = 0;  // 센서입력을 받은 아날로그핀을 A0로 설정합니다.
int val;    //  센서입력(아날로그)값을 임시저장할 변수입니다
 
void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
 
void loop()
{
  val = analogRead(potpin);            // A0에 연결된 SoftPot센서의 값을 읽어옵니다.
  val = map(val, 0, 1023, 10, 170);     // 아날로그입력값 0~1023을 서보모터에 맞게 10~170으로 변환합니다.
  myservo.write(val);                  //  서보모터신호를 센서 입력값에 따라 변경합니다
  delay(15);                           // 약간의 지연시간을 줍니다. 
}

//code 뷰어가 오류가 계속되어 그냥 텍스트로 올렸습니다 ;;

아두이노 선택을 위한 안내문입니다.

현재 두에밀라노브에 이어 UNO가 표준형 아두이노로 자리를 잡아가는 상황입니다.

하지만, 아두이노팀에서는 UNO말고도 여러가지 용도별 아두이노들을 개발하고 있는 상황입니다.

아두이노팀의 공식 하드웨어 소개페이지: http://arduino.cc/en/Main/Hardware  에서 확인해 보실 수 있습니다.

 

아시는분들은 다 알고계시는 내용이지만, 아두이노를 처음 접하시는 분들이나 영어자료가 부담스러우셨던 분들에게 조금이나마 참조가 될수 있는 자료입니다. 참고하시기바랍니다.

 

아두이노UNO, 아두이노 Mega2560, 아두이노 Pro, 아두이노 Pro mini, 아두이노 FIO, 아두이노 LilyPad, FTDI USB시리얼 변환기, 아두이노쉴드 에대해 소개하고있습니다.  

 

 

+ Recent posts