System dwójkowy i wyświetlacz 7-segmentowy

Typ_projektu
microPython
Zdjecie główne
hmm
Krótki opis projektu

Prosty układa z wyświetlaczem i dekoderem obrazujący działanie systemu dwójkowego.

Niezbędne elementy

1. Płytka ESP 8266

2. 4 diody LED (żółta, zielona, 2x czerwona)

3. 2 rezystory 100 Ohmów

4. Płytka stykowa mała

5. Kabelki stykowe

6. Dekoder 74HCT4543

7.Wyświetlacz 7-segmentowy ze wspólną katodą

8.Kabel micro USB do przesyłu danych

Opis projektu

Przy pomocy czterech wyjść GPIO zadawana jest odpowiednia kombinacja zer i jedynek, która odpowiada oczekiwanej liczbie. Każde z wyjść odpowiada kolejnym potęgom dwójki: pierwszy pin to potęga zerowa, czyli jedynka, drugi pin to pierwsza potęga, czyli dwójka, trzeci to druga potęga, czyli czwórka, a czwarty pin, analogicznie, trzecia potęga, czyli osiem. Oczekiwaną liczbę podaje się jako sumę tych potęg, zatem gdy chcielibyśmy wyświetlić liczbę pięć, musielibyśmy podać wartość 1 na piny odpowiadające 2^0 (1) oraz 2^2 (4).

Opis systemu

 Zadane na wejściach wartości są następnie sczytywane przez dekoder, który zapala odpowiednie diody na wyświetlaczu. Urządzenie zaprogramowano tak, aby co dwie sekundy wyświetlała rosnąco liczby z przedziału od 0 do 9. Schemat wyświetlacza:

Schemat wyświetlacza

Zastosowanie dekodera dwójkowego znacznie ułatwia w tym przypadku obsługę urządzenia. Gdybyśmy chcieli wyświetlać liczby bez użycia dekodera, musielibyśmy użyć aż 7 wyjść (po jednym na każdą diodę wyświetlacza). Poniżej przedstawiono układ obsługujący wyświetlacz bez zastosowania dekodera.

bezpośrednie

Należy również zaznaczyć, że dekodera możemy użyć tylko z wyświetlaczem o wspólnej katodzie, gdyż diody zapalamy podając napięcie z wyjść dekodera.

Zdjęcia
0
1
2
7
8
9
3
5
kod programu
from machine import Pin, PWM
import time
#1 - sterowanie z dekoderem 0 - bez dekodera
sterowanie = 1
if sterowanie == 1:
	p0 = Pin(16, Pin.OUT)
	p1 = Pin(5, Pin.OUT)
	p2 = Pin(4, Pin.OUT)
	p3 = Pin(0, Pin.OUT)

	A = 0
	B = 1
	while True:
    	if B == 1:
        	if A == 0:
            	p0.value(0)
            	p1.value(0)
            	p2.value(0)
            	p3.value(0)
        	elif A == 1:
            	p0.value(1)
            	p1.value(0)
            	p2.value(0)
            	p3.value(0)
        	elif A == 2:
            	p0.value(0)
            	p1.value(1)
            	p2.value(0)
            	p3.value(0)
        	elif A == 3:
            	p0.value(1)
            	p1.value(1)
            	p2.value(0)
            	p3.value(0)
        	elif A == 4:
            	p0.value(0)
            	p1.value(0)
            	p2.value(1)
            	p3.value(0)
        	elif A == 5:
            	p0.value(1)
            	p1.value(0)
            	p2.value(1)
            	p3.value(0)
        	elif A == 6:
            	p0.value(0)
            	p1.value(1)
            	p2.value(1)
            	p3.value(0)
        	elif A == 7:
            	p0.value(1)
            	p1.value(1)
            	p2.value(1)
            	p3.value(0)
        	elif A == 8:
            	p0.value(0)
            	p1.value(0)
            	p2.value(0)
            	p3.value(1)
        	elif A == 9:
            	p0.value(1)
            	p1.value(0)
            	p2.value(0)
            	p3.value(1)
            	
    	if A == 9:
        	A = 0
    	else:
        	A+=1
    	time.sleep(2)
elif sterowanie == 0:
	b = Pin(16, Pin.OUT) #b
	a = Pin(5, Pin.OUT) #a
	f = Pin(4, Pin.OUT) #f
	g = Pin(0, Pin.OUT) #g
	e = Pin(2, Pin.OUT) #e
	d = Pin(14, Pin.OUT) #d
	c = Pin(12, Pin.OUT) #c

	
	liczba = 1;

	
	if liczba == 0:
    	a.value(0)
    	b.value(0)
    	c.value(0)
    	d.value(0)
    	e.value(0)
    	f.value(0)
    	g.value(0)
	elif liczba == 1:
    	a.value(0)
    	b.value(1)
    	c.value(1)
    	d.value(0)
    	e.value(0)
    	f.value(0)
    	g.value(0)
	elif liczba == 2:
    	a.value(1)
    	b.value(1)
    	c.value(0)
    	d.value(1)
    	e.value(1)
    	f.value(0)
    	g.value(1)
	elif liczba == 3:
    	a.value(1)
    	b.value(1)
    	c.value(1)
    	d.value(1)
    	e.value(0)
    	f.value(0)
    	g.value(1)
	elif liczba == 4:
    	a.value(0)
    	b.value(1)
    	c.value(1)
    	d.value(0)
    	e.value(0)
    	f.value(1)
    	g.value(1)
	elif liczba == 5:
    	a.value(1)
    	b.value(0)
    	c.value(1)
    	d.value(1)
    	e.value(0)
    	f.value(1)
    	g.value(1)
	elif liczba == 6:
    	a.value(1)
    	b.value(0)
    	c.value(1)
    	d.value(1)
    	e.value(1)
    	f.value(1)
    	g.value(1)
	elif liczba == 7:
    	a.value(1)
    	b.value(1)
    	c.value(1)
    	d.value(0)
    	e.value(0)
    	f.value(1)
    	g.value(0)
	elif liczba == 8:
    	a.value(1)
    	b.value(1)
    	c.value(1)
    	d.value(1)
    	e.value(1)
    	f.value(1)
    	g.value(1)
	elif liczba == 9:
    	a.value(1)
    	b.value(1)
    	c.value(1)
    	d.value(1)
    	e.value(0)
    	f.value(1)
    	g.value(1)
        	


Schemat
Tagi
Wyświetlacz Dioda System Dwójkowy Dekoder Esp