- Nepieciešamās sastāvdaļas
- PCF8591 ADC / DAC modulis
- I2C tapas Raspberry Pi
- Saskarnes PCF8591 ADC / DAC modulis ar Raspberry Pi
- Python programma analogai digitālai pārveidošanai (ADC)
Analogu pārveidošana ciparu formātā ir ļoti svarīgs uzdevums iegultā elektronikā, jo lielākā daļa sensoru nodrošina izvadi kā analogās vērtības un lai tos ievadītu mikrokontrollerī, kas saprot tikai binārās vērtības, mums tās jāpārvērš ciparu vērtībās. Tātad, lai varētu apstrādāt analogos datus, mikrokontrolleriem ir nepieciešams analogais ciparu pārveidotājs.
Daži mikrokontrolleri ir iebūvējuši ADC, piemēram, Arduino, MSP430, PIC16F877A, bet dažiem mikrokontrolleriem to nav, piemēram, 8051, Raspberry Pi uc, un mums ir jāizmanto daži ārējie analogo un digitālo pārveidotāju IC, piemēram, ADC0804, ADC0808. Zemāk varat atrast dažādus ADC piemērus ar dažādiem mikrokontrolleriem:
- Kā lietot ADC Arduino Uno?
- Aveņu Pi ADC apmācība
- Saskarne ADC0808 ar 8051 mikrokontrolleru
- 0-25V digitālais voltmetrs, izmantojot AVR mikrokontrolleru
- Kā lietot ADC programmā STM32F103C8
- Kā lietot ADC programmā MSP430G2
- Kā ADC izmantot ARM7 LPC2148
- Izmantojot PIC mikrokontrollera ADC moduli ar MPLAB un XC8
Šajā apmācībā mēs uzzināsim, kā saskarni PCF8591 ADC / DAC moduli savienot ar Raspberry Pi.
Nepieciešamās sastāvdaļas
- Aveņu-pi
- PCF8591 ADC modulis
- 100K katls
- Džemperu kabeļi
Tiek pieņemts, ka jums ir Raspberry Pi ar tajā instalētu jaunāko Raspbian OS, un jūs zināt, kā SSH ievadīt Pi, izmantojot termināļa programmatūru, piemēram, špakteli. Ja esat jauns Raspberry Pi lietotājs, izpildiet šo rakstu, lai sāktu darbu ar Raspberry Pi. Tomēr, ja jūs saskaras ar kādu problēmu, var palīdzēt daudzas Raspberry Pi konsultācijas.
PCF8591 ADC / DAC modulis
PCF8591 ir 8 bitu analogais uz digitālo vai 8 bitu digitālais uz analogo pārveidotāja modulis, kas nozīmē, ka katra tapa var nolasīt analogās vērtības līdz 256. Tajā ir arī LDR un termistora ķēde. Šim modulim ir četras analogās ieejas un viena analogā izeja. Tas darbojas uz I 2 C sakaru, tāpēc sērijas pulkstenim un sērijas datu adresei ir SCL un SDA tapas. Tam nepieciešams 2,5-6 V barošanas spriegums, un tam ir zema gaidīšanas strāva. Mēs varam arī manipulēt ar ieejas spriegumu, pielāgojot potenciometra pogu uz moduļa. Uz tāfeles ir arī trīs džemperi. J4 ir pievienots, lai izvēlētos termistora piekļuves ķēdi, J5 ir savienots, lai izvēlētos LDR / foto rezistora piekļuves ķēdiun J6 ir pievienots, lai izvēlētos regulējamu sprieguma piekļuves ķēdi. Uz borta D1 ir divas gaismas diodes, un D2-D1 parāda izejas sprieguma intensitāti un D2 parāda barošanas sprieguma intensitāti. Jo augstāks ir izejas vai barošanas spriegums, jo lielāka ir LED D1 vai D2 intensitāte. Varat arī pārbaudīt šīs gaismas diodes, izmantojot potenciometru VCC vai AOUT tapu.
I2C tapas Raspberry Pi
Lai izmantotu PCF8591 ar Raspberry Pi, vispirms ir jāzina Raspberry Pi I2C porta tapas un I2C ports jākonfigurē Raspberry pi.
Zemāk ir Raspberry Pi 3 modeļa B + tapu diagramma, un šajā apmācībā tiek izmantotas I2C tapas GPIO2 (SDA) un GPIO3 (SCL).
I2C konfigurēšana Raspberry Pi
Pēc noklusējuma I2C Raspberry Pi ir atspējots. Tātad vispirms tas ir jāiespējo. Lai iespējotu I2C Raspberry Pi
1. Dodieties uz termināli un ierakstiet sudo raspi-config.
2. Tagad parādās Raspberry Pi programmatūras konfigurācijas rīks.
3. Atlasiet Saskarnes opcijas un pēc tam iespējojiet I2C.
4. Pēc I2C iespējošanas restartējiet Pi.
PCF8591 I2C adreses skenēšana, izmantojot Raspberry Pi
Tagad, lai sāktu saziņu ar PCF8591 IC, Raspberry Pi ir jāzina tā I2C adrese. Lai atrastu adresi, vispirms pievienojiet PCF8591 SDA un SCL tapu ar Raspberry Pi SDA un SCL tapu. Pievienojiet arī + 5V un GND tapas.
Tagad atveriet termināli un ierakstiet komandu zemāk, lai uzzinātu pievienotās I2C ierīces adresi, sudo i2cdetect –y 1 vai sudo i2cdetect –y 0
Pēc I2C adreses atrašanas ir pienācis laiks izveidot ķēdi un instalēt nepieciešamās bibliotēkas PCF8591 izmantošanai ar Raspberry Pi.
Saskarnes PCF8591 ADC / DAC modulis ar Raspberry Pi
Ķēdes shēma PCF8591 saskarnei ar Raspberry Pi ir vienkārša. Šajā saskarnes piemērā mēs nolasīsim analogās vērtības no jebkuras analogās tapas un parādīsim to Raspberry Pi terminālā. Mēs varam mainīt vērtības, izmantojot 100K pot.
Pievienojiet VCC un GND ar Raspberry Pi GPIO2 un GPIO. Pēc tam pievienojiet SDA un SCL attiecīgi GPIO3 un GPIO5. Visbeidzot pievienojiet 100K katlu ar AIN0. Varat arī pievienot 16x2 LCD, lai parādītu ADC vērtības, nevis parādītu to terminālā. Uzziniet vairāk par 16x2 LCD saskarni ar Raspberry Pi šeit.
Python programma analogai digitālai pārveidošanai (ADC)
Pilnīga programma un darba video tiek dota beigās šo pamācību.
Pirmkārt, importējiet smbus bibliotēku I 2 C kopnes komunikācijai un laika bibliotēku, lai dotu miega laiku starp vērtības drukāšanu.
importēt smbus importa laiku
Tagad definējiet dažus mainīgos. Pirmajā mainīgajā ir I 2 C kopnes adrese, un otrajā mainīgajā ir pirmās analogās ieejas tapas adrese.
adrese = 0x48 A0 = 0x40
Pēc tam mēs esam izveidojuši objekta funkciju SMBus (1) bibliotēkas smbus
autobuss = smbus. SMBus (1)
Tagad, kamēr pirmā rinda liek IC veikt analogo mērījumu pirmajā analogajā ieejas tapā. Otrajā rindā mainīgā vērtībā tiek glabāta analogajā tapā nolasītā adrese. Visbeidzot izdrukājiet vērtību.
kamēr True: autobusa.rakstīšanas_beits (adrese, A0) vērtība = kopnes.lasīšanas_beits (adrese) drukāšanas (vērtības) laiks.miega (0,1)
Tagad beidzot saglabājiet pitona kodu kādā failā ar.py ievilkumu un palaidiet kodu aveņu Pi terminālā, izmantojot komandu zemāk ”
pitona faila nosaukums.py
Pirms koda palaišanas pārliecinieties, vai esat iespējojis komunikāciju I 2 C un vai visas tapas ir savienotas, kā parādīts diagrammā, pretējā gadījumā tas parādīs kļūdas. Analogajām vērtībām jāsāk parādīties terminālā, kā norādīts zemāk. Noregulējiet katla pogu, un jūs redzēsiet pakāpeniskas vērtību izmaiņas. Uzziniet vairāk par programmas palaišanu
Pilns pitona kods un video ir norādīts zemāk.