Sisällysluettelo:
- Vaihe 1: Kaavioiden valmistelu
- Vaihe 2: Piirilevyn piirtäminen
- Vaihe 3: Juotos
- Vaihe 4: Testauksen valmistelu
- Vaihe 5: Testaus (suorittimen lämpötila on keskitaso)
- Vaihe 6: Testaus (CPU tarvitsee jäähdytystasoa)
- Vaihe 7: Virtalähde INDICATOR -piiriin
- Vaihe 8: RPI -johdotus
- Vaihe 9: Python -ohjelma
- Vaihe 10: MERKKIVALON toiminta
- Vaihe 11: Vaihtoehtoinen valmistus (NPN -transistorin käyttäminen) ja edelleen kehittäminen
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Aiemmin olin ottanut käyttöön yksinkertaisen vadelma pi (jäljempänä RPI) -toimintatilan ilmaisinpiirin.
Tällä kertaa selitän hyödyllisemmän indikaattoripiirin RPI: lle, joka toimii ilman päätä (ilman näyttöä).
Yllä oleva piiri näyttää suorittimen lämpötilan neljälle eri tasolle, kuten:
- Vihreä LED palaa, kun suorittimen lämpötila on 30-39 astetta
- Keltainen LED osoittaa, että lämpötila on noussut 40–45 astetta
- Kolmas punainen LED osoittaa, että suoritin kuumenee hieman saavuttaen 46-49 astetta
- Toinen punainen LED vilkkuu, kun lämpötila on yli 50 astetta
Yllä olevat suorittimen lämpötila -alueet ovat henkilökohtainen suunnittelukonseptini (muut lämpötila -alueet voidaan konfiguroida muuttamalla tätä piiriä ohjaavien python -ohjelman testiolosuhteita).
Käyttämällä tätä piiriä et välttämättä suorita komentoa "vcgencmd intézkedés_temp" usein konsolin päätelaitteessa.
Tämä piiri ilmoittaa jatkuvasti ja kätevästi CPU: n nykyisen lämpötilan.
Vaihe 1: Kaavioiden valmistelu
Vaikka voit ohjata neljää LEDiä suoraan käyttämällä vain python -koodeja, ohjelman ohjauslogiikka lataa RPI: n ja sen seurauksena suorittimen lämpötila nousee enemmän, koska sinun pitäisi ajaa hieman monimutkaista python -koodia jatkuvasti.
Siksi minimoin python-koodin monimutkaisuuden mahdollisimman yksinkertaiseksi ja lataan LED-ohjauslogiikan ulkoiselle laitteistopiirille.
Suorittimen lämpötilan ilmaisin (jäljempänä INICATOR) -piiri koostuu seuraavista pääosista.
-Kaksi opto-liitintä on liitetty RPI GPIO-nastoihin, jotta saadaan lämpötilatietoja, kuten 00-> LOW, 01-> Medium, 10-> High, 11-> need need Cooling.
-74LS139 (tai 74HC139, 2-4 dekooderi ja multiplekseri) ohjausulostulot (Y0, Y1, Y2, Y3) tulojen (A, B) mukaan
- Kun lämpötila on 30-39 asteen sisällä, python -koodin lähtö 00 GPIO -nastoille. Siksi 74LS139 saa syöttötietoja 00 (A-> 0, B-> 0)
- Kun 00 on syötetty, Y0 -lähdöstä tulee LOW. (Katso totuustaulukko 74LS139)
- Kun Y0 -lähdöstä tulee LOW, se aktivoi 2N3906 PNP -transistorin ja sen seurauksena vihreä LED -valo syttyy
- Samoin Y1 (01 -> CPU: n lämpötila -aine) sytyttää keltaisen LED -valon ja niin edelleen
- Kun Y3 muuttuu matalaksi, DB140 aktivoi NE555 -LED -vilkkupiirin (tämä on yleinen 555 IC -pohjainen LED -vilkku), joka on BD140 PNP -transistorin kuormitus
Tämän piirin tärkein komponentti on 74LS139, joka purkaa 2 numeron tulon 4 eri yksittäiseen lähtöön alla olevan totuustaulukon mukaisesti.
Syöttö | Lähtö
G (Ota käyttöön) | B | A | Y0 | Y1 | Y2 | Y3 |
H | X | X | H | H | H | H |
L | L | L | L | H | H | H |
L | L | H | H | L | H | H |
L | H | L | H | H | L | H |
L | H | H | H | H | H | L |
Kun 74LS139 -ulostulo muuttuu matalaksi, PNP -tyyppinen transistori voi tehdä koko piiristä yksinkertaisen, koska PNP -transistori kytketään päälle, kun tukiasemasta tulee LOW. (Näytän NPN -version tämän tarinan lopussa)
Koska 100K -potentiometri sisältyy NE555 -LED -vilkkupiiriin, punaisen LED -ON/OFF -aikaa voidaan säätää vapaasti tarpeiden mukaan.
Vaihe 2: Piirilevyn piirtäminen
INDIKAATTORIN toimintamalli selitetään, aloitetaan piirin tekeminen.
Ennen kuin juotat jotain yleislevylle, yllä olevan piirilevypiirustuksen valmistelu on hyödyllistä virheiden minimoimiseksi.
Piirustus on tehty käyttämällä Power-pointia jokaisen osan paikantamiseen yleislevyllä ja tekemällä johdotuskuvioita johtimien kanssa.
Koska IC- ja transistoripistokuvat sijaitsevat rinnakkain PCB-johdotuskuvion kanssa, juotos voidaan suorittaa tämän piirustuksen avulla.
Vaihe 3: Juotos
Vaikka alkuperäinen piirilevypiirustus ei ole tehty yhdellä johdolla PCB: n komponenttien liittämiseen, juotan hieman eri tavalla.
Käyttämällä yksittäistä johdinta (ei tinalankaa) yritän pienentää yleispiirilevyn kokoa, joka sisältää INDICATOR -piirin.
Mutta kuten PCB: n juotospuolelta näet, käytän tinalankaa myös piirilevypiirustuksessa esitettyjen kuvien mukaisesti.
Kun jokainen komponentti on kytketty PCB -piirustuksen alkuperäisen mallin mukaisesti, valmiiden juotettujen piirilevyjen, mukaan lukien INDICATOR -piiri, juottaminen toimii oikein.
Vaihe 4: Testauksen valmistelu
Ennen RPI -liitäntää valmis piiri vaatii testausta.
Koska juotosvirheitä voi esiintyä, tasavirtalähdettä käytetään vaurioiden estämiseen oikosulun tai väärän johdotuksen sattuessa.
INDIKAATTORIN testausta varten virtalähteen 5 V: n virtaliittimeen on kytketty kaksi ylimääräistä virtalähdekaapelia.
Vaihe 5: Testaus (suorittimen lämpötila on keskitaso)
Kun 5V -tuloa ei syötetä, 74LS139 -dekoodaustulo ja aktivoiva lähtö Y0 ovat LOW (vihreä LED palaa).
Mutta 5V sovellettiin tuloon A, lähtö Y1 74LS139 aktivoi (LOW).
Siksi keltainen LED -valo syttyy yllä olevan kuvan mukaisesti.
Vaihe 6: Testaus (CPU tarvitsee jäähdytystasoa)
Kun 5V käytti 74LS139: n molempia tuloja (A ja B), neljäs punainen LED vilkkuu.
Vilkkumisnopeutta voidaan muuttaa säätämällä 100K VR: tä yllä olevan kuvan mukaisesti.
Kun testaus on valmis, kaksi Molex 3 -napaista naaraskaapelia voidaan irrottaa.
Vaihe 7: Virtalähde INDICATOR -piiriin
Indikaattoripiirin virtalähteenä käytän tavallista käsipuhelinlaturia, joka lähettää 5 V: n ja USB-tyypin B sovittimen yllä olevan kuvan mukaisesti.
Välttääksesi RPI -ongelman liittämällä 3.3V GPIO: n ja 5V: n virtalähteen INDICATOR -piirin, signaaliliitäntä ja virtalähde ovat täysin erillään toisistaan.
Vaihe 8: RPI -johdotus
Indikaattoripiirin liittämiseksi RPI: hen kaksi GPIO -nastaa on omistettava kahden maadoitusliittimen kanssa.
GPIO -nastojen valinnassa ei ole erityisiä vaatimuksia.
INDIKAATTORIN liittämiseen voi käyttää mitä tahansa GPIO -nastaa.
Langalliset nastat on kuitenkin nimettävä 74LS139: n (esim. A, B) tuloiksi python -ohjelmassa.
Vaihe 9: Python -ohjelma
Kun piiri on valmis, indikaattoritoiminnon käyttäminen edellyttää python -ohjelman tekemistä.
Katso yllä olevasta vuokaaviosta lisätietoja ohjelmalogiikasta.
#-*-koodaus: utf-8-*-
tuoda aliprosessi, signaali, sys
tuonti aika, uudelleen
Tuo RPi. GPIO g
A = 12
B = 16
g.setmode (g. BCM)
g.asetukset (A, g. OUT)
g. asetus (B, g. ULOS)
##
def signal_handler (sig, frame):
tulosta ('Painoit Ctrl+C!')
g. lähtö (A, epätosi)
g. lähtö (B, epätosi)
f. sulje ()
sys.exit (0)
signal.signal (signal. SIGINT, signal_handler)
##
vaikka totta:
f = avoin ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')
temp_str = aliprosessi.check_output ('/opt/vc/bin/vcgencmd meet_temp', shell = True)
temp_str = temp_str.decode (koodaus = 'UTF-8', virheet = 'tiukka')
CPU_temp = re.findall ("\ d+\. / D+", temp_str)
# poimimalla suorittimen nykyinen lämpötila
current_temp = kelluva (CPU_temp [0])
jos current_temp> 30 ja current_temp <40:
# matala lämpötila A = 0, B = 0
g. lähtö (A, epätosi)
g. lähtö (B, epätosi)
aika.unen (5)
elif current_temp> = 40 ja current_temp <45:
# lämpötila -aine A = 0, B = 1
g. lähtö (A, epätosi)
g. lähtö (B, True)
aika.unen (5)
elif current_temp> = 45 ja current_temp <50:
# korkein lämpötila A = 1, B = 0
g. lähtö (A, True)
g. lähtö (B, epätosi)
aika.unen (5)
elif current_temp> = 50:
# Suorittimen jäähdytys vaaditaan korkea A = 1, B = 1
g. lähtö (A, True)
g. lähtö (B, True)
aika.unen (5)
current_time = time.time ()
formated_time = time.strftime ("%H:%M:%S", time.gmtime (current_time))
f.write (str (formated_time)+'\ t'+str (current_temp)+'\ n')
f. sulje ()
Python -ohjelman päätoiminto on alla.
- Aseta ensin GPIO 12, 16 lähtöportiksi
- Ctrl+C -keskeytyksenkäsittelijän määrittäminen lokitiedoston sulkemiseksi ja GPIO 12, 16: n sammuttamiseksi
- Kun siirryt äärettömään silmukkaan, avaa lokitiedosto liitetilana
- Lue suorittimen lämpötila suorittamalla komento "/opt/vc/bin/vcgencmd intézkedés_temp"
- Kun lämpötila on alueella 30 ~ 39, lähetä vihreä valo sulkemalla lähtö 00
- Kun lämpötila on alueella 40 ~ 44, kytke keltainen LED -valo päälle antamalla 01
- Kun lämpötila on alueella 45 ~ 49, kytke punainen LED -valo päälle antamalla 10
- Kun lämpötila on yli 50, anna 11, jolloin punainen LED vilkkuu
- Kirjoita aikaleima- ja lämpötilatiedot lokitiedostoon
Vaihe 10: MERKKIVALON toiminta
Kun kaikki on kunnossa, näet, että jokainen LED palaa tai vilkkuu suorittimen lämpötilan mukaan.
Sinun ei tarvitse antaa shell -komentoa tarkistaaksesi nykyisen lämpötilan.
Kun olet kerännyt tiedot lokitiedostoon ja tehnyt tekstitiedoista kaavion Excelillä, tulos näkyy yllä olevassa kuvassa.
Suuria kuormia käytettäessä (kaksi Midori -selainta ja Youtube -videota toistettaessa) suorittimen lämpötila nousee jopa 57,9 asteeseen.
Vaihe 11: Vaihtoehtoinen valmistus (NPN -transistorin käyttäminen) ja edelleen kehittäminen
Tämä on edellinen esimerkki INDICATOR -projektista, jossa hyödynnetään NPN -transistoreita (2N3904 ja BD139).
Kuten näette, vielä yksi IC (74HC04, Quad -taajuusmuuttajat) on tarpeen NPN -transistorin käyttämiseksi, koska NPN: n pohjaan on kohdistettava HIGH -tason jännite transistorin kytkemiseksi päälle.
Yhteenvetona voidaan todeta, että NPN -transistorin käyttö lisää tarpeetonta monimutkaisuutta indikaattoripiirin tekemiseen.
Tämän projektin kehittämiseksi lisään tuulettimen yllä olevan kuvan mukaisesti, jotta INDICATOR -piiri olisi hyödyllisempi.