Arduino 003 - 아두이노 드라이버가 잘 설치되지 않을 때

과학이야기/물리학 2015. 10. 11. 10:27

Arduino 003-아두이노 드라이버가 잘 설치되지 않을 때

제가 교육용으로 사용하고 있는 아두이노 키트는 스파크펀(http://www.sparkfun.com)에서 판매하고 있는 Inventor’s Kit입니다. Inventor’s Kit에는 두 종류가 있습니다. 첫 번째는 정품 아두이노 UNO가 들어 있는 키트이고, 또 하나는 스파크펀에서 제작해서 판매하는 호환기종인 RedBoard가 포함된 키트입니다.


국내에서는 아트로봇에서 구입할 수 있습니다. http://www.artrobot.co.kr


지난 목요일(2015.10.08.) 밤에 양구교육지원청 영재교육원 아이들과 아두이노를 가지고 놀았습니다. 평상시에는 우리 학교 아이들과 기숙사 컴퓨터실에서 가지고 노는데 이번에는 컴퓨터실을 이용했더니 우리가 사용하는 아두이노 키트의 드라이버가 잘 설치되지 않더군요. 정품 아두이노를 사용하는 키트는 정상적으로 잘 설치가 되는데 아두이노 호환기종인 RedBoard는 잘 설치가 되지 않았습니다.


아두이노 보드를 이용하려면 FTDI USB드라이버를 설치해야 합니다. 그런데 아두이노 IDE에 포함된 FTDI USB 드라이버의 버전은 2.08.14였습니다. 최신의 FTDI USB드라이버를 설치하려면 다음 사이트에 들어가셔서 Virtual COM Port Driver를 찾아 설치해야 합니다.


http://www.ftdichip.com

이곳에 들어가셔서 [Drivers]-[VCP Drivers]를 찾아 들어가시면 됩니다. 아래는 바로가기 링크입니다.

http://www.ftdichip.com/Drivers/VCP.htm

이 사이트에서 아래로 조금 내려가면 Currently Supported VCP Drivers라는 표가 나오고 그곳에서 최신 버전의 드라이버를 다운로드 받으셔서 설치하시면 아마도 설치가 되고 아두이노를 정상적으로 이용할 수 있을 것입니다. 제가 글을 쓰고 있는 현재 최신 버전은 2.12.06입니다. Windows용 설치 파일을 이용하여 설치하려고 할 때는 Comments의 [setup executable]을 선택하여 실행하시면 될 것입니다.


이상은 아두이노를 설치하면서 USB드라이버가 잘 설치되지 않을 때 해결하는 방법에 대한 간단한 설명이었습니다.


오늘도 좋은 하루 되세요.


[새길]

설정

트랙백

댓글

Arduino 002 - LED깜빡이 pinMode(), digitalWrite(), delay(), HIGH, LOW

과학이야기/물리학 2015. 7. 22. 11:17

Arduino 002 - LED깜빡이 pinMode(), digitalWrite(), delay(), HIGH, LOW

아두이노를 만나서 가장 먼저 해보는 예제입니다. 일정한 시간 간격으로 LED를 깜빡이게 하는 기능입니다.


준비물 : 아두이노보드, 브레드보드, LED, 저항(330Ω), 점프선


1. LED와 저항을 직렬로 연결합니다.

2. 아두이노 보드의 D13번 포트와 LED의 (+)선을 연결합니다.

3. 저항을 아두이노보드의 GND에 연결합니다.

4. 다음 소스를 아두이노 IDE에서 입력한 후 프로그램을 아두이노 보드에 업로드합니다.


아두이노 소스


void setup() {

   pinMode(13, OUTPUT);

}


void loop() {

  digitalWrite(13, HIGH);

  delay(1000);            

  digitalWrite(13, LOW);

  delay(1000);      

}


이 소스를 먼저 분석하겠습니다. 아두이노는 크게 두 부분으로 나눌 수 있습니다. 처음 시작할 때 호출되는 함수인 setup()과 무한 반복하는 loop()함수입니다.

먼저 setup()함수를 보면 하는 일이 핀모드를 설정했습니다. 핀모드는 pinMode()함수를 이용하여 세팅을 합니다. 제가 사용하고 있는 아두이노 우노 보드의 경우에 14개의 디지털 핀을 가지고 있습니다. 이 핀을 통해 디지털 신호(HIGH, LOW)를 입력 받거나(INPUT), 출력(OUTPUT)을 할 수 있습니다. 디지털 핀을 이용하고자 할 때는 그 핀이 입력용으로 사용할 것인지, 출력용으로 사용할 것인지를 미리 결정해 주어야 하는데 이것을 지정하는 함수가 pinMode()입니다.


pinMode()함수 사용법은 다음과 같습니다.


pinMode(pin, mode);


pin : 사용하고자 하는 핀 번호(0 – 13)

mode : 입력으로 사용할 때는 INPUT, 출력으로 사용할 때는 OUTPUT


제가 사용한 pinMode(13, OUTPUT);은 13번 핀을 출력용으로 사용한다는 의미를 가지고 있습니다.


이제 무한 반복 함수인 loop()함수로 넘어가겠습니다.

디지털 출력을 하는 함수는 digitalWrite()함수입니다. 사용 방법은 다음과 같습니다.


digitalWrite(pin, value);


pin : 사용하는 핀 번호(setup()함수에서 입력이나 출력으로 지정한 핀)

value : HIGH 또는 LOW


이 예제에서 13번 핀을 출력용으로 지정했기 때문에 ditalWrite(13, HIGH)라고 하면 13번 핀으로 HIGH를 출력합니다. 또한 ditalWrite(13, LOW)라고 하면 13번 핀으로 LOW를 출력합니다. 여기서 HIGH와 LOW가 무슨 뜻인지 알아보겠습니다.

디지털 신호에서 HIGH는 5V를 출력한다(3.3V용 아두이노 보드는 3.3V)는 의미를 가지고, LOW는 0V를 출력한다는 의미를 가지고 있습니다.


digitalWrite(13, HIGH);

delay(1000);

ditalWrite(13, LOW);

delay(1000);


위 소스는 13번 핀으로 5V를 1초(1000ms)동안 출력하고, 다시 1초 동안 0V를 출력하다는 의미를 가지고 있습니다. 시간에 따라 전압이 변하는 과정을 그래프로 그리면 다음과 같습니다.


HIGH상태, 즉 5V가 출력될 때는 1초 동안 LED에 불이 켜지고, LOW상태, 즉 0V일 때는 1초동안 LED가 꺼지게 됩니다. 이 과정이 loop()함수 안에 있게되면 계속 이 과정을 반복하게 되어 계속 LED가 깜빡이게 됩니다.


[새길]








설정

트랙백

댓글

Arduino 001 – LED 불 켜기와 옴의 법칙

과학이야기/물리학 2015. 7. 21. 21:34

Arduino 001 – LED 불 켜기와 옴의 법칙

준비물 : 아두이노 보드, 브레드보드, LED, 저항(330Ω), 점프선


 

이 예제는 단순하게 LED에 불을 켜는 과정을 설명하기 위한 것입니다. 아두이노 보드를 컴퓨터와 연결하면 아두이노 보드에 전원이 공급되면서 보드에서 LED와 저항에 전류를 공급하여 LED에 불이 들어오게 됩니다. 저항 없이 연결을 할 경우에도 불은 들어오지만 불빛이 굉장히 밝고 오래지 않아 LED는 타서 꺼지고 맙니다. 보통 많이 사용하는 빨강, 초록, 노랑, 주황색 LED는 2V전후의 전압을 걸어주어야 하는데 아두이노 보드에서 5V의 전압을 걸어주기 때문에 LED가 타고 마는 것이다. 그래서 330Ω의 저항을 LED와 직렬로 연결해 준 것입니다. 그럼 330Ω은 어떻게 결정하게 된 것일까?


 

보통 빨간색 LED는 2V전압에 10mA정도의 전류를 흘려주면 안정적으로 불이 켜지게 됩니다. 위의 회로에서 LED에 2V의 전압이 걸리고 저항에 3V가 걸리게 해주면 됩니다. 구하고자 하는 저항의 값을 이라고 할 때 이 저항에도 10mA의 전류가 흘러야만 합니다. 따라서 옴의 법칙에 의해 다음과 같이 저항값을 구할 수 있습니다.

대략 300Ω정도의 저항을 사용하면 안정적으로 LED에 불이 켜지게 할 수 있다는 뜻입니다. 그러나 실제 계산 결과에 딱 맞는 저항값을 갖는 저항이 있다고 할 수 없습니다. 그 경우에는 가장 가까운 값의 저항을 사용합니다. LED를 5V에 연결할 때 가장 많이 사용하는 저항에 330Ω의 저항입니다.


만일 고휘도 LED를 사용하게 될 때는 저항을 다른 값의 것을 사용해야 합니다. 보통 흰색이나 파란 색의 고휘도 LED가 3.6V의 전압에 10mA의 전류가 흐를 때 가장 안정적으로 불이 들어온다고 가정할 때 저항에는 1.4V의 전압이 걸려면서 10mA의 전류가 흘러야 하므로 이 때의 저항은 다음과 같이 계산할 수 있습니다.

구해진 저항값에 가장 가까운 저항을 사용하면 되는데 보통은 150Ω의 저항을 가장 많이 사용하고 있습니다.


우리가 보통 구입하는 LED에는 몇 V에 몇 A의 전류가 흘러야 하는지 표시가 되어 있지 않습니다. 전자부품 구입처에서 LED를 구입할 때는 LED가 담겨 있는 봉투에 꼭 정격전압과 전류를 유성펜으로 적어 놓아 적절한 저항을 사용할 수 있도록 준비를 해 놓는 것이 좋습니다.

추가로 하나 더!

LED의 방향을 바꿔 끼우면 어떻게 될까요? LED의 방향을 바꾸면 전류가 흐르지 못해 LED에 불이 켜지지 않습니다. 거꾸로 전류가 흐르는 것을 막는 기능을 수행하는 것입니다. 보통 LED의 다리가 긴 것을 (+)극 쪽에, 다리가 짧은 것을 (-)극에 연결해 줘야 정상적으로 불이 켜지게 됩니다.

 

 

[새길]


설정

트랙백

댓글