초급 예제

누구나 쉽게 따라해볼 수 있는 쉬운 예제들입니다. 가볍게 도전~!

LED-모스부호로 S.O.S 깜빡이기

2014-08-06 08:46:29

개요

LED의 깜빡임으로 모스부호로 SOS를 나타내는 회로를 만들어 보자.




이렇게 큰 모스부호기를 손바닥만 한 크기로 나타낼 수 있다는 점은 충분히 매력적이다.
또한, 간단한 깜빡임으로 나타내므로 쉽게 만들 수 있고 예제소스의 Blink를 응용해서 쉽게 만들 수 있다.
비록 간단한 SOS밖에 모스부호로 출력하지 못하지만 SOS출력이라는 목적으로 만들기 때문에 결과물을 보면 의외로 재밌다!

 

미리보기 동영상

 

 

 

부품 목록

 

 

NO 부 품 명 수 량 상 세 정 보
1 아두이노 1  오렌지 보드
2 브레드 보드 1  
3 red LED 1  
4 270Ω저항 1  
5 케이블 2  

 

 

 

부품명 아두이노 브레드 보드 red LED 270Ω저항 케이블
부품 사진

 

 

 

 

 

하드웨어 making

 

전자 회로도

 


 

 

 

회로도

 

 

 

소프트웨어 coding

/*
33가지 프로젝트로 배우는 아두이노
 - 모스부호 S.O.S 깜빡이
*/

int ledPin = 12;


void setup() {                

  pinMode(ledPin, OUTPUT);     
}


void loop() {
  flash(200); flash(200); flash(200);
  //S
  delay(300);
  
  flash(500); flash(500); flash(500);
  //O
  
  flash(200); flash(200); flash(200);
  //S
  
  delay(1000);
 
}

void flash(int duration) {
  digitalWrite(ledPin, HIGH);  //LED 켜기
  delay(duration);              
  digitalWrite(ledPin, LOW);    //LED 끄기
  delay(duration);
}

소스설명

위 소스는 예제소스의 Blink예제를 이해가능하다면 쉽게 이해할 수 있는 간단한 소스이다.
주 사용명령어는 digitalWrite를 이용한 LED깜빡임이 전부이므로 이 깜빡임을 어떻게 표현해야 할지에 대한 응용이 가능하다면 다른방법으로도 소스를 구현할 수 있다.

2 digitalWrite(pin, value) 입력된 핀번호에 해당하는 핀으로 디지털값(High, Low)값을 출력

 


위 소스에서는 flash()함수를 사용하여 깜빡임을 flash함수에서 처리하게 하였고 loop()에서는 flash함수를 이용, 매개변수값으로 깜빡임 사이의 delay시간을 넣어줌으로 모스부호의 장, 단을 표현하였다. SOS표현이 끝나면 delay(1000)으로 끝났음을 표현한다.

※모스부호 SOS의 표현
 S -> *** (점 3번) 

 

 

 O -> ㅡㅡㅡ (선 3번)
 S -> *** (점 3번)
 

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

LED, 아두이노, 오렌지보드