Download presentation
Presentation is loading. Please wait.
1
한국기술교육대학교 아두이노 기반 펌웨어 개발 (기본과정) 1일차 강사: 김영준 목원대학교 겸임교수
2
목차 (1일차) 목차 아두이노 소개 설치 준비하기 기본 예제 실행하기 아두이노 사양 센서 연결하기 디지털 명령어 실습
창작 작품 실습
3
아두이노 소개
4
아두이노 소개 소개 오픈소스 소프트웨어의 대표적인 제품 이탈리아어로 오래된 친구하는 뜻 내포 (2005년 이탈리아) 디지털핀
Atmega328p 아날로그핀
5
아두이노 소개 소개 https://www.helloapps.co.kr/reference/ 에서 아두이노 작품 사례를
1) 이탈리아에서 만들어진 프로젝트 결과물 오픈소스 하드웨어 프로젝트의 결과물 하드웨어 설계도가 오픈되어 있어 누구든지 만들 수 있음 2) 아두이노로 할 수 있는 것 각종 창작 작품 만들기 발명작품 만들기 로봇 만들기 디지털 예술 작품 만들기 과학실험 장치 만들기 에서 아두이노 작품 사례를 확인해 봅니다.
6
아두이노 소개 소개 아두이노 종류 아두이노 Uno DIP 타입 아두이노 Uno TQFP 타입 아두이노 Nano TQFP 타입
아두이노 Pro Mini 아두이노 Mega2560 DIP (Dual In-line Package) TQFP (Thin Quad Flat Package)
7
준비하기
8
아두이노 실습 준비물 준비 또는 아두이노 보드는 어떠한 제품을 사용하더라도 명령어는 동일합니다.
SPL-Duino V2 보드 (2016년형 아두이노 통합보드) SPL-Duino V1 보드 (2015년형 아두이노 통합보드) 아두이노 보드는 어떠한 제품을 사용하더라도 명령어는 동일합니다. 교육의 목적과 편리성을 고려하여 제품을 사용하면 됩니다. 특정 브랜드 제품에 대한 의존성은 없으며 표준화된 제품입니다.
9
아두이노 통합 보드의 특징 준비 브레드보드 없이 센서를 바로 연결 학생들이 아두이노의 활용과 코딩에 집중할 수 있도록 함
10
아두이노 통합 보드의 특징 준비 1) 아두이노의 구성 SW 개발툴 (스케치) 아두이노는 3가지 형태의 제품들로 구성되어 있음
H/W 보드
11
아두이노 개발툴 설치하기 준비 아두이노 코드 개발툴 설치 과정 개발툴 다운로드 개발툴 설치 (또는 Unzip)
USB 드라이버 설치 아두이노 보드 연결 개발툴 실행 및 보드 선택
12
아두이노 개발툴 설치하기 준비 아두이노를 활용하기 위한 SW툴 다운로드 아두이노 우노 보드를 사용하는 경우
: 사이트에서 개발툴 다운로드 (개발툴 안에 USB 드라이버가 포함되어 있음) 아두이노 통합 보드 (SPL-Duino)를 사용하는 경우 : 사이트에서 개발툴 다운로드 (개발툴 안에 USB 드라이버가 포함되어 있음) SPL-Duino V2 SPL-Duino V1
13
통합보드용 개발툴 설치하기 준비 www.helloapps.co.kr 접속후 아두이노 페이지에서 다운로드 1 2
영문 명령어 버전 2
14
통합보드용 개발툴 설치하기 준비 한글 명령어 버전과 영문 명령어 버전의 차이 <한글 명령어 버전>
한글 명령어 버전과 영문 명령어 버전은 동일한 툴이며, 단지 명령어 표시 방법만 다릅니다. <한글 명령어 버전> 명령어가 한글로 표시 <영문 명령어 버전> 명령어가 C언어 표기와 동일하게 표시
15
통합보드용 개발툴 설치하기 1. 설치 후, 바탕화면에 “SPL” 폴더가 만들어 집니다.
준비 1. 설치 후, 바탕화면에 “SPL” 폴더가 만들어 집니다. SPL 폴더를 더블클릭하면 3개의 파일을 볼 수 있습니다. 2. USB 드라이버를 먼저 설치합니다. SPL-Duino V1 사용자 SPL-Duino V2 사용자 SPL-Duino 보드 버전에 맞는 USB 드라이버 설치 파일을 실행합니다.
16
통합보드용 개발툴 설치하기 2. SPL-Duino V2 보드 사용자를 위한 USB 드라이버 설치 준비
“다음” 버튼을 클릭하여 설치를 진행해 줍니다. 2. SPL-Duino V2 보드 사용자를 위한 USB 드라이버 설치 “INSTALL” 버튼을 클릭하여 설치를 진행해 줍니다.
17
통합보드용 개발툴 설치하기 준비 아두이노 보드와 PC를 USB 케이블을 통해 연결해 줍니다.
USB 케이블을 통해 아두이노 보드를 PC에 연결하면, PC화면의 우측 하단에 아이콘으로 잠시 동안 새로운 장치 설치 과정이 보일 수 있습니다. 최초 설치시에는 20~30초 정도 장치 추가과정이 소요될 수 있습니다. USB 케이블 PC SPL-Duino V1 보드 USB 케이블 PC SPL-Duino V2 보드
18
통합 코딩 SW 실행하기 준비 SPL 폴더에 있는 “SPL for 아두이노” 프로그램을 실행합니다.
USB 드라이버를 설치한 후, USB 케이블을 통해 아두이노 보드와 PC를 연결한 다음 개발툴 프로그램을 실행합니다.
19
통합 코딩 SW 실행하기 준비 한글 명령어 버전은 명령어가 한글로 표시됩니다. 기본 설치시에는 명령어가 한글로 표시됩니다.
20
통합 코딩 SW 실행하기 준비 영문 명령어 버전은 명령어가 C언어에서의 명령어와 동일하게 표시됩니다.
영문 명령어 버전 설치시에는 명령어가 영문으로 표시됩니다.
21
USB 드라이버 설치 확인하기 소개 및 개발툴 설치
V1 보드 연결시 다음 그림과 같이 Arduino Uno 상태로 표시되고 COM 포트 가 표시되어 합니다. 만약 COM 포트가 표시되어 있지 않다면 개발툴을 다시 실행하거나 USB 드라이버를 다시 설치해 주기 바랍니다.
22
USB 드라이버 설치 확인하기 소개 및 개발툴 설치
V2 보드 연결시 다음 그림과 같이 Arduino Nano 상태로 표시되고 COM 포트 가 표시되어 합니다. 만약 컴포트가 표시되어 있지 않다면 개발툴을 다시 실행하거나 USB 드라이버를 다시 설치해 주기 바랍니다.
23
아두이노 보드 구성 V2 보드 V2 보드의 구성은 다음과 같습니다. 디지털 핀 : 2번 부터 13번까지 사용할 수 있습니다.
: 0번과 1번은 사용하면 않됩니다. LCD나 LED 체인을 연결할 때 사용되는 I2C 핀입니다. 아날로그 핀 : 0번 부터 7번까지 사용할 수 있습니다. : 센서 연결시 0번부터 연결하세요.
24
아두이노 보드 구성 V1 보드 V1 보드의 구성은 다음과 같습니다.
25
가장 기초적인 예제 실행 LED 점멸 예제 아두이노에서 가장 기본적인 예제를 실행해 봅니다.
DigitalWrite 명령과 Delay 명령을 아래 그림과 같이 마우스로 움직여서 Loop 안에 추가해 줍니다.
26
가장 기초적인 예제 실행 LED 점멸 예제 잘못된 명령어 입력 사례
아래 그림은 틀린 명령어 입력 사례와 정상적인 명령어 입력 사례를 보여 줍니다. 본인이 작성한 프로그램이 혹시 잘못된 방식으로 되어 있는 지 확인하기 바랍니다. <틀린 사례> <정상적인 사례> 블록 명령어 들이 Loop 라인 이름의 함수 영역 안에 들어가 있어야 합니다. Loop 함수 바깥에 프로그램이 빠져 나와 있으면 오류가 발생합니다.
27
가장 기초적인 예제 실행 LED 점멸 예제 작성된 프로그램 실행
화면 중앙 상단에 있는 실행 버튼을 클릭하여 프로그램을 실행시킵니다. 저장을 묻는 창이 표시되면 저장 버튼을 클릭해 줍니다.
28
가장 기초적인 예제 실행 LED 점멸 예제 업로드 및 실행 상태를 보여주는 콘솔창이 표시됩니다.
29
가장 기초적인 예제 실행 LED 점멸 예제 실행 결과를 확인해 봅니다. (V2 보드) 이곳에 있는 빨간색 LED가 1초
간격으로 깜박입니다.
30
가장 기초적인 예제 실행 LED 점멸 예제 실행 결과를 확인해 봅니다. (V1 보드) 이곳에 있는 빨간색 LED가 1초
간격으로 깜박입니다.
31
가장 기초적인 예제 실행 LED 점멸 예제 콘솔 창을 닫아주어야 프로그램을 다시 수정할 수 있습니다.
32
가장 기초적인 예제 실행 LED 점멸 예제 다음과 같이 Delay 값을 더 작게 줄이고 다시 한번 프로그램을 실행해 봅니다.
33
스크립트로 실행하기 LED 점멸 예제 새파일을 열어서 스크립트를 선택합니다.
34
스크립트로 실행하기 LED 점멸 예제 명령어를 드래그하여 스크립트로 추가해 봅니다.
35
스크립트로 실행하기 LED 점멸 예제 작성된 프로그램 실행
화면 중앙 상단에 있는 실행 버튼을 클릭하여 프로그램을 실행시킵니다. 저장을 묻는 창이 표시되면 저장 버튼을 클릭해 줍니다.
36
C언어로 실행하기 LED 점멸 예제 새파일을 열어서 스크립트를 선택합니다.
37
C언어로 실행하기 LED 점멸 예제 C언어 기반 아두이노 스케치 코드를 입력합니다.
38
C언어로 실행하기 LED 점멸 예제 작성된 프로그램 실행 화면 중앙 상단에 있는 실행 버튼을 클릭하여 프로그램을 실행시킵니다.
저장을 묻는 창이 표시되면 저장 버튼을 클릭해 줍니다.
39
아두이노 업로드 과정 LED 점멸 예제 업로드 과정 블록 스크립트 C언어 C언어로 변환 컴파일 및 바이너리 생성 업로드
40
아두이노 스케치 툴 설치하기
41
아두이노 스케치 툴 설치하기 스케치툴 설치 사이트에 접속
42
아두이노 스케치 툴 설치하기 스케치툴 설치 압축을 해제합니다.
43
아두이노 스케치 툴 설치하기 스케치툴 설치 보드를 “Arduino Nano”로 선택합니다.
44
아두이노 스케치 툴 설치하기 스케치툴 설치 시리얼 포트를 선택해 줍니다.
45
아두이노 스케치 툴 설치하기 스케치툴 설치 LED 점멸 예제를 입력해 줍니다.
46
아두이노 스케치 툴 설치하기 스케치툴 설치 업로드 아이콘을 클릭합니다.
47
아두이노 사양
48
아두이노 특징 사양 아두이노 소개 마이크로컨트롤러 마이크로프로세서 + 메모리 + 입출력장치 싱글보드 컴퓨터 라즈베리파이 등
49
아두이노 사양 사양 아두이노 사양 항목 AT컴퓨터 아두이노 최신 PC CPU 80286 ATmega328
Intel Core i7 비트 16 8 64 메모리 32Kbyte 8Gbyte 클록 20MHz 16MHz 3.4GHz
50
아두이노 회로도 사양
51
아두이노 칩 사양 아트멜의 AVR 계열 제품 타이니 계열 : 0.5 ~ 16Kbyte 메가 계열 : 4~512Kbyte
ATmega328p -32: Kbyte -p: pico power: 대기모드에서 소비전력을 줄인 개선된 버전 X-메가계열 : 16~384Kbyte
52
아두이노 칩 타입 사양 DIP (Dual In-line Package) TQFP (Thin Quad Flat Package)
53
통신 사양 사양 통신 지원 방식 UART Rx, Tx 2개 핀 사용 1:1 통신 SPI
3개의 데이터 핀 (송수신 2개, 1개 동기화) 1개의 제어핀 1:n 통신, (3+n)개로 핀 수 증가 주변 장치와 고속 통신 I2C 데이터핀 1개 동기화핀 1개 1:n 통신 장치가 늘어나도 2개의 핀 만 사용
54
ATmega328 사양 항목 내용 비고 동작전압 1.8~5.5V 5V 핀수 28개 DIP : 28개 TQFP: 32ro 비트
입출력 가능 핀 23개 20개의 핀을 입출력으로 사용 외부 크리스털 2개 리셋 1개 플래시 메모리 32Kbyte SRAM 2Kbyte EEPROM 1Kbyte 동작주파수 0~20MHz 16MHz (외부 크리스털 사용시) 1MHz (기본 제품 출하시) 8MHz (설정시) ADC 채널 6개 PWM 채널
55
ATmega328과 128 비교 사양 항목 ATmega128 ATmega328 ATmega168 핀수 64개 28개
328과 동일 부품 타입 TQFP DIP 비트 8 플래시 메모리 128Kbyte 32Kbyte 16Kbyte (SRAM과 EEPROM도 328의 절반) 동작주파수 16MHz
56
ATmega328 핀배치 사양
57
ATmega328 핀배치 사양
58
ATmega328 핀배치 사양 리셋 디지털전원 아날로그전원 크리스털
59
최소 동작 부품 사양 최소 동작 부품 전체 동작 부품
60
AVR-C와 아두이노 스케치 사양 13번 LED 점멸 AVR C 아두이노 스케치 코드
#define F_CPU L #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB = 0x20; while(1) PORTB = 0x00; _delay_ms(1000); PORTB = 0x20; } return 1; 아두이노 스케치 코드 void setup() { pinMode(13, OUTPUT); } void loop() digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW);
61
센서의 연결
62
준비물 준비하기 디지털 센서 (LED 소자) SPL-Duino V2 보드 (초보자용 아두이노 보드)
아날로그 센서 (조도 센서)
63
아두이노 보드 아두이노 보드 초보자용 아두이노 보드 브래드보드가 필요없는 초보자용 아두이노 보드
64
아두이노 보드 아두이노 보드 초보자용 아두이노 보드 아두이노 우노 보드 브레드 보드 브래드보드 없이 센서를 아두이노 보드에
바로 연결할 수 있습니다
65
아두이노 보드 핀 설명 핀 설명 보드의 구조 아날로그 핀 디지털 핀 아두이노 보드
66
아두이노에서의 센서값 디지털 센서 디지털 센서 값 5V HIGH 또는 1 디지털 아두이노 센서 보드 전압 0V LOW 또는 0
디지털 센서는 0V ~ 5V 사이의 전압값이 출력되며, 아두이노에서는 이 전압값이 0 또는 1로 처리됩니다. 0V ~ 2.5V 사이는 0으로 표시하고 2.5V ~ 5V 사이는 1로 표시합니다.
67
아두이노에서의 센서값 디지털 센서 디지털 센서 값 5V HIGH (1) 0V LOW (0) 아두이노 보드에서의
디지털 센서값 처리 디지털 센서의 출력 또는 입력
68
예) DigitalWrite(13, HIGH)
아두이노에서의 센서값 디지털 센서 디지털 센서 값 아두이노에서 특별히 디지털 센서 값은 다음과 같이 예약어로 사용됩니다. 5V HIGH 라는 단어를 사용합니다. 예) DigitalWrite(13, HIGH) 0V LOW 라는 단어를 사용합니다. 예) DigitalWrite(13, LOW)
69
아두이노에서의 센서값 아날로그 센서 아날로그 센서 값 5V 1023 아날로그 아두이노 센서 보드 전압 0V
아날로그 센서는 0V ~ 5V 사이의 전압값이 출력되며, 아두이노에서는 이 전압값이 0 ~ 1023 사이의 숫자로 변환됩니다.
70
아두이노에서의 센서값 아날로그 센서 아날로그 센서 값 5V 1023 0V 아두이노 보드에서의 아날로그 센서의 출력 또는 입력
아두이노 보드에서의 아날로그 센서값 처리 아날로그 센서의 출력 또는 입력
71
디지털 센서 핀 디지털 센서 디지털 3핀 센서 핀의 구조 (G: Ground, 또는 GND로 표기) 0V 디지털 센서 5V
(V: Voltage, 또는 Vcc로 표기) 측정된 센서값 (S: Sensor 또는 D로 표기)
72
디지털 센서 핀 디지털 센서 디지털 3핀 센서를 아두이노 보드에 연결하는 방법 G G 아두이노 디지털 보드의 센서 디지털 핀
12개의 핀을 사용할 수 있습니다. 디지털 센서 아두이노 보드의 디지털 핀 G G V V S S 아두이노 보드에는 총 14개의 디지털 핀(0번 핀 ~ 13번 핀)이 있으나 이중에서 0번과 1번은 통신용으로 사용되고 실제는 2번 핀 부터 13번 핀까지 총 12개의 핀을 사용할 수 있습니다.
73
디지털 센서 핀 디지털 센서 디지털 3핀 센서를 아두이노 보드에 연결하는 방법 G 디지털 센서 V S
디지털 센서는 아두이노 보드의 디지털 핀 중에서 2번에서 13번 사이에 아무 핀이나 연결해 주면 됩니다. 위의 예제는 13번 핀에 연결한 예를 보여 줍니다.
74
디지털 센서 핀 디지털 센서 3핀 디지털 LED 소자 준비하기 센서 선(S)은 각 센서 제품마다
색상이 다릅니다. 헬로앱스 센서의 경우 흰색 종이 스티커가 붙어 있는 선이 센서 선입니다. 빨간색 선은 V (Voltage)를 의미합니다. 검정색 선은 G (GND)를 의미합니다.
75
디지털 센서 핀 디지털 센서 3핀 디지털 LED 소자를 아두이노 보드에 연결하는 방법 대부분의 3핀 아두이노 디지털 센서는
G / V / S 순서의 핀으로 구성되어 있습니다. 3핀 센서는 보드에 바로 연결해 주면 됩니다. 검정색 선(G)과 빨간색 선(V)의 색상을 확인한 후 아두이노 보드의 13번 핀에 연결해 줍니다.
76
디지털 센서 작동 예제 디지털 센서 블록 편집기를 이용하여 13번 핀에 연결된 디지털 LED 소자를 작동시켜 봅니 다.
DigitalWrite 명령과 Delay 명령을 아래 그림과 같이 마우스로 움직여서 Loop 안에 추가해 줍니다.
77
디지털 센서 작동 예제 디지털 센서 LED가 정상적으로 점멸하는지 확인해 봅니다.
78
아날로그 센서 핀 아날로그 센서 아날로그 3핀 센서 핀의 구조 (G: Ground, 또는 GND로 표기) 0V 아날로그 센서
(V: Voltage, 또는 Vcc로 표기) 측정된 센서값 (S: Sensor로 표기)
79
아날로그 센서 핀 아날로그 센서 아날로그 3핀 센서를 아두이노 보드에 연결하는 방법 G G 아두이노 아날로그 보드의 센서
6~8개의 핀을 사용할 수 있습니다. 아날로그 센서 아두이노 보드의 아날로그 핀 G G V V S S 아두이노 보드에는 총 6개의 아날로그 핀(0번 핀 ~ 6번 핀)이 있으며, 제품에 따라서는 8개의 아날로그 핀으로 구성된 보드도 있습니다. SPL-Duino 보드는 총 8개의 아날로그 핀으로 구성되어 있습니다.
80
아날로그 센서 핀 아날로그 센서 아날로그 3핀 센서를 아두이노 보드에 연결하는 방법 G 아날로그 센서 V S
아날로그 센서는 아두이노 보드의 아날로그 핀 중에서 A0번에서 A7번 사이에 아무 핀이나 연결해 주면 됩니다. 위의 예제는 0번 핀에 연결한 예를 보여 줍니다.
81
아날로그 센서 핀 아날로그 센서 3핀 아날로그 조도 센서 준비하기 검정색 선은 G (GND)를 의미합니다. 빨간색 선은
V (Voltage)를 의미합니다. 센서 선(S)은 각 센서 제품마다 색상이 다릅니다. 헬로앱스 센서의 경우 흰색 종이 스티커가 붙어 있는 선이 센서 선입니다.
82
아날로그 센서 핀 아날로그 센서 3핀 디지털 LED 소자를 아두이노 보드에 연결하는 방법
대부분의 3핀 아두이노 아날로그 센서는 G / V / S 순서의 핀으로 구성되어 있습니다. 3핀 센서는 보드에 바로 연결해 주면 됩니다. 검정색 선(G)과 빨간색 선(V)의 색상을 확인한 후 아두이노 보드의 0번 핀에 연결해 줍니다.
83
아날로그 센서 작동 예제 아날로그 센서 블록 편집기를 이용하여 아날로그 0번 핀에 연결된 조도 센서의 값을 화면에 출력하는 예제를 실행해 봅니다.
84
아날로그 센서 작동 예제 아날로그 센서 프로그램을 작동시킨 후 조도센서를 어둡게 가려 봅니다.
콘솔창에 표시되는 센서값을 확인해 봅니다. 손으로 가려서 밝기를 변화시켜 봅니다.
85
아날로그 센서 작동 예제 아날로그 센서 콘솔창에 표시되는 센서값을 확인해 봅니다. 0 ~ 1023 사이의 값이
이곳에 계속 표시됩니다.
86
디지털 명령어
87
아두이노 명령어 개요 디지털 명령어 디지털 명령어 아날로그 명령어 소리 생성 명령어 모터 제어 명령어 LCD 명령어
0 (LOW) 또는 1 (HIGH) 값을 가지는 부품 제어 아날로그 명령어 0 ~ 1023 사이의 값을 가지는 센서 제어 소리 생성 명령어 소리를 발생시키는 명령어 모터 제어 명령어 서보모터 및 다양한 모터 제어 LCD 명령어 문자 출력 장치 통신 명령어 인터넷, 블루투스 등의 통신
88
디지털 명령어 DigitalWrite (핀번호, 값) a = DigitalRead (핀번호) 디지털 명령어
디지털 핀에 값 쓰기 DigitalWrite (핀번호, 값) 디지털 핀에서 값 읽기 a = DigitalRead (핀번호)
89
디지털 명령어 실습1 디지털 명령어 실습 목표 주제1) 디지털 버튼으로 LED 제어하기 주제2) 토글 버튼으로 LED 제어하기
주제3) 반복 눌림을 방지하기 위한 기능 구현하기 주제4) 버튼으로 숫자 세는 장치 만들기 주제5) 눌려진 숫자를 LED로 횟수 표시하기 주제6) 버튼을 2초간 누르고 있으면 기능 초기화 하기
90
디지털 명령어 실습 디지털 명령어 실습을 위한 부품 연결 디지털 핀 2번 LED 소자 연결 디지털 핀 4번 디지털 버튼 연결
디지털 0번과 1번은 시리얼통신에서 사용하므로 절대로 다른 부품을 연결하면 안됩니다.
91
주제1) 버튼으로 LED 켜기 디지털 명령어 실습 목표 실습 내용 버튼을 누르고 있는 동안 LED가 켜지게 합니다.
디지털 버튼의 눌림 상태를 읽어 옵니다. 디지털 버튼의 상태에 따라 다음과 같이 LED를 제어합니다. 버튼이 눌려져 있으면 LED를 켭니다. 버튼이 눌려져 있지 않으면 LED를 끕니다.
92
주제1) 버튼의 값 출력 디지털 명령어 void loop() { d4 = DigitalRead(4) PrintLine(d4)
delay(100) }
93
주제1) 버튼으로 LED 켜기 디지털 명령어 void loop() { d4 = DigitalRead(4)
if (d4 == HIGH) DigitalWrite(13, HIGH) else DigitalWrite(13, LOW) delay(100) }
94
주제2) 토글 버튼으로 LED 켜기 디지털 명령어 실습 목표 실습 내용 디지털 버튼으로 토글 기능을 구현해 봅니다.
전역변수로 토글 상태를 저장합니다. 버튼이 눌려지면 토글 상태를 변경합니다. 토글 상태에 따라 LED를 켜거나 끕니다.
95
주제2) 토글 버튼으로 LED 켜기 디지털 명령어 togle = false void loop() {
d4 = DigitalRead(4) if (d4 == HIGH) if (togle) else togle = true } PrintLine(togle) DigitalWrite(2, HIGH) DigitalWrite(2, LOW) Delay(100)
96
주제3) 키 중복눌림 방지하기 디지털 명령어 실습 목표 실습 내용 전역 변수로 키 중복 눌림을 방지시켜 봅니다.
전역변수로 토글 상태를 저장합니다. 전역변수로 버튼이 눌려져 있는지 체크합니다. 버튼이 최초 눌려질 때에만 토글 상태를 변경합니다. 토글 상태에 따라 LED를 켜거나 끕니다.
97
주제3) 키 중복눌림 방지하기 디지털 명령어 전역변수 togle = false void loop()
pressed = false void loop() { d4 = DigitalRead(4) if (d4 == HIGH) if (pressed == false) if (togle) togle = false else togle = true } pressed = true pressed = false PrintLine(togle) DigitalWrite(2, HIGH) DigitalWrite(2, LOW) Delay(100) 전역변수
98
주제4) 버튼으로 숫자 세기 디지털 명령어 실습 목표 실습 내용
키 중복 눌림을 방지 기능을 활용하여 버튼의 눌려진 횟수를 화면에 표시합니다. 실습 내용 전역변수로 버튼이 눌려져 있는지 체크합니다. 전역변수로 눌려진 횟수를 저장하는 변수를 정의합니다. 버튼이 최초 눌려질 때에만 횟수 변수의 값을 증가시키고 화면에 값을 출력시킵니 다.
99
주제4) 버튼으로 숫자 세기 디지털 명령어 count = 0 pressed = false void loop() {
d4 = DigitalRead(4) if (d4 == HIGH) if (pressed == false) count = count + 1 PrintLine(count) } pressed = true else Delay(100)
100
주제5) 눌려진 숫자를 LED 점멸로 표시하기 디지털 명령어 실습 목표 실습 내용 눌려진 횟수를 LED 점멸로 표시해 봅니다.
전역변수로 버튼이 눌려져 있는지 체크합니다. 전역변수로 눌려진 횟수를 저장하는 변수를 정의합니다. 버튼이 최초 눌려질 때에만 횟수 변수의 값을 증가시키고 화면에 값을 출력시킵니 다. 눌려진 횟수 만큼 LED를 0.1초 간격으로 점멸 시켜 봅니다.
101
주제5) 눌려진 숫자를 LED 점멸로 표시하기 디지털 명령어 count = 0 pressed = false
void loop() { d4 = DigitalRead(4) if (d4 == HIGH) if (pressed == false) count = count + 1 for (i = 0; i < count; i++) DigitalWrite(2, HIGH) delay(100) DigitalWrite(2, LOW) } pressed = true else Delay(100)
102
주제6) 2초간 누르면 기능 초기화 하기 디지털 명령어 실습 목표 실습 내용
기존에 만들어진 기능에 초기화 기능을 추가해 봅니다. 실습 내용 전역변수로 버튼이 눌려져 있는지 체크합니다. 전역변수로 눌려진 횟수를 저장하는 변수를 정의합니다. 버튼이 눌려져 있는 시간을 저장하는 전역변수를 정의합니다. 버튼이 최초 눌려질 때에만 횟수 변수의 값을 증가시키고 화면에 값을 출력시킵니 다. 버튼이 눌려져 있는 동안에는 시간 변수의 값을 증가시킵니다. 시간 변수 값이 10을 넘으면 횟수 변수의 값을 0으로 초기화 합니다.
103
주제6) 2초간 누르면 기능 초기화 하기 디지털 명령어 count = 0 pressed = false t = 0
void loop() { d4 = DigitalRead(4) if (d4 == HIGH) if (pressed == false) count = count + 1 for (i = 0; i < count; i++) DigitalWrite(2, HIGH) delay(100) DigitalWrite(2, LOW) } pressed = true t = t + 1 else { pressed = false if (t > 10) count = 0 t = 0 } Delay(100)
Similar presentations