Analógovo-digitálna konverzia je veľmi dôležitá úloha v zabudovanej elektronike, pretože väčšina snímačov poskytuje výstup ako analógové hodnoty a dodáva ich do mikrokontroléra, ktorý rozumie iba binárnym hodnotám, musíme ich previesť na digitálne hodnoty. Aby mikrokontroléry mohli spracovávať analógové dáta, potrebujú analógovo-digitálny prevodník.
Niektoré mikrokontroléry majú zabudované ADC ako Arduino, MSP430, PIC16F877A, ale niektoré mikrokontroléry ich nemajú ako 8051, Raspberry Pi atď. A musíme použiť niektoré externé integrované obvody analógovo-digitálneho prevodníka ako ADC0804, ADC0808. Ďalej nájdete rôzne príklady ADC s rôznymi mikrokontrolérmi:
- Ako používať ADC v Arduino Uno?
- Výukový program ADC pre Raspberry Pi
- Prepojenie ADC0808 s mikrokontrolérom 8051
- Digitálny voltmeter 0-25 V pomocou mikrokontroléra AVR
- Ako používať ADC v STM32F103C8
- Ako používať ADC v MSP430G2
- Ako používať ADC v ARM7 LPC2148
- Použitie modulu ADC mikrokontroléra PIC s MPLAB a XC8
V tomto výučbe sa chystáme skontrolovať, ako prepojiť modul PCF8591 ADC / DAC s Arduino.
Požadované komponenty
- Arduino UNO
- Modul ADC PCF8591
- 100K hrniec
- Prepojovacie káble
Modul ADF / DAC PCF8591
PCF8591 je 8-bitový analógovo-digitálny alebo 8-bitový digitálno-analógový prevodník, čo znamená, že každý pin dokáže čítať analógové hodnoty až do 256. Na doske je tiež zapojený obvod LDR a termistor. Tento modul má štyri analógové vstupy a jeden analógový výstup. Funguje na komunikácii I 2 C, takže pre sériové hodiny a adresu sériových údajov existujú piny SCL a SDA. Vyžaduje napájacie napätie 2,5 - 6 V a nízky pohotovostný prúd. So vstupným napätím môžeme manipulovať aj nastavením gombíka potenciometra na module. Na šachovnici sú tiež tri prepojky. J4 je pripojený k výberu prístupového obvodu termistora, J5 je pripojený k výberu prístupového obvodu LDR / foto rezistora a J6 je pripojená k výberu nastaviteľného napäťového prístupového obvodu. Pre prístup k týmto obvodom musíte použiť adresy týchto prepojok: 0x50 pre J6, 0x60 pre J5 a 0x70 pre J4. Na doske sú dve LED diódy a D2 - D1 zobrazuje intenzitu výstupného napätia a D2 ukazuje intenzitu napájacieho napätia. Čím vyššie je výstupné alebo napájacie napätie, tým vyššia je intenzita LED D1 alebo D2. Tieto LED diódy môžete tiež otestovať pomocou potenciometra na VCC alebo na kolíku AOUT.
Prepojenie modulu PCF8591 ADC / DAC s Arduino
Kompletný program a pracovné videa je uvedený na konci tohto návodu.
Najskôr musíme definovať knižnicu pre komunikáciu I 2 C a LCD displej.
#include
Potom definujte niekoľko makier. Prvé makro je na definovanie adresy dátovej zbernice pre IC a druhé makro je na definovanie adresy prvého vstupného kolíka modulu, kde je daný vstup z potu.
#define PCF8591 (0x90 >> 1) #define AIn0 0x00
Ďalej definujte pinové spojenia LCD s Arduino a inicializujte hodnotu, ktorú dostávame na analógovom pini.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); int Hodnota = 0;
Teraz poďme k funkcii nastavenia . Tu, v prvom riadku, sme inicializovali komunikáciu I 2 C. A v druhom riadku sme inicializovali LCD displej, na ktorý tlačíme analógové hodnoty. Viac informácií o prepojení 16x2 LCD s Arduino sa dozviete tu.
void setup () { Wire.begin (); lcd.začiatok (16,2); }
Vo funkcii slučky je prvým riadkom začiatok prenosu, tj. Začína PCF8591. Druhý riadok povie IC, aby vykonalo analógové meranie na prvom analógovom vstupnom kolíku. Tretí riadok končí prenos a štvrtý riadok získava namerané údaje z analógového kolíka.
void loop () { Wire.beginTransmission (PCF8591); Wire.write (AIn0); Wire.endTransmission (); Wire.requestFrom (PCF8591, 1);
V ďalšej časti vložte hodnotu načítanú z analógového kolíka do predtým definovanej premennej hodnoty . A v ďalších riadkoch vytlačte túto hodnotu na LCD.
Hodnota = Wire.read (); lcd.print ("Hodnota ADC ="); lcd.print (hodnota); oneskorenie (500); lcd.clear ();}
Nakoniec nahrajte kód do Arduina a spustite ho. Analógové hodnoty sa začnú zobrazovať na LCD displeji. Nastavte gombík hrnca a uvidíte postupnú zmenu hodnôt.