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Ω저항 | 케이블 |
| 부품 사진 | ![]() |
![]() |
![]() |
![]() |
![]() |


/*
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번)
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!
LED, 아두이노, 오렌지보드