- Mga Kinakailangan na Bahagi
- PCF8591 ADC / DAC Module
- Ang interface ng PCF8591 ADC / DAC Module kay Arduino
Ang analog sa digital conversion ay isang napakahalagang gawain sa naka-embed na electronics, dahil ang karamihan sa mga sensor ay nagbibigay ng output bilang mga halagang analog at upang pakainin sila sa microcontroller na nauunawaan lamang ang mga halagang binary, kailangan nating i-convert ang mga ito sa mga halagang Digital. Kaya upang maproseso ang data ng analog, kailangan ng mga microcontroller ang Analog sa Digital Converter.
Ang ilang microcontroller ay nakabuo ng ADC tulad ng Arduino, MSP430, PIC16F877A ngunit ang ilang microcontroller ay walang ito tulad ng 8051, Raspberry Pi atbp at kailangan naming gumamit ng ilang panlabas na Analog sa mga digital converter IC tulad ng ADC0804, ADC0808. Sa ibaba maaari kang makahanap ng iba't ibang mga halimbawa ng ADC na may iba't ibang mga microcontroller:
- Paano Gumamit ng ADC sa Arduino Uno?
- Tutorial ng Raspberry Pi ADC
- Ang interfacing ADC0808 sa 8051 Microcontroller
- 0-25V Digital Voltmeter gamit ang AVR Microcontroller
- Paano gamitin ang ADC sa STM32F103C8
- Paano gamitin ang ADC sa MSP430G2
- Paano gamitin ang ADC sa ARM7 LPC2148
- Paggamit ng ADC Module ng PIC Microcontroller na may MPLAB at XC8
Sa tutorial na ito, susuriin namin kung paano i-interface ang module ng PCF8591 ADC / DAC sa Arduino.
Mga Kinakailangan na Bahagi
- Arduino UNO
- PCF8591 ADC Modyul
- 100K Palayok
- Mga Jumper Cables
PCF8591 ADC / DAC Module
Ang PCF8591 ay isang 8 bit analog sa digital o 8 bit digital sa analog converter module na nangangahulugang ang bawat pin ay maaaring basahin ang mga halagang analog hanggang sa 256. Mayroon din itong LDR at circuit ng thermistor na ibinigay sa board. Ang module na ito ay may apat na analog input at isang analog output. Gumagana ito sa komunikasyon ng I 2 C, kaya may mga SCL at SDA na pin para sa serial clock at serial data address. Nangangailangan ito ng 2.5-6V supply boltahe at may mababang panandaliang kasalukuyang. Maaari din nating manipulahin ang boltahe ng pag-input sa pamamagitan ng pag-aayos ng hawakan ng potensyomiter sa modyul. Mayroon ding tatlong jumper sa board. Ang J4 ay konektado upang piliin ang circuit ng pag-access ng thermistor, ang J5 ay konektado upang piliin ang LDR / photo resistor access circuit at ang J6 ay konektado upang piliin ang naaayos na circuit ng pag-access ng boltahe. Upang ma-access ang mga circuit na ito kailangan mong gamitin ang mga address ng mga jumper na ito: 0x50 para sa J6, 0x60 para sa J5 at 0x70 para sa J4. Mayroong dalawang mga LED sa board D1 at D2- D1 ay nagpapakita ng lakas ng boltahe ng output at ipinapakita ng D2 ang tindi ng supply boltahe. Mas mataas ang output o supply boltahe, mas mataas ang intensity ng LED D1 o D2. Maaari mo ring subukan ang mga LED na ito sa pamamagitan ng paggamit ng potensyomiter sa VCC o sa AOUT pin.
Ang interface ng PCF8591 ADC / DAC Module kay Arduino
Ang kumpletong programa at gumaganang video ay ibinibigay sa pagtatapos ng tutorial na ito.
Una, kailangan naming tukuyin ang library para sa I 2 C na komunikasyon at LCD display.
# isama
Pagkatapos tukuyin ang ilang mga macros. Ang unang macro ay para sa pagtukoy sa address ng data bus para sa IC at ang pangalawang macro ay para sa pagtukoy ng address ng unang input pin ng module, kung saan ibinigay ang input mula sa palayok.
#define PCF8591 (0x90 >> 1) # tukuyin ang AIn0 0x00
Susunod na tukuyin ang mga koneksyon ng pin ng LCD sa Arduino at isimulan ang halaga na nakukuha natin sa analog pin.
Const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); int Value = 0;
Ngayon, tara na sa pag- andar ng pag- setup . Dito, sa unang linya ay nasimulan namin ang komunikasyon ng I 2 C. At sa pangalawang linya, nasimulan namin ang LCD display kung saan namin pini-print ang mga halagang analog. Dagdagan ang nalalaman tungkol sa interfacing 16x2 LCD sa Arduino dito.
void setup () { Wire.begin (); lcd.begin (16,2); }
Sa pagpapaandar ng loop , ang unang linya ay upang simulan ang paghahatid, ibig sabihin, nagsisimula ito sa PCF8591. Sinasabi ng pangalawang linya sa IC na gawin ang pagsukat ng analog sa unang analog input pin. Tinatapos ng pangatlong linya ang paghahatid at nakuha ng ika-apat na linya ang sinusukat na data mula sa analog pin.
void loop () { Wire.beginTransmission (PCF8591); Wire.write (AIn0); Wire.endTransmission (); Wire.requestFrom (PCF8591, 1);
Sa susunod na bahagi, ilagay ang binasang halaga mula sa analog pin sa Value variable na tinukoy nang mas maaga. At sa mga susunod na linya, i-print ang halagang iyon sa LCD.
Halaga = Wire.read (); lcd.print ("Halaga ng ADC ="); lcd.print (Halaga); pagkaantala (500); lcd.clear ();}
Panghuli i-upload ang code sa Arduino at patakbuhin ito. Ang mga halagang analog ay magsisimulang ipakita sa LCD display. Ayusin ang knob ng palayok, at makikita mo ang unti-unting pagbabago sa mga halaga.