查看“3장. 버튼을 이용하여 LED 제어하기”的源代码
←
3장. 버튼을 이용하여 LED 제어하기
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language|第三课--按钮控制的LED开关/ko}} {| style="width: 800px;" |- | ==목표== 처음 두개의 예제에서는 LED를 직접 제어하는 방법을 알아봤다. 버튼을 추가해서 LED를 제어할 수 있다면 하드웨어와 소프트웨어의 조화를 만들어 낼 수 있을 것이다. 두 예제에서 LED 출력제어를 위해 마이크로두이노 I/O 포트했으며 버튼 입력을 모니터링하기 위해서는 어떤 방법을 사용해야 할까? 이번 장에선 마이크로두이노의 입력을 설정하고 입력값을 읽고 사용하는 방법에 대해 알아보도록 하자. ==부품== *'''[[Microduino-Core/ko|마이크로두이노 코어 모듈]]''' *'''[[Microduino-USBTTL/ko|마이크로두이노 USBTTL 모듈]]''' *기타 부품 **브레드보드 점퍼선 약간 **브레드보드 1개 **LED 1개 **220ohm 저항 1개 **버튼 1개 **USB 데이터 케이블 1개 ==버튼== *버튼 동작원리 [[File:button.jpg|600px|center|thumb]] 4핀 버튼중에 두핀은 항상 연결되어 있으로 PCB 제작시 유용하게 활용될 수 있다. *버튼 연결 [[File:button connection.jpg|600px|center|thumb]] ==회로도== [[File:button schematic.jpg|600px|center|thumb]] 외부의 저항을 풀다운 저항을 사용하면 누르지 않았을 경우 '0'을 누를 경우 '1'을 나나낸다. ==프로그램== * 버튼값 LED에 표시하기 <source lang="cpp"> const int buttonPin = 2; // 버튼 입력포트 정의 const int ledPin = 11; // LED 출력포트 정의 int buttonState = 0; // 버튼 값 초기화 void setup() { pinMode(ledPin, OUTPUT); // LED 출력포트를 출력으로 정의 pinMode(buttonPin, INPUT); // 버튼 입력핀을 입력으로 정의 } void loop(){ buttonState = digitalRead(buttonPin); // 버튼핀(buttonPin)으로 부터 값을 읽는 함수호출 if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); // 입력값이 HIGH이면, LED 켠다. (LED 애노드는 I/O핀에 연결하고, 캐소드는 GND에 연결한 상태) } else { digitalWrite(ledPin, LOW); // LED 끈다. } } </source> *LED voltage flip <source lang="cpp"> const int buttonPin = 2; // 버튼 입력포트 정의 const int ledPin = 11; // LED 출력포트 정의 int buttonState = 0; boolean led; // LED 상태값 변수 정의 void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); // 내부풀업 저항을 이용하여 버튼 입력포트 정의 // pinMode(buttonPin, INPUT); // 내부풀업 저항을 이용하지 않고 버튼 입력포트 정의. 외부 풀업저항을 이용한다. } void loop(){ buttonState = digitalRead(buttonPin); if (buttonState == HIGH) // 외부 풀다운저항을 사용하면 초기값이 '0'이므로 버튼을 누른 경우 '1'이 되므로 버튼을 누르지 않으면 LED가 깜밖이지 않는다. { delay(200); // 안정화를 위한 시간지연 // delay(1000); // 오래 누르는 경우 // if (buttonState == LOW) // 버튼 입력이 '0'인지 확인 led=!led; // LED 값을 바꾼다. } digitalWrite(ledPin, led); } </source> 이번 장에서는 버튼의 안정적인 입력을 위해서 시간지연을 적용했다.. 또한 100nF 커패시터를 버튼입력포트에 연결하는 방법도 있다. 버튼 입력의 안정화를 위한 방법으로 http://www.geek-workshop.com/thread-74-1-1.html를 참조하세요. ===digitalRead()함수 사용하기=== 핀의 값을 읽고 High 또는 Low로 변화시키기 ==결과== *프로그램 1 : LED로 입력 버튼값 표현하기. 입력인 High 일때 LED 켜고 Low 일때는 끈다. *프로그램 2 : 버튼을 누를 때 마다. LED를 깜빡이고 버튼 안티 쉐이킹을 적용했다. ==비디오== |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
3장. 버튼을 이용하여 LED 제어하기
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息