1장. LED 켜기(브레드보드를 이용하기)

来自Microduino Wikipedia
Shin SongSup讨论 | 贡献2014年9月4日 (四) 23:52的版本
跳转至: 导航搜索

목표

마이크로두이노를 이용하여 LED를 제어하는 방법을 배우게 될 것입니다.. 마이크로아두이노의 I/O 포트를 어떻게 제어하는지 배울 것이고 I/O 포트를 제어하는 것은 매우 기초적인 기술이며 앞으로도 많이 사용하게 될 것입니다.

재료

마이크로아두이노 코어모듈은 아트멜사의 ATmega328P, ATmega168PA 시리즈를 기반으로 만들어진 8비트 마이크로프로세서 개발보드입니다.

자세한 사항은 마이크로두이노 코어모듈을 참조하세요

마이크로두이노 코어 또는 코어 플러스 모듈과 PC를 연결하여 프로그램을 다운로드할때 사용하는 모듈입니다. 마이크로 USB 사양을 채택하고 있습니다. 1달러 동전과 비슷한 사이즈를 가지고 있습니다. 스마트폰의 USB 케이블과 같으므로 편리하고 실용적입니다.

자세한 사항은 Microduino-USBTTL(FT232RL)를 참조하세요.

  • 기타 재료들
    • 브레드보드 점퍼선 약간
    • 브레드보드 1개
    • LED 1개
    • 220ohm 저항 1개
    • USB 데이터 케이블 1개

브레드보드 알아보기

수직방향으로 5개의 점은 서로 연결되어 있고 수평방향의 25개의 점끼리 연결되어 있습니다. 수평의 50개의 점이 모두 연결되어 있는 것도 있습니다. 한줄은 GND, 한줄은 VCC로 사용한다. 자세한 것은 아래 그림을 참조합시다.

브레드 보드

저항과 LED

LED가 타는 것을 방지하기 위해 전류제한 저항을 사용합니다. 보통 붉은색과 녹색 LED는 1.8 ~ 2.4V에서 동작하고, 파란색과 흰색 LED는 2.8 ~ 4.2V에서 동작합니다. 3mm LED는 약 1 ~ 10mA의 전류를 소모하며, 5mm LED는 5 ~ 25mA, 10mm LED는 25 ~ 100mA의 전류값에서 동작합니다. R = U / I 의 식으로 저항값을 구할 수 있습니다. 계산값에 의하면 수백 오옴의 저항을 연결하면 됩니다.

회로도

두가지 연결방법이 있습니다. 하나는 LED의 캐소드를 GND에 연결하고, LED의 애노드는 마이크로두이노의 디지털 I/O 13번핀에 연결하는 방법과 다른 하나는 캐소드는 마이크로두이노 디지털 I/O 13번핀에 연결하고 다른 하나는 VCC 핀에 연결하는 방법이 있습니다.

LED를 연결하는 방법

프로그램

  • delay() 함수사용하기:
int led = 13;                   // Define the PIN
void setup() {                
  pinMode(led, OUTPUT);         // Define the I/O port 13 as output   
}
void loop() {
  digitalWrite(led, HIGH);        // I/O port 13 output High. If the connection is high lighted,the LED will light, otherwise extinguished
  delay(1000);                    // delay 1s
  digitalWrite(led, LOW);         // I/O port 13 output Low.If the connection is high lighted,the LED off, otherwise light.
  delay(1000);                    // delay 1s
}
  • milies() 함수 사용하기 : 마이크로두이노가 시작한때 부터 지금까지의 밀리초의 값을 리턴합니다.
int ledPin=13;
#define TIME 1000 
long time1=0,time2=0;

void setup()
{
  pinMode(ledPin,OUTPUT);
}

void loop()
{
  if(millis()<time2+TIME)
  {
     digitalWrite(ledPin,HIGH);
     time1=millis();
  }
  else 
  {
     digitalWrite(ledPin,LOW);
     if(millis()>time1+TIME)
        time2=millis();
  }
}


delay()함수보다 millis() 함수를 사용하는 것이 좋습니다. 왜냐하면 시스템의 지연이 적고 리소스를 적게 사용하기 때문입니다.

프로그램 다운로드 방법

  • 아두이노 통합개발환경(IDE)의 "메뉴 > 도구 > Microduino-Core(ATmega328P@16M, 5V)"를 선택합니다. ATmega328P를 사용한 보드에는 2가지가 있습니다. 0오옴 저항을 사용하여 구분합니다.
Boardtype.jpg


  • COM 포트를 선택합니다. 사용자의 컴퓨터에 따라 COM 포트가 다르므로 적당한 포트를 선택하는 것이 중요합니다. COM 포트는 아두이노 IDE의 "메뉴 > 도구 > 시리얼포트"에서 선택할 수 있습니다. 시스템에서 COM 포트를 확인하는 방법은 "내컴퓨터"에서 마우스 오른쪽 버튼을 클릭하고 "속성 > 장치관리자 > 포트(COM & LPT))"에서 확인할 수 있으며, COM port를 선택하고 오른쪽 마우스를 클릭하면 "속성>포트설정"에서 시리얼 포트 파라메터 값을 변경할 수 있다.
  • 다운로드 완료
Compile.jpg
Download.jpg

결과

다운로드한 후, 1초 간격으로 LED가 깜빡거리는 것을 볼 수 있다.

비디오