- Reikalingi komponentai
- PCF8591 ADC / DAC modulis
- „I2C“ kaiščiai „Raspberry Pi“
- Sąveikaujantis PCF8591 ADC / DAC modulis su „Raspberry Pi“
- „Python“ programa analoginei skaitmeninei konversijai (ADC)
Analoginis į skaitmeninį keitimas yra labai svarbi įterptosios elektronikos užduotis, nes dauguma jutiklių teikia išvestį kaip analogines reikšmes ir jas perduoda į mikrovaldiklį, kuris supranta tik dvejetaines vertes, todėl turime jas paversti skaitmeninėmis reikšmėmis. Taigi, norint valdyti analoginius duomenis, mikrovaldikliams reikia analoginio ir skaitmeninio keitiklio.
Kai kurie mikrovaldikliai turi integruotą ADC, pvz., „Arduino“, MSP430, PIC16F877A, tačiau kai kurie mikrovaldikliai neturi jo, pvz., 8051, „Raspberry Pi“ ir kt., Ir mes turime naudoti kai kuriuos išorinius analoginius į skaitmeninius keitiklius, pvz., ADC0804, ADC0808. Žemiau galite rasti įvairių ADC su skirtingais mikrovaldikliais pavyzdžių:
- Kaip naudoti ADC „Arduino Uno“?
- Raspberry Pi ADC pamoka
- Sąsaja ADC0808 su 8051 mikrovaldikliu
- 0-25V skaitmeninis voltmetras naudojant AVR mikrovaldiklį
- Kaip naudoti ADC programoje STM32F103C8
- Kaip naudoti ADC programoje MSP430G2
- Kaip naudoti ADC sistemoje ARM7 LPC2148
- Naudojant PIC mikrovaldiklio ADC modulį su MPLAB ir XC8
Šioje pamokoje sužinosime, kaip susieti PCF8591 ADC / DAC modulį su „Raspberry Pi“.
Reikalingi komponentai
- Aviečių-pi
- PCF8591 ADC modulis
- 100K puodas
- „Jumper“ kabeliai
Manoma, kad turite „Raspberry Pi“ su joje įdiegta naujausia „Raspbian“ OS ir žinote, kaip SSH prisijungti prie „Pi“ naudojant terminalo programinę įrangą, pvz., Glaistą. Jei esate „Raspberry Pi“ naujokas, vadovaukitės šiuo straipsniu, kad pradėtumėte naudoti „Raspberry Pi“. Vis dėlto, jei susiduriate su kokia nors problema, gali būti daugybė „Raspberry Pi“ mokymo programų.
PCF8591 ADC / DAC modulis
PCF8591 yra 8 bitų analoginio į skaitmeninį arba 8 bitų skaitmeninio į analoginį keitiklio modulis, reiškiantis, kad kiekvienas kaištis gali nuskaityti analogines vertes iki 256. Jame taip pat yra LDR ir termistoriaus grandinė. Šis modulis turi keturis analoginius įėjimus ir vieną analoginį išėjimą. Jis veikia „I 2 C“ ryšyje, todėl yra SCL ir SDA kaiščiai, skirti serijiniam laikrodžiui ir nuosekliojo duomenų adresui. Tam reikalinga 2,5–6 V maitinimo įtampa, o jo budėjimo srovė yra maža. Mes taip pat galime manipuliuoti įėjimo įtampa reguliuodami potenciometro rankenėlę modulyje. Taip pat lentoje yra trys džemperiai. J4 prijungtas norint pasirinkti termistoriaus prieigos grandinę, J5 prijungtas norint pasirinkti LDR / foto rezistoriaus prieigos grandinęir J6 yra prijungtas, kad būtų galima pasirinkti reguliuojamos įtampos prieigos grandinę. D1 laive yra du šviesos diodai, o D2-D1 rodo išėjimo įtampos intensyvumą, o D2 - maitinimo įtampos intensyvumą. Didesnė išėjimo ar maitinimo įtampa, didesnis šviesos diodų D1 arba D2 intensyvumas. Taip pat galite patikrinti šiuos šviesos diodus naudodami potenciometrą VCC arba AOUT kaištį.
„I2C“ kaiščiai „Raspberry Pi“
Norint naudoti „ PCF8591“ su „Raspberry Pi“, pirmiausia reikia žinoti „Raspberry Pi I2C“ prievado kaiščius ir konfigūruoti „I2C“ prievadą „Raspberry pi“.
Žemiau yra „Raspberry Pi 3“ modelio „B +“ kaiščių schema, o šioje pamokoje naudojami I2C kaiščiai GPIO2 (SDA) ir GPIO3 (SCL).
„I2C“ konfigūravimas „Raspberry Pi“
Pagal numatytuosius nustatymus „Raspberry Pi“ I2C yra išjungtas. Taigi pirmiausia jis turi būti įjungtas. Norėdami įjungti „I2C“ „Raspberry Pi“
1. Eikite į terminalą ir įveskite sudo raspi-config.
2. Dabar pasirodo „Raspberry Pi“ programinės įrangos konfigūravimo įrankis.
3. Pasirinkite Sąsajos parinktys ir įjunkite I2C.
4. Įgalinę I2C perkraukite Pi.
PCF8591 I2C adreso nuskaitymas naudojant „Raspberry Pi“
Dabar, norėdamas užmegzti ryšį su PCF8591 IC, „Raspberry Pi“ turi žinoti savo I2C adresą. Norėdami rasti adresą, pirmiausia prijunkite PCF8591 SDA ir SCL kaištį prie „Raspberry Pi“ SDA ir SCL kaiščio. Taip pat prijunkite + 5V ir GND kaiščius.
Dabar atidarykite terminalą ir įveskite žemiau esančią komandą, kad sužinotumėte prijungto „I2C“ įrenginio adresą, sudo i2cdetect –y 1 arba sudo i2cdetect –y 0
Dabar suradęs I2C adresą, pats laikas sukurti grandinę ir įdiegti reikalingas bibliotekas, skirtas naudoti PCF8591 su „Raspberry Pi“.
Sąveikaujantis PCF8591 ADC / DAC modulis su „Raspberry Pi“
Grandinės schema PCF8591 sąsajai su Raspberry Pi yra paprasta. Šiame sąsajos pavyzdyje mes perskaitysime analogines vertes iš bet kurio iš analoginių kaiščių ir parodysime juos „Raspberry Pi“ terminale. Mes galime pakeisti vertes naudodami 100 000 puodą.
Prijunkite VCC ir GND prie „Raspberry Pi“ GPIO2 ir GPIO. Tada prijunkite SDA ir SCL atitinkamai prie GPIO3 ir GPIO5. Galiausiai prijunkite 100K puodą su AIN0. Taip pat galite pridėti 16x2 skystųjų kristalų ekraną, kad būtų rodomos ADC vertės, užuot rodžius juos terminale. Sužinokite daugiau apie 16x2 LCD sąsają su „Raspberry Pi“ čia.
„Python“ programa analoginei skaitmeninei konversijai (ADC)
Visa programa ir darbinis vaizdo įrašas pateikiami šios pamokos pabaigoje.
Pirma, importuokite „ smbus“ biblioteką, skirtą „I 2 C“ magistralės ryšiui, ir laiko biblioteką, kad būtų suteikta miego trukmė tarp vertės spausdinimo.
importuoti smbus importo laiką
Dabar apibrėžkite keletą kintamųjų. Pirmajame kintamajame yra I 2 C magistralės adresas, o antrame - pirmojo analoginio įvesties kaiščio adresas.
adresas = 0x48 A0 = 0x40
Tada mes sukūrėme bibliotekos „smbus“ funkcijos SMBus (1) objektą
autobusas = smbus. SMBus (1)
Dabar, kai pirmoje eilutėje nurodoma IC atlikti analoginį matavimą pirmame analoginio įvesties kaište. Antroje eilutėje adresas, perskaitytas analoginiu kaiščiu, saugo kintamą reikšmę . Galiausiai išspausdinkite vertę.
o tiesa: bus.write_byte (address, A0) value = bus.read_byte (address) print (value) time.sleep (0.1)
Dabar pagaliau išsaugokite pitono kodą kuriame nors faile su.py įtempimu ir paleiskite kodą aviečių Pi terminale naudodami žemiau esančią komandą “
python failo vardas.py
Prieš paleisdami kodą įsitikinkite, kad įjungėte „I 2 C“ ryšį ir visi kaiščiai yra prijungti taip, kaip parodyta diagramoje, kitaip rodomos klaidos. Analoginės vertės turi būti rodomos gnybte, kaip nurodyta toliau. Sureguliuokite puodo rankenėlę ir pamatysite laipsnišką verčių pasikeitimą. Sužinokite daugiau apie programos vykdymą
Pilnas pitono kodas ir vaizdo įrašas pateikiami žemiau.