Download presentation
Presentation is loading. Please wait.
Published byVincent Lépine Modified 6년 전
1
LCD를 활용한 탁상 시계 만들기 재료준비 및 브레드 보드 배선 구성하기 LCD를 활용한 탁상 시계 만들기 응용 작품 만들기
목차 재료준비 및 브레드 보드 배선 구성하기 LCD를 활용한 탁상 시계 만들기 응용 작품 만들기
2
준비물 준비하기 아두이노 보드 (SPL-Duino V2 초보자용 보드) USB 케이블 서보 모터, PSD 거리 센서
브레드보드 실습 키트
3
브레드보드 배선 구성하기 전원 연결 아래 그림과 같이 브레드 보드를 연결해줍니다.
4
브레드보드 배선 구성하기 센서 연결 LCD모듈과 아날로그 키패드를 연결해줍니다.
5
다중 for문 이해하기 다중 for 반복문이란? for(i=0; i<=10; i++) { }
for(j=0; j<=10; j++) }
6
다중 for문 이해하기 명령문_1; for(i=0; i<=10; i++) { 명령문_2;
for(j=0; j<=10; j++) 명령문_3; } 명령문_4; 명령문_5; 명령문_1을 실행하고 첫 번째 for문에 들어갑니다. 명령문_2를 실행하고 두 번째 for문에 들어갑니다. 명령문_4가 실행한 뒤 첫 번째 for문의 조건이 만족 할 때까지 반복합니다. 두 번째 for문은 첫 번째 반복문 만큼 실행됩니다. 모든 for문이 끝나면 명령문_5가 실행됩니다. 두 번째 반복문을 실행하여 명령문_3가 반복됩니다. j의 조건이 끝나면 명령문_4를 실행합니다.
7
다중 for문 이해하기 다중 for 반복 void setup() { Serial.begin(57600); }
void loop() for (int i = 1;i <= 10;i=i+1) Serial.print("i="); Serial.println(i); for (int j = 1;j <= 10;j=j+1) Serial.print("j="); Serial.println(j); delay(300); 좌측 소스를 실행하여 i와 j의 움직임을 확인하여 봅니다.
8
다중 for문 이해하기 다중 for 반복 for(i=0; i<=10; i++) { }
for(j=0; j<=10; j++) } for(i=0; i<=10; i++) { for(j=0; j<=10; j++) for(k=0; k<=10; k++) } k의 진행 j의 진행 i의 진행 i의 진행 j의 진행 i의 진행 단순 for문은 선, 2중 for문은 면, 3중 for문은 입체로 다중 for문은 늘어날 수록 차원이 늘어납니다.
9
기본 실습 탁상 시계 LCD 모듈을 이용하여 LCD모듈에 시계를 표현합니다. 시계의 조건
- 시계는 시, 분, 초를 가지고 있습니다. - 초가 60이 되면 초는 다시 0이 되고 분이 1 카운트 됩니다. - 분이 60이 되면 분은 다시 0이 되고 시가 1 카운트 됩니다. - 시는 24가 되면 다시 0이 됩니다. - delay(1000)은 1초
10
기본 실습 탁상 시계 #include <Wire.h> lcd를 이용을 위한 기본 세팅을 해줍니다.
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.begin(); lcd.clear(); Serial.begin(57600); } lcd를 이용을 위한 기본 세팅을 해줍니다.
11
기본 실습 탁상 시계 void loop() { for (int h= 0; h <24; h++)
for (int m = 0; m < 60; m++) for (int s = 0; s < 60; s++) lcd.clear(); lcd.print(h); lcd.setCursor(2,0); lcd.print(":"); lcd.setCursor(3,0); lcd.print(m); lcd.setCursor(5,0); lcd.setCursor(6,0); lcd.print(s); delay(1000); } 3중 for 반복문을 사용하여 줍니다. 첫 번째 for문은 시(hour)로 표현하고 초기값과 조건값을 맞춰 줍니다. 두 번째 for문은 분(minute)입니다. 마찬가지로 초기값과 조건값을 입력합니다. 세 번째 for문은 초(second)입니다. 초기값과 조건값을 수정하여 줍니다. 그리고 세 번째 for문에서부터 lcd명령어를 사용하여 줍니다. 반복문은 계속 갱신되기에 lcd.clear();를 이용하고 for문의 변수들이 시간을 표현하기에 입력 lcd.print();와 lcd.setCursor();를 이용하여 시분초의 위치를 정해줍니다.
12
기본 실습 탁상 시계 #include <Wire.h>
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.begin(); lcd.clear(); Serial.begin(57600); } void loop() for (int h= 0; h <24; h++) for (int m = 0; m < 60; m++) for (int s = 0; s < 60; s++) lcd.print(h); lcd.setCursor(2,0); lcd.print(":"); lcd.setCursor(3,0); lcd.print(m); lcd.setCursor(5,0); lcd.setCursor(6,0); lcd.print(s); delay(1000);
13
응용 작품 만들기 미션) 키패드 센서를 이용하여 시간을 수정 할 수 있는 장치를 만드십시오. 실습 시간 수정
1버튼 : 시간 수정 2,3버튼 : 좌우로 움직여 시분초를 선택 4,5버튼 : 시분초의 숫자를 수정
14
응용 작품 만들기 코드 예시 실습 #include <Wire.h>
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); int green = 722; int blue = 661; int white = 900; int yellow = 797; int red = 609; int mv=1; int cnt=0; void setup() { lcd.begin(); lcd.clear(); Serial.begin(57600); } void loop() for (int h= 0; h <24; h++) for (int m = 0; m < 60; m++) for (int s = 0; s < 60; s++) cnt=0; lcd.print(h); lcd.setCursor(2,0); lcd.print(":"); lcd.setCursor(3,0); lcd.print(m); lcd.setCursor(5,0); lcd.setCursor(6,0); lcd.print(s); delay(1000); int a0 = analogRead(0); Serial.println(a0); while(a0==white & cnt ==0) while (cnt == 0) int b0 = analogRead(0); Serial.println(b0); lcd.setCursor(mv,0); lcd.blink(); delay(300); lcd.setCursor(0,0); a0 = analogRead(0); if (a0==green) if (mv == 1) h++; else if (mv == 4) m++; else if (mv == 7) s++; if (h>23) h=0; if (s>59) s=0; if (m>59) m=0; else if (a0==red) h--; m--; s--; if (h < 0) h = 23; if (m < 0) m = 59; if (s < 0) s=59; else if (a0==yellow) mv=mv-3; if (mv <1) mv=1; else if (a0==blue) mv=mv+3; if (mv >7) mv=7; else if (a0==white) lcd.noBlink(); cnt = 1;
Similar presentations