- Vaaditut komponentit
- PCF8591 ADC / DAC-moduuli
- I2C-nastat Vadelma Pi: ssä
- PCF8591 ADC / DAC -moduulin ja Raspberry Pi: n liitäntä
- Python-ohjelma analogisesta digitaalimuunnokseen (ADC)
Analogisesta digitaalimuunnokseen on erittäin tärkeä tehtävä sulautetussa elektroniikassa, koska suurin osa antureista tuottaa lähtöä analogisina arvoina ja syöttää ne mikro-ohjaimeen, joka ymmärtää vain binääriarvot, meidän on muunnettava ne digitaalisiksi arvoiksi. Joten voidakseen käsitellä analogista dataa, mikro-ohjaimet tarvitsevat analogisesta digitaalimuuntimeen.
Jotkut mikrokontrollerit ovat integroineet ADC: n, kuten Arduino, MSP430, PIC16F877A, mutta joillakin mikrokontrollereilla ei ole sitä, kuten 8051, Raspberry Pi jne., Ja meidän on käytettävä joitain ulkoisia analogisista digitaalisiin muunninpiirejä, kuten ADC0804, ADC0808. Alla on useita esimerkkejä ADC: stä eri mikrokontrollereilla:
- Kuinka käyttää ADC: tä Arduino Unossa?
- Vadelma Pi ADC -opastus
- ADC0808: n ja 8051-mikrokontrollerin liitäntä
- 0-25 V: n digitaalinen voltimittari AVR-mikrokontrollerilla
- Kuinka käyttää ADC: tä STM32F103C8: ssa
- Kuinka käyttää ADC: tä MSP430G2: ssa
- Kuinka käyttää ADC: tä ARM7 LPC2148: ssa
- Käyttämällä PIC-mikrokontrollerin ADC-moduulia MPLAB: n ja XC8: n kanssa
Tässä opetusohjelmassa opimme, miten PCF8591 ADC / DAC -moduuli liitetään Raspberry Pi: n kanssa.
Vaaditut komponentit
- Vadelma-pi
- PCF8591 ADC -moduuli
- 100K potti
- Käynnistyskaapelit
Oletetaan, että sinulla on Raspberry Pi, johon on asennettu uusin Raspbian-käyttöjärjestelmä, ja osaat SSH: n Pi: ään käyttämällä pääteohjelmistoa, kuten kittiä. Jos olet uusi Raspberry Pi: ssä, seuraa tätä artikkelia aloittaaksesi Raspberry Pi: n käytön. Silti, jos kohtaat jotain ongelmaa, on olemassa paljon Raspberry Pi -oppaita, jotka voivat auttaa.
PCF8591 ADC / DAC-moduuli
PCF8591 on 8-bittinen analogisesta digitaaliseen tai 8-bittisestä digitaalisesta analogiseen -muunninmoduuli, mikä tarkoittaa, että jokainen nasta voi lukea analogisia arvoja aina 256. Kortilla on myös LDR- ja termistoripiiri. Tässä moduulissa on neljä analogista tuloa ja yksi analoginen lähtö. Se toimii I 2 C -viestinnässä, joten sarjakellolle ja sarjatiedoille on olemassa SCL- ja SDA-nastat. Se vaatii 2,5-6 V: n syöttöjännitteen ja sillä on pieni valmiusvirta. Voimme myös manipuloida tulojännitettä säätämällä moduulin potentiometrin nuppi. Taululla on myös kolme hyppääjää. J4 on kytketty valitsemaan termistoripääsypiiri, J5 on kytketty valitsemaan LDR / valovastuksen pääsypiirija J6 on kytketty valitsemaan säädettävä jännitteen käyttöpiiri. Aluksella D1 on kaksi LEDiä ja D2 - D1 näyttää lähtöjännitteen voimakkuuden ja D2 näyttää syöttöjännitteen voimakkuuden. Suurempi lähtö- tai syöttöjännite, suurempi LED-valojen D1 tai D2 voimakkuus. Voit myös testata nämä LEDit käyttämällä potentiometriä VCC: ssä tai AOUT-nastassa.
I2C-nastat Vadelma Pi: ssä
Voidakseen käyttää PCF8591 kanssa Raspberry Pi, ensimmäinen asia tehdä on tietää Raspberry Pi I2C portti nastat ja konfigurointi I2C satama Raspberry Pi.
Alla on Raspberry Pi 3 -mallin B + pin-kaavio, ja tässä opetusohjelmassa käytetään I2C-nastoja GPIO2 (SDA) ja GPIO3 (SCL).
I2C: n määrittäminen Raspberry Pi: ssä
Oletusarvoisesti I2C on poistettu käytöstä Raspberry Pi: ssä. Joten ensin se on otettava käyttöön. I2C: n ottaminen käyttöön Raspberry Pi: ssä
1. Siirry päätelaitteeseen ja kirjoita sudo raspi-config.
2. Nyt Raspberry Pi -ohjelmiston määritystyökalu tulee näkyviin.
3. Valitse Liitäntäasetukset ja ota sitten I2C käyttöön.
4. Kun I2C on otettu käyttöön, käynnistä Pi uudelleen.
PCF8591: n I2C-osoitteen skannaus Raspberry Pi: llä
Raspberry Pi: n on tiedettävä I2C-osoitteensa voidakseen aloittaa viestinnän PCF8591 IC: n kanssa. Osoitteen löytämiseksi liitä ensin PCF8591: n SDA- ja SCL-tappi Raspberry Pi: n SDA- ja SCL-nastaan. Liitä myös + 5V- ja GND-nastat.
Avaa nyt pääte ja kirjoita alla oleva komento tietääksesi yhdistetyn I2C-laitteen osoitteen, sudo i2cdetect –y 1 tai sudo i2cdetect –y 0
Löydettyään I2C-osoitteen on nyt aika rakentaa piiri ja asentaa tarvittavat kirjastot PCF8591: n käyttöä varten Raspberry Pi: n kanssa.
PCF8591 ADC / DAC -moduulin ja Raspberry Pi: n liitäntä
Kytkentäkaavio PCF8591: n ja Raspberry Pi: n liittämistä varten on yksinkertainen. Tässä liitäntäesimerkissä luemme analogiset arvot mistä tahansa analogisesta nastasta ja näytämme sen Raspberry Pi -päätteessä. Voimme muuttaa arvoja 100K potilla.
Liitä VCC ja GND Raspberry Pi: n GPIO2: een ja GPIO: han. Liitä seuraavaksi SDA ja SCL GPIO3: een ja GPIO5: ään. Liitä lopuksi 100K potti AIN0: n kanssa. Voit myös lisätä 16x2 LCD: n ADC-arvojen näyttämiseen sen sijaan, että näytät sitä terminaalissa. Lue lisää 16x2 LCD: n ja Raspberry Pi: n liittämisestä täältä.
Python-ohjelma analogisesta digitaalimuunnokseen (ADC)
Täydellinen ohjelma ja toimiva video annetaan lopussa tämän opetusohjelman.
Ensinnäkin tuo smbus- kirjasto I 2 C -väylän tiedonsiirtoa ja aikakirjastoa varten, jotta arvon tulostamisen välillä on uniaika .
tuonti SMBus tuonti aika
Määritä nyt muuttujia. Ensimmäinen muuttuja sisältää I 2 C -väylän osoitteen ja toinen muuttuja sisältää ensimmäisen analogisen tulonastan osoitteen.
osoite = 0x48 A0 = 0x40
Seuraavaksi olemme tehneet objektin kirjaston smbus-funktiosta SMBus (1)
bussi = smbus.SMBus (1)
Nyt kun ensimmäinen rivi käskee IC: tä tekemään analogisen mittauksen ensimmäisessä analogisen tulonastassa. Toinen rivi tallentaa analogisella tapilla luetun osoitteen muuttuja- arvoon . Lopuksi tulosta arvo.
kun taas True: bus.write_byte (osoite, A0) arvo = bus.read_byte (osoite) print (arvo) time.sleep (0.1)
Tallenna nyt lopuksi python-koodi johonkin tiedostoon.py-lisäyksellä ja suorita koodi vadelma Pi -päätteessä alla olevan komennon avulla ”
python-tiedostonimi.py
Varmista ennen koodin suorittamista, että olet ottanut I 2 C -yhteyden käyttöön ja kaikki nastat on kytketty kaavion mukaisesti, muuten se näyttää virheitä. Analogisten arvojen täytyy alkaa näkyä päätelaitteessa kuten alla. Säädä potin nuppi, niin näet arvojen asteittaisen muutoksen. Lisätietoja ohjelman ajamisesta
Täydellinen python-koodi ja video on annettu alla.