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 aiomme tarkistaa, kuinka PCF8591 ADC / DAC -moduuli liitetään Arduinoon.
Vaaditut komponentit
- Arduino UNO
- PCF8591 ADC -moduuli
- 100K potti
- Käynnistyskaapelit
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ääsypiiri ja J6 on kytketty valitsemaan säädettävä jännitteen käyttöpiiri. Näiden piirien käyttämiseksi sinun on käytettävä näiden hyppääjien osoitteita: 0x50 J6: lle, 0x60 J5: lle ja 0x70 J4: lle. 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.
PCF8591 ADC / DAC -moduulin ja Arduinon yhdistäminen
Täydellinen ohjelma ja toimiva video annetaan lopussa tämän opetusohjelman.
Ensinnäkin meidän on määritettävä kirjasto I 2 C -viestinnälle ja LCD-näytölle.
#sisältää
Määritä sitten joitain makroja. Ensimmäinen makro on tarkoitettu määrittelemään IC-tietoväylän osoite ja toinen makro on määritettävä moduulin ensimmäisen sisääntulotapin osoite, jossa potin tulo annetaan.
#define PCF8591 (0x90 >> 1) #define AIn0 0x00
Määritä seuraavaksi LCD-nastaliitännät Arduinolla ja alusta arvo, jonka saamme analogisella nastalla.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); int Arvo = 0;
Mennään nyt asetustoimintoon . Tässä ensimmäisellä rivillä olemme alustaneet I 2 C -yhteyden. Ja toisella rivillä olemme alustaneet LCD-näytön, jolle tulostamme analogiset arvot. Lue lisää 16x2 LCD: n liittämisestä Arduinoon täältä.
void setup () { Wire.begin (); lcd-alku (16,2); }
In silmukka toiminto, ensimmäinen rivi on aloittaa lähetyksen, eli se alkaa PCF8591. Toinen rivi käskee IC: tä suorittamaan analogisen mittauksen ensimmäisessä analogisen tulonastassa. Kolmas rivi lopettaa lähetyksen ja neljäs rivi saa mitatut tiedot analogisesta nastasta.
void loop () { Wire.beginTransmission (PCF8591); Wire.write (AIn0); Wire.endTransmission (); Wire.requestFrom (PCF8591, 1);
Laita seuraavaan osaan analogisesta tapista luettu arvo aiemmin määritettyyn arvomuuttujaan. Tulosta tämä arvo seuraaville riveille nestekidenäyttöön.
Arvo = Wire.read (); lcd.print ("ADC-arvo ="); lcd.print (arvo); viive (500); lcd.clear ();}
Lataa koodi lopuksi Arduinoon ja suorita se. Analogiset arvot alkavat näkyä LCD-näytössä. Säädä potin nuppi, niin näet arvojen asteittaisen muutoksen.