개요
LED 하나를 연결하여 1초마다 켜고 끄기를 반복하여 깜박여 봅시다.
필요한 부품
220 오옴(Ω) 저항 |
빨간색 LED |
|
|
x 1 |
x 1 |
- 220 오옴(Ω)의 저항은 띠의 색깔이 순서대로 빨간색, 빨간색, 갈색입니다.
- 220 오옴(Ω)의 저항은 확장 키트에 들어 있습니다.
- 저항값 읽는 방법
- LED(Light Emitting Diode)는 발광 다이오드라고 합니다.
- LED는 다리가 긴 쪽이 양극(+), 짧은 쪽이 음극(-)입니다.
위의 그림과 같은 경우에는 휘어져 있는 다리를 쭉 펴면 길이가 더 기니까
휘어져 있는 다리가 양극(+)입니다.
- 쉽게 외우는 방법: '짧음', 즉 짧은 쪽이 음극(-)입니다. '길음'은 말이 좀 이상하죠?
- 빨간색 LED는 확장 키트에 들어 있습니다.
부품 연결
- 220 오옴(Ω) 저항을 A4-5와 A4-6에 꽂습니다.
- 빨간색 LED의 양극(+, 다리가 긴 쪽)을 A4-7에, 음극(-, 다리가 짧은 쪽)을 A4-8에 꽂습니다.
코드 작성
설명
- 포트 A의 모드를 디지털 출력으로 설정합니다.
- 출력 A의 값이 1이면 LED가 켜지고, 0이면 꺼집니다.
- 값이 HIGH(1)일 때 동작하는(LED가 켜지는) 것을 Active High라고 합니다.
스크래치
엔트리
파이썬
from roboid.hamster import *
robot = Hamster()
robot.write(Hamster.IO_MODE_A, Hamster.IO_MODE_DO)
while True:
robot.write(Hamster.OUTPUT_A, 1)
wait(1000)
robot.write(Hamster.OUTPUT_A, 0)
wait(1000)
자바스크립트
var hamster = Hamster.create();
hamster.ioModeA(Hamster.IO_MODE_DIGITAL_OUTPUT);
var on = true;
setInterval(function() {
if(on) {
hamster.outputA(1);
} else {
hamster.outputA(0);
}
on = !on;
}, 1000);
C 언어
#include "hamster.h"
int main(int argc, char *argv[]) {
hamster_create();
hamster_write(HAMSTER_IO_MODE_A, HAMSTER_IO_MODE_DO);
while(1) {
hamster_write(HAMSTER_OUTPUT_A, 1);
hamster_wait(1000);
hamster_write(HAMSTER_OUTPUT_A, 0);
hamster_wait(1000);
}
return 0;
}
자바
import roboid.hamster.Hamster;
public class Example {
public static void main(String[] args) {
Hamster robot = new Hamster();
robot.write(Hamster.IO_MODE_A, Hamster.IO_MODE_DO);
try {
while(true) {
robot.write(Hamster.OUTPUT_A, 1);
Thread.sleep(1000);
robot.write(Hamster.OUTPUT_A, 0);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
}
}
}
추가 활동
- Active Low 방식으로 빨간색 LED를 깜박여 봅시다.
- 앞으로 달려가는 햄스터 로봇의 앞을 손으로 막으면 빨간색 LED를 깜박이면서 뒤로 후진하도록 해봅시다.
- 확장 보드의 빨간색 버튼을 누르면 빨간색 LED가 깜박이고 손을 떼면 깜박임을 멈추고 꺼지도록 해봅시다.
- 확장 보드의 빨간색 버튼을 한 번 누르면 빨간색 LED가 깜박임을 시작하고 다시 한 번 버튼을 누르면 깜박임을 멈추고 꺼지도록 해봅시다.
포트 B에 연결하는 방법
- 220 오옴(Ω) 저항을 B4-5와 B4-6에 꽂습니다.
- 빨간색 LED의 양극(+, 다리가 긴 쪽)을 B4-7에, 음극(-, 다리가 짧은 쪽)을 B4-8에 꽂습니다.
목차
Copyright Robot Software Education Institute. All rights reserved.
Please contact prof. Kwang-Hyun Park (
akaii@kw.ac.kr) if you have any problem.