-
Notifications
You must be signed in to change notification settings - Fork 0
Raspberry Pi LED practice (with Thonny IDE)
김선영 edited this page Oct 2, 2024
·
27 revisions
목차
- 라즈베리파이에서 택트(Tact) 스위치를 연결할 때 저항을 사용하지 않고 연결한다면 스위치를 누를때와 누르지 않을때 차이가 없게된다.
- 이유 : 플로팅 현상때문인데, 떠 있는 상태로 신호가 0(LOW)과 1(HIGH)사이에 애매한 위치에 떠 있기 때문에 발생함.
(OS에서 파이썬 에디터 사용을 알아보려면 클릭하세요!)
라즈베리파이5는 최신 os를 설치하면 자체적으로 파이썬이 설치되어있음!
Thonny IDE 편집기
좌측 상단 메뉴에 개발탭 살펴보면 Thonny 편집기는 자체적으로 설치되어 있음.
Nano 편집기
sudo nano [파일이름].py
Nano 편집기 사용방법은 위 명령어로 파일 생성 후, 편집기에 내용을 추가하면 됩니다.
| 라즈베리파이 | LED |
|---|---|
| GPIO 12 | VCC |
| GND | GND |
- 풀업 저항(Pull-up) : 저항을 전원쪽에 붙여줘서, 플로팅 현상을 해결하는 방법
- 스위치가 off로 열려있을 때 전류의 방향은 전원에서 IO핀으로 진행함.
- IO핀의 값은 HIGH(1)
- 스위치가 on 닫혀있을 때 전류의 방향은 SWITCH 그라운드로 진행함.
- IO핀의 값은 LOW(0)
- 참고: 라즈베리파이는 외부에 풀업 저항을 달지 않고 자체적으로 내부 풀업 저항을 소프트웨어로 사용할 수도 있음.
- GPIO 16번, 21번은 OUTPUT으로 사용 GPIO 20번은 INPUT으로 사용함.
- GPIO16번은 풀업으로 사용함.
- pullup.on()을 통해 1상태를 유지. 항상 업 된 상태를 유지함.
- 스위치 입력이 없을땐 GPIO20번으로 1 신호가 들어감.
- 스위치를 누르게 되면 GPIO 20번으로 0이 들어감. GPIO 21번으로 1을 내보내서 LED를 ON 시킴.
- 플로팅 현상을 풀업 GPIO로 잡을 수 있음
| 라즈베리파이 | LED |
|---|---|
| GPIO 16 (PULL DOWN) | SWITCH 1 |
| GPIO 20 (IN) | SWITCH 1 |
| GPIO 11 (OUT) | LED VCC |
| GND | SWITCH 2 |
| GND | LED GND |
- 풀다운 저항(Pull-down) : 풀업 저항과 반대로 저항을 그라운드쪽에 붙여서 플로팅 현상을 해결하는 방법
- 스위치가 off로 열려있을 때 전류의 방향은 IO핀에서 그라운드으로 진행함.
- INPUT핀의 값은 LOW(0)
- 스위치가 on 닫혀있을 때 전류의 방향은 전원에서 IO핀으로 진행함.
- INPUT핀의 값은 HIGH(1)
- GPIO 포트를 이용한 방법으로, Tact 스위치로 입력받고 led를 on off 하는 예제. GPIO는 플로팅 현상을 차단하기 위해 사용됨.
- 택트 스위치는 누르기 전에는 세로줄로 각각 연결되어 있다가 스위치를 누르고 있을 때는 4개의 핀이 모두 연결됨.
| 라즈베리파이 | LED |
|---|---|
| GPIO 16 (PULL DOWN) | SWITCH 1 |
| GPIO 20 (IN) | SWITCH 1 |
| 5V | SWITCH 2 |
| GPIO 21 (OUT) | LED + |
| GND | LED - |
- GPIO 16번, 21번은 OUTPUT으로 사용하고 GPIO 20번은 INPUT으로 사용함.
- GPIO 16번은 풀다운으로 사용함.
- pulldown.off()을 통해 항상 0상태를 유지함. 항상 다운된 상태를 유지함
- 스위치 입력이 없을땐 GPIO 20번으로 0신호가 들어감 = 아무리 플로팅 해도 0이 들어옴.
- 스위치를 누르게 되면 GPIO 20번으로 1이 들어감 = GPIO 21번으로 1을 내보내 LED를 ON시킴
- 플로팅 현상을 풀다운 GPIO를 잡게 된다!
- 실습 부품들을 정리하고 Fritzing으로 연결 구조를 그리면서 스마트디바이스 수업때 정리했던 지식이 생각나서 복습이 되서 좋았다.
- 풀업 풀다운 개념을 알게 되었는데, 실습코드를 분석할때 책 설명을 읽고 정리 하면서 스위치 그라운드, 전원, io핀의 전류 흐름에 따라 input값이 LOW(0) HIGH(1)
- 좀 더 공부할것들이 많아서 제공받은 ppt를 통해서 보고서 수정을 지속해볼 계획이다.