7 세그로 임의의 값을 표시 해 보았다
11654 단어 전자 공작파이썬RaspberryPi
사용한 것
1. 배선하기
아래 그림과 같이 점퍼선을 사용해 연결해 갑니다.
7세그의 다리와 GPIO의 포트간은 이하와 같습니다.
7세그 다리
1
2
3
4
5
6
7
8
9
10
GPIO
22
18
전원선
16
생략
7
11
전원선
13
15
7세그 다리
1
2
3
4
5
6
7
8
9
10
GPIO
32
36
전원선
38
생략
37
35
전원선
33
31
2. 프로그램
SSH의 경우 sudo nano로 파일을 만듭니다.
언어는 파이썬을 사용했습니다.
7seg_anyvalue.py
import RPi.GPIO as GPIO
from time import sleep
i = int(input('表示する値を入力してください:'))
GPIO.setmode(GPIO.BOARD)
ports1 = [
11, 7,16,18,22,13,15,12]
ports2 = [
35,37,38,36,32,33,31,40]
GPIO.setup(ports1, GPIO.OUT)
GPIO.setup(ports2, GPIO.OUT)
numbers = [
[1,1,1,1,1,1,0,0], #0
[0,1,1,0,0,0,0,0],
[1,1,0,1,1,0,1,0],
[1,1,1,1,0,0,1,0],
[0,1,1,0,0,1,1,0],
[1,0,1,1,0,1,1,0],
[1,0,1,1,1,1,1,0],
[1,1,1,0,0,1,0,0],
[1,1,1,1,1,1,1,0],
[1,1,1,0,0,1,1,0],
[0,0,0,0,0,0,0,0], #10
]
def show_num(no):
l = int(no / 10)
r = int(no % 10)
ns = numbers[r]
for i, n in enumerate(ns):
n = 1 if n == 0 else 0
GPIO.output(ports2[i], n)
ns = numbers[l]
for i, n in enumerate(ns):
n = 1 if n == 0 else 0
GPIO.output(ports1[i], n)
try:
while True:
show_num(i)
sleep(10)
print('表示なう')
except KeyboardInterrupt:
pass
GPIO.cleanup()
실행하면 표시하고 싶은 값을 듣기 때문에 입력, 7 세그에 반영됩니다.
그 후는, 10초마다 「표시하는」가 PC측에 나옵니다.
종료하고 싶은 경우는, 「control」+「C」로 끝납니다.
응용
7세그의 수를 늘려, 계산기를 만들 수 있다고 생각했습니다.
또한 택트 스위치를 누르면 랜덤하게 값이 나오는 등도 재미있을 것 같습니다.
7세그의 세계도 깊네요.
참고도서
고래 비행 책상
"부드럽게 시작하는 라즈베리 파이 전자 공작으로 가젯 & 간이 로봇을 만들어 보자"
- 내비게이션 출판
※ 본 기사에서는 상기 도서를 참고로 개량하여 사용하였습니다.
Reference
이 문제에 관하여(7 세그로 임의의 값을 표시 해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/umet787X/items/cc2596145f8d02cffd70
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import RPi.GPIO as GPIO
from time import sleep
i = int(input('表示する値を入力してください:'))
GPIO.setmode(GPIO.BOARD)
ports1 = [
11, 7,16,18,22,13,15,12]
ports2 = [
35,37,38,36,32,33,31,40]
GPIO.setup(ports1, GPIO.OUT)
GPIO.setup(ports2, GPIO.OUT)
numbers = [
[1,1,1,1,1,1,0,0], #0
[0,1,1,0,0,0,0,0],
[1,1,0,1,1,0,1,0],
[1,1,1,1,0,0,1,0],
[0,1,1,0,0,1,1,0],
[1,0,1,1,0,1,1,0],
[1,0,1,1,1,1,1,0],
[1,1,1,0,0,1,0,0],
[1,1,1,1,1,1,1,0],
[1,1,1,0,0,1,1,0],
[0,0,0,0,0,0,0,0], #10
]
def show_num(no):
l = int(no / 10)
r = int(no % 10)
ns = numbers[r]
for i, n in enumerate(ns):
n = 1 if n == 0 else 0
GPIO.output(ports2[i], n)
ns = numbers[l]
for i, n in enumerate(ns):
n = 1 if n == 0 else 0
GPIO.output(ports1[i], n)
try:
while True:
show_num(i)
sleep(10)
print('表示なう')
except KeyboardInterrupt:
pass
GPIO.cleanup()
7세그의 수를 늘려, 계산기를 만들 수 있다고 생각했습니다.
또한 택트 스위치를 누르면 랜덤하게 값이 나오는 등도 재미있을 것 같습니다.
7세그의 세계도 깊네요.
참고도서
고래 비행 책상
"부드럽게 시작하는 라즈베리 파이 전자 공작으로 가젯 & 간이 로봇을 만들어 보자"
- 내비게이션 출판
※ 본 기사에서는 상기 도서를 참고로 개량하여 사용하였습니다.
Reference
이 문제에 관하여(7 세그로 임의의 값을 표시 해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/umet787X/items/cc2596145f8d02cffd70
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(7 세그로 임의의 값을 표시 해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/umet787X/items/cc2596145f8d02cffd70텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)