7주차 금고 만들기(블록코딩)
1. 키패드
4 x 4 크기의 키패드 모듈을 사용해 봅시다. 금고에 비밀번호를 설정해두고 키패드를 이용해 비밀번호를 누르는 기능을 만들 예정입니다.
1-1. 회로
1-2. 라이브러리 추가
먼저 아두이노에서 키패드를 사용하기 위해 확장 라이브러리를 추가합니다.
[확장]을 누르고 "KEYPAD"를 검색합니다.
아래 그림을 참고하여 확장 라이브러리를 추가해 주세요. ★ 2개 확장 라이브러리 모두 추가해 주세요!!
1-3. [실습] 특정 버튼이 눌렸을 때 LED 켜기
버튼 '*'이 눌리면 LED를 켜고, 버튼 '#'이 눌리면 LED를 끄는 코드를 작성해 봅시다.
1-4. [실습] 누른 문자열을 모두 변수에 저장하기
키패드에서 누르는 문자를 4개의 변수에 순서대로 저장해 봅시다.
키패드의 '#'이 눌렀을 때 이전까지 누른 문자열이 "1234"라면 LED를 1번 깜빡이고 아니라면 LED를 3번 깜빡이게 코드를 작성해 봅시다.
★ 키패드가눌림 블록을 생성할 때 참고하세요!
[숫자] 매개변수를 2개, [문자열] 매개변수를 1개 추가해주세요.
[문자열] 매개변수는 LCD에 문자를 출력할 때 사용할 예정이에요! 프레임없음|786x786픽셀
키패드가 눌릴 때마다 함수가 호출되고 눌린 순서에 따라 변수 [1], [2], [3], [4]에 순서대로 저장됩니다.
키패드에서 "#"을 누르면 [패스워드확인] 함수가 호출됩니다.
각 변수에 저장된 값이 1, 2, 3, 4인지 확인합니다.
비밀번호가 맞다면 LED를 1번 깜빡이고, 아니라면 3번 깜빡입니다.
마지막으로 비밀번호와 누른순서를 저장했던 변수를 모두 초기화시킵니다.
2. LCD
키패드로 누른 문자를 LCD를 이용해 출력해 봅시다.
2-1. LCD 회로도[편집 | 원본 편집]
I2C LCD 모듈 핀 | 아두이노 우노 핀 |
---|---|
VCC | 5V |
GND | GND |
SDA | A4 |
SCL | A5 |
아두이노에서 LCD를 사용하기 위해 확장 라이브러리를 추가합니다.
[확장]을 누르고 "Liquid"를 검색합니다.
아래 그림을 참고하여 확장 라이브러리를 추가해 주세요.
2-2. 키패드를 눌러 LCD에 문자 출력하기
키패드가 눌리면 LCD에 문자열을 출력하도록 코드를 작성해 봅시다.
위에서 작성한 코드에 LCD를 설정하는 블록을 추가합니다.
키패드가 눌릴 때마다 호출되는 [키패드가눌림] 함수에 눌린 순서에 따라 LCD를 출력하는 코드를 작성합니다.
LCD에 문자를 출력하는 함수에 대해서 알아봅시다. Print [출력할 문자열] at ( [ ] , [ ] ) 블록에 2개의 빈 칸이 있습니다. 이 2개의 칸은 LCD에서 출력할 위치를 의미합니다.
(0,0) | (1,0) | (2,0) | (3,0) | (4,0) | (5,0) | (6,0) | (7,0) | (8,0) | (9,0) | (10,0) | (11,0) | (12,0) | (13,0) | (14,0) | (15,0) |
(0,1) | (1,1) | (2,1) | (3,1) | (4,1) | (5,1) | (6,1) | (7,1) | (8,1) | (9,1) | (10,1) | (11,1) | (12,1) | (13,1) | (14,1) | (15,1) |
LCD는 가로 16칸, 세로 2칸으로 이루어져 있습니다.
위치를 변경해서도 출력해 보세요!
2-3. [실습] 비밀번호 확인하기
금고 프로젝트를 위해 비밀번호를 확인하는 기능을 구현해 봅시다.
비밀번호는 "2025"라는 문자열로 지정합니다.
키패드에 눌리는 문자열을 LCD에 출력합니다.
만약 키패드의 '#'을 눌렀다면 비밀번호를 확인합니다.
비밀번호가 맞다면 LCD에 "OK!!"를 출력하고 아니라면 "NOoooo!!"를 3초 동안 출력합니다.
★ 비밀번호를 확인 후 변수를 초기화 해야 다시 키패드를 눌러 비밀번호를 확인할 수 있습니다.
3. 서보모터 움직이기
3-1. 서보모터 회로
서보모터를 아두이노에 연결해봅시다.
서보모터의 검정색 선을 GND, 빨간색 선을 5V, 주황색 선을 디지털 핀(10번)에 연결해주세요.
3-2. 서보모터 회전하기
먼저 서보모터를 움직여 봅시다. 서보모터를 움직여 각도를 제어해 봅시다.
3-3. [실습] 비밀번호가 맞으면 금고 열기
위의 실습에서 비밀번호를 확인하는 코드를 작성해 보았습니다.
비밀번호가 맞다면 서보모터를 회전하여 금고를 열어봅시다.
서보모터가 "90"도로 회전하면 금고가 열리고 "0"도로 회전하면 금고가 잠깁니다.
3-4. [실습] 금고 완성하기
비밀번호를 확인하여 서보모터를 이용해 금고를 열었습니다. 나머지 동작을 코딩해 금고 프로젝트를 완성해 봅시다. 아래 순서에 따라 코드를 작성해보세요.
- 금고가 열리고 1초 후 LCD에 모든 문자열을 지우고 "Press 'A'"라는 문자열을 출력합니다.
- "Press 'A'"라는 문자열이 출력된 후 키패드의 'A'를 누르면 서보모터를 회전시켜 금고를 다시 잠궈주세요.
- 다시 비밀번호를 치고 '#' 버튼을 눌렀을 때 금고가 열리는지 확인하세요.
4. 실습 코드 참고하기
2-3. [실습] 비밀번호 확인하기
3-3. [실습] 비밀번호가 맞으면 금고 열기
3-4. [실습] 금고 완성하기
5. 금고 조립하기
금고 앞 면에 서보모터, LCD, 키패드 모듈을 배치합니다.
그림을 잘 보고 서보모터의 방향을 잘 배치하고 선을 금고 앞 면 뒤로 빼주세요.
서보모터를 고정시킬 부품과 고정핀을 이용해 사진처럼 조립해주세요.
이번에는 LCD를 고정시켜 봅시다. 위의 부품을 준비해주세요.
LCD를 고정할 판을 준비해서 끼웁니다.
그리고 고정 핀을 이용해 LCD를 금고 앞 면에 조립합니다.
센서를 가릴 면을 조립하기 위한 연결 부품을 가져옵니다.
그림을 보고 알맞은 부품을 가져와 조립해 주세요.
마지막 사진을 보고 앞에서 보았을 때 왼쪽 연결 부분에만 고정핀으로 조립, 오른쪽 연결 부분에는 고정핀으로 조립하지 않는 것을 확인하고 조립을 진행해 주세요.
아랫 부분도 부품을 찾아 연결합니다.
고정핀으로 고정시켜 주세요.
센서를 가릴 판을 가져와 조립합니다.
센서들의 손은 사진처럼 바깥으로 빠져나올 수 있게 정리해주세요.
고정핀으로 고정시켜 주세요.
금고의 아래, 옆 면을 찾아와 조립합니다.
고정핀을 이용해 고정합니다.
금고의 잠금 장치를 위한 부품을 찾아 조립합니다.
★★★ 빨간 동그라미를 잘 보고 네모 구멍이 금고의 뒷 편으로 가도록 조립해야 합니다.
이번에는 앞서 조립해두었던 금고의 앞 면을 가져와 봅시다.
금고 아랫 면의 홈에 금고 앞 면을 조립합니다.
금고의 옆, 앞 면을 조립해두었습니다.
금고의 윗 면을 가져와 금고를 조립해봅시다.
만약 윗 면을 조립하기 힘들다면 왼쪽 면을 빼고 윗 면을 먼저 조립해보세요.
윗 면을 먼저 조립 후 다시 왼쪽 면을 고정시켜 보세요.
면을 조립하였다면 고정핀으로 고정해 주세요.
마지막으로 뒷 면을 조립해 봅시다.
★★★★ 뒷 면을 닫기 전 아두이노 케이블을 아두이노에 연결한 후 닫아주세요. ★★★★ 닫고나면 연결하기 힘들어용 😂
완성!!