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 pārbaudīsim, kā saskarni PCF8591 ADC / DAC moduli savienot ar Arduino.
Nepieciešamās sastāvdaļas
- Arduino UNO
- PCF8591 ADC modulis
- 100K katls
- Džemperu kabeļi
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 ķēdi un J6 ir pievienots, lai izvēlētos regulējamu sprieguma piekļuves ķēdi. Lai piekļūtu šīm shēmām, jums jāizmanto šo džemperu adreses: 0x50 J6, 0x60 J5 un 0x70 J4. 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.
Saskarnes PCF8591 ADC / DAC modulis ar Arduino
Pilnīga programma un darba video tiek dota beigās šo pamācību.
Pirmkārt, mums jānosaka bibliotēka I 2 C sakariem un LCD displejam.
# iekļaut
Pēc tam definējiet dažus makro. Pirmais makro ir paredzēts datu kopnes adreses noteikšanai IC un otrais makro ir domāts moduļa pirmās ievades tapas adresei, kur tiek dota ievade no pot.
#define PCF8591 (0x90 >> 1) #define AIn0 0x00
Pēc tam definējiet LCD kontaktu savienojumus ar Arduino un inicializējiet vērtību, kuru mēs iegūstam pie analogās tapas.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); int Vērtība = 0;
Sāksim iestatīšanas funkciju. Pirmajā rindiņā mēs esam inicializējuši I 2 C komunikāciju. Otrajā rindiņā mēs esam inicializējuši LCD displeju, kurā drukājam analogās vērtības. Uzziniet vairāk par 16x2 LCD saskarni ar Arduino šeit.
void setup () { Wire.begin (); lcd.begin (16,2); }
In cilpas funkciju, pirmā līnija ir, lai sāktu pārsūtīšanu, ti, tas sāk PCF8591. Otrā rinda liek IC veikt analogo mērījumu pie pirmās analogās ieejas tapas. Trešā līnija beidz pārraidi, un ceturtā līnija iegūst izmērītos datus no analogās tapas.
void loop () { Wire.beginTransmission (PCF8591); Wire.write (AIn0); Wire.endTransmission (); Wire.requestFrom (PCF8591, 1);
Nākamajā daļā, nodot vērtība nolasīt no analogās pin vērtība mainīgs definēts agrāk. Nākamajās rindās izdrukājiet šo vērtību LCD.
Vērtība = Wire.read (); lcd.print ("ADC vērtība ="); lcd.print (Vērtība); kavēšanās (500); lcd.clear ();}
Visbeidzot augšupielādējiet kodu Arduino un palaidiet to. LCD displejā sāks parādīties analogās vērtības. Noregulējiet katla pogu, un jūs redzēsiet pakāpeniskas vērtību izmaiņas.