Advanced/raspberryPI

[라즈베리파이]디지털샤이니지

och 2023. 6. 22. 16:33

https://velog.io/@coh/raspberrypi-7segment-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%98%A8%EC%8A%B5%EB%8F%84

 

[raspberrypi] 7segment 그리고 온습도

온습도와 택트스위치를 추가한 코드

velog.io

 

코드가 길어서 내 velog를 첨부했다..

 

음... 디지털 샤이니지에 대한 예제라고 할 수 있겠다.

우선 7-segment가 anode인지 cathode인지 알아야 한다.

나는 4자리 7-segment를 cathod 부품으로 진행하였고 

 

1. 7segment

 

4자리 7-segment의 원리를 간단하게 말하자면

한 자리씩 엄청 빠르게 끄고 켜서 마치 계속 켜져있는 것처럼 보이는 것이다.

 

예를 들어 우리집 형광등도 사실 60hz로 계속 깜빡이는 중이지만 마치 계속 켜져있는 것처럼 보이는 것과 같다.

추가적인 예로 36.5를 4자리 세그먼트에 출력한다고 하면

1의자리 '3' 출력하고 끄고

2의 자리 '6.' 출력하고 끄고

3의 자리 '5' 출력하고 끄고

4의자리는 항상 끄면 된다.

 

나의 알고리즘은 다음과 같이 진행된다.

 

모든 자리 끄고 

1의 자리 3출력

모든 자리 끄고

2의 자리 6. 출력

모든 자리 끄고 

3의 자리 5 출력

 

2. 온습도 센서

 

온습도 센서 라이브러리 설치 후 

import Adafruit_DHT as DHT 해서 진행하면 된다.

 

3. tact switch

 

텍트 스위치같은 경우는 floating 현상만 주의하면 된다. 

해당 현상은 스위치의 level값이 0(0V)도 아니고 1(5V)도 아닌 값을 가질 때를 의미한다. 

전기가 흐르면서 만드는 전자기장이나 잡음에 의해 발생하며 

보통 저항을 GND에 연결하거나 VCC에 연결하여 전류를 안정적으로 흐르게 하여 해결한다.