비밀번호 인증 장치 만들기(천재교육 정보교과서): 두 판 사이의 차이
잔글편집 요약 없음 |
잔글편집 요약 없음 |
||
(같은 사용자의 중간 판 8개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
{{#seo:|title=아두위키 : 아두이노 비밀번호 인증 장치 만들기(천재교육 정보교과서) 가이드|title_mode=append|keywords=아두이노, 정보과학, 메이커학습, 수행평가, 비밀번호 인증 장치 만들기, 아두이노 작품, 아두이노 예제코드, 엔트리 아두이노, 파이썬 아두이노|description=천재교육 고교 정보교과서 내용에 따라 아두이노로 비밀번호 인증 장치를 만드는 방법(기본정보, 회로, 예제 코드)을 소개합니다. 정보과학과 메이커수업에 활용가능합니다.}} | {{#seo:|title=아두위키 : 아두이노 비밀번호 인증 장치 만들기(천재교육 정보교과서) 가이드|title_mode=append|keywords=아두이노, 정보과학, 메이커학습, 수행평가, 비밀번호 인증 장치 만들기, 아두이노 작품, 아두이노 예제코드, 엔트리 아두이노, 파이썬 아두이노|description=천재교육 고교 정보교과서 내용에 따라 아두이노로 비밀번호 인증 장치를 만드는 방법(기본정보, 회로, 예제 코드)을 소개합니다. 정보과학과 메이커수업에 활용가능합니다.}}본 위키는 천재교육 고교 정보교과서 내 P. 220 비밀번호 인증 장치 만들기에 해당하는 내용을 서술합니다. | ||
본 위키는 천재교육 고교 정보교과서 내 P. 220 비밀번호 인증 장치 만들기에 해당하는 내용을 서술합니다. | |||
10번째 줄: | 8번째 줄: | ||
=== 입력 / 출력 장치 선정 === | === 입력 / 출력 장치 선정 === | ||
교과서의 예시 중 아두이노를 활용한 방법을 사용합니다. | |||
* '''입력장치''' : 아두이노 보드, [[택트 스위치(Tact Switch)|버튼(택트 스위치)]] 4개, 저항, 점퍼 케이블(연결선) | |||
* '''출력장치''' : [[부저(Buzzer)|부저]] | |||
이 외에도 [[3x4 키패드]] 같은 다른 입력장치를 활용할 수 있습니다. | |||
[[택트 스위치(Tact Switch)|'''택트 스위치''']], [[부저(Buzzer)|'''부저''']]와 관련된 자세한 내용은 링크 문서를 참고해주세요. | |||
=== | === 회로 구성 === | ||
* '''스위치 1~4''' : 아두이노 D2 ~ D5핀 | |||
* '''부저''' : 아두이노 D6핀 | |||
[[파일:천재교육고교정보교과서비밀번호회로.jpg|918x918픽셀]] | |||
=== 아두이노 코드 === | |||
두 번째 줄에서 미리 설정해둔 비밀번호에 따라 입력받은 비밀번호를 판정합니다. | |||
비밀번호를 맞추었을 때와 틀렸을 때 부저의 소리가 다르게 울립니다.<syntaxhighlight lang="c++" line="1"> | |||
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 = ""; // 입력 초기화 | |||
} | |||
} | |||
</syntaxhighlight> | |||
=== 실행결과 === | === 실행결과 === | ||
==== 1. 시리얼 모니터 ==== | |||
네 자리 버튼을 누르고 나면 입력된 비밀번호와 일치 여부가 표시됩니다. | |||
[[파일:천재교육고교정보교과서비밀번호시리얼모니터실행결과.jpg]] | |||
==== 2. 실행 영상 ==== | |||
비밀번호 일치 여부에 따라 부저가 다르게 울립니다. | |||
<div class="coders70"> | |||
<youtube> FCx_DTkJ7H0 </youtube> | |||
</div> |
2024년 8월 20일 (화) 16:03 기준 최신판
본 위키는 천재교육 고교 정보교과서 내 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 = ""; // 입력 초기화
}
}
실행결과
1. 시리얼 모니터
네 자리 버튼을 누르고 나면 입력된 비밀번호와 일치 여부가 표시됩니다.
2. 실행 영상
비밀번호 일치 여부에 따라 부저가 다르게 울립니다.