비밀번호 인증 장치 만들기(천재교육 정보교과서): 두 판 사이의 차이
잔글 (→입력 / 출력 장치 선정) |
잔글편집 요약 없음 |
||
61번째 줄: | 61번째 줄: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== 실행결과 === | === 실행결과 === | ||
이미지 | 이미지 |
2024년 8월 20일 (화) 15:21 판
본 위키는 천재교육 고교 정보교과서 내 P. 220 비밀번호 인증 장치 만들기에 해당하는 내용을 서술합니다.
P. 220 다양한 센서를 사용한 비밀번호 인증 장치 만들기
다양한 센서를 사용하여 비밀번호 인증이 가능한 피지컬 컴퓨팅 장치를 만드는 예제입니다.
입력 / 출력 장치 선정
교과서의 예시 중 아두이노를 활용한 방법을 사용합니다.
- 입력장치 : 아두이노 보드, 버튼 4개, 저항, 점퍼 케이블(연결선)
- 출력장치 : 부저
이 외에도 3x4 키패드 같은 다른 입력장치를 활용할 수 있습니다.
회로 구성
- 스위치 1~4 : 아두이노 D2 ~ D5핀
- 부저 : 아두이노 D6핀
아두이노 코드
두 번째 줄에서 미리 설정해둔 비밀번호에 따라 입력받은 비밀번호를 판정합니다.
비밀번호를 맞추었을 때와 틀렸을 때 부저의 소리가 다르게 울립니다.
const int buttonPins[4] = {2, 3, 4, 5};
const String correctPassword = "0123"; // 설정된 비밀번호
String inputPassword = "";
const int buzzerPin = 6; // 부저 핀 번호
void setup() {
Serial.begin(9600);
for (int i = 0; i < 4; i++) {
pinMode(buttonPins[i], INPUT_PULLUP); // 내부 풀업 저항 사용
}
pinMode(buzzerPin, OUTPUT); // 부저 핀을 출력으로 설정
}
void loop() {
for (int i = 0; i < 4; i++) {
if (digitalRead(buttonPins[i]) == LOW) { // 버튼이 눌리면
inputPassword += String(i); // 버튼 번호 추가
delay(300); // 디바운스 처리
}
}
if (inputPassword.length() == 4) { // 4자리 비밀번호 입력 시
Serial.print("입력한 비밀번호: ");
Serial.println(inputPassword);
if (inputPassword == correctPassword) {
Serial.println("비밀번호가 일치합니다!");
tone(buzzerPin, 1000, 500); // 1000Hz 소리, 500ms 동안
} else {
Serial.println("비밀번호가 일치하지 않습니다.");
tone(buzzerPin, 500, 500); // 500Hz 소리, 500ms 동안
}
inputPassword = ""; // 입력 초기화
}
}
실행결과
이미지