코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
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
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!