Analogově-digitální převod je ve vestavěné elektronice velmi důležitým úkolem, protože většina snímačů poskytuje výstup jako analogové hodnoty a přivádí je do mikrokontroléru, který rozumí pouze binárním hodnotám, musíme je převést na digitální hodnoty. Aby mikroprocesory mohly zpracovávat analogová data, potřebují analogově-digitální převodník.
Některé mikrokontroléry mají vestavěné ADC jako Arduino, MSP430, PIC16F877A, ale některé mikrokontroléry to nemají jako 8051, Raspberry Pi atd. A musíme použít nějaké externí integrované obvody analogově-digitálního převaděče jako ADC0804, ADC0808. Níže naleznete různé příklady ADC s různými mikrokontroléry:
- Jak používat ADC v Arduino Uno?
- Výukový program ADC pro Raspberry Pi
- Propojení ADC0808 s mikrokontrolérem 8051
- 0-25V digitální voltmetr pomocí mikrokontroléru AVR
- Jak používat ADC v STM32F103C8
- Jak používat ADC v MSP430G2
- Jak používat ADC v ARM7 LPC2148
- Použití modulu ADC mikrokontroléru PIC s MPLAB a XC8
V tomto kurzu zkontrolujeme, jak propojit modul PCF8591 ADC / DAC s Arduino.
Požadované komponenty
- Arduino UNO
- Modul ADC PCF8591
- 100 tis. Hrnec
- Propojovací kabely
Modul ADF / DAC PCF8591
PCF8591 je 8bitový analogově-digitální převodník nebo 8bitový digitálně-analogový převodník, což znamená, že každý pin může číst analogové hodnoty až 256. Na desce je také obvod LDR a termistor. Tento modul má čtyři analogové vstupy a jeden analogový výstup. Funguje na komunikaci I 2 C, takže pro sériové hodiny a sériovou datovou adresu existují piny SCL a SDA. Vyžaduje napájecí napětí 2,5–6 V a nízký pohotovostní proud. Můžeme také manipulovat se vstupním napětím nastavením knoflíku potenciometru na modulu. Na desce jsou také tři propojky. J4 je připojen k výběru přístupového obvodu termistoru, J5 je připojen k výběru přístupového obvodu LDR / foto rezistoru a J6 je připojen k volbě nastavitelného napěťového přístupového obvodu. Pro přístup k těmto obvodům musíte použít adresy těchto propojek: 0x50 pro J6, 0x60 pro J5 a 0x70 pro J4. Na desce D1 jsou dvě LED diody a D2 - D1 ukazuje intenzitu výstupního napětí a D2 ukazuje intenzitu napájecího napětí. Čím vyšší je výstupní nebo napájecí napětí, tím vyšší je intenzita LED D1 nebo D2. Tyto LED můžete také otestovat pomocí potenciometru na VCC nebo na pinu AOUT.
Propojení modulu PCF8591 ADC / DAC s Arduino
Kompletní program a pracovní videa je uveden na konci tohoto návodu.
Nejprve musíme definovat knihovnu pro komunikaci I 2 C a LCD displej.
#zahrnout
Poté definujte některá makra. První makro je pro definování adresy datové sběrnice pro IC a druhé makro je pro definování adresy prvního vstupního pinu modulu, kde je uveden vstup z potu.
#define PCF8591 (0x90 >> 1) #define AIn0 0x00
Dále definujte pinová spojení LCD s Arduinem a inicializujte hodnotu, kterou dostáváme na analogovém pinu.
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;
Nyní pojďme k funkci nastavení . Tady v prvním řádku jsme inicializovali komunikaci I 2 C. A na druhém řádku jsme inicializovali LCD displej, na který tiskneme analogové hodnoty. Zde se dozvíte více o propojení 16x2 LCD s Arduino.
void setup () { Wire.begin (); lcd.begin (16,2); }
Ve funkci smyčky má první řádek zahájit přenos, tj. Spustit PCF8591. Druhý řádek říká IC, aby provedlo analogové měření na prvním analogovém vstupním pinu. Třetí řádek končí přenos a čtvrtý řádek získává naměřená data z analogového kolíku.
void loop () { Wire.beginTransmission (PCF8591); Wire.write (AIn0); Wire.endTransmission (); Wire.requestFrom (PCF8591, 1);
V další části vložte hodnotu načtenou z analogového pinu do dříve definované proměnné hodnoty . A v dalších řádcích vytiskněte tuto hodnotu na LCD.
Hodnota = Wire.read (); lcd.print ("Hodnota ADC ="); lcd.print (hodnota); zpoždění (500); lcd.clear ();}
Nakonec nahrajte kód do Arduina a spusťte jej. Analogové hodnoty se začnou zobrazovat na LCD displeji. Upravte knoflík hrnce a uvidíte postupnou změnu hodnot.