- Mga Kinakailangan na Bahagi
- PCF8591 ADC / DAC Module
- I2C pin sa Raspberry Pi
- Ang interface ng PCF8591 ADC / DAC Module ay may Raspberry Pi
- Python program para sa Analog to Digital Conversion (ADC)
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, matututunan namin kung paano i-interface ang module ng PCF8591 ADC / DAC sa Raspberry Pi.
Mga Kinakailangan na Bahagi
- Raspberry-pi
- PCF8591 ADC Modyul
- 100K Palayok
- Mga Jumper Cables
Ipinapalagay na mayroon kang Raspberry Pi na may pinakabagong Raspbian OS na naka-install dito at alam mo kung paano mag-SSH sa Pi gamit ang isang terminal software tulad ng masilya. Kung bago ka sa Raspberry Pi pagkatapos sundin ang artikulong ito upang makapagsimula sa Raspberry Pi. Pa rin kung nahaharap ka sa anumang isyu pagkatapos mayroong maraming tonelada ng Mga Tutorial sa Raspberry Pi na makakatulong.
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 circuitat ang J6 ay konektado upang piliin ang naaayos na circuit ng pag-access ng boltahe. 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.
I2C pin sa Raspberry Pi
Upang magamit ang PCF8591 sa Raspberry Pi, ang unang bagay na dapat gawin ay ang pag-alam sa mga port ng Raspberry Pi I2C at pag-configure ng I2C port sa Raspberry pi.
Nasa ibaba ang Pin Diagram ng Raspberry Pi 3 Model B +, at ang mga I2C pin na GPIO2 (SDA) at GPIO3 (SCL) ay ginagamit sa tutorial na ito.
Ang pag-configure ng I2C sa Raspberry Pi
Bilang default, ang I2C ay hindi pinagana sa Raspberry Pi. Kaya muna dapat itong paganahin. Upang paganahin ang I2C sa Raspberry Pi
1. Pumunta sa terminal at i-type ang sudo raspi-config.
2. Ngayon lilitaw ang Tool ng Pag-configure ng Raspberry Pi Software.
3. Piliin ang mga pagpipilian sa Interfacing at pagkatapos ay paganahin ang I2C.
4. Matapos paganahin ang I2C i-reboot ang Pi.
Ang pag-scan sa I2C Address ng PCF8591 gamit ang Raspberry Pi
Ngayon upang masimulan ang komunikasyon sa PCF8591 IC, dapat malaman ng Raspberry Pi ang address ng I2C nito. Upang mahanap muna ang address ay ikonekta ang SDA at SCL pin ng PCF8591 sa SDA at SCL pin ng Raspberry Pi. Ikonekta din ang mga + 5V at GND na pin.
Ngayon buksan ang terminal at i-type sa ibaba ang utos upang malaman ang address ng nakakonektang aparato na I2C, sudo i2cdetect –y 1 o sudo i2cdetect –y 0
Matapos hanapin ang I2C address ngayon oras na upang maitayo ang circuit at i-install ang mga kinakailangang aklatan para sa paggamit ng PCF8591 sa Raspberry Pi.
Ang interface ng PCF8591 ADC / DAC Module ay may Raspberry Pi
Ang diagram ng circuit para sa Interfacing ng PCF8591 kasama ang Raspberry Pi ay simple. Sa halimbawang ito sa interfacing, babasahin namin ang mga halagang analog mula sa alinman sa mga analog pin at ipakita ito sa terminal ng Raspberry Pi. Maaari naming baguhin ang mga halaga gamit ang isang 100K palayok.
Ikonekta ang VCC at GND sa GPIO2 at GPIO ng Raspberry Pi. Susunod, ikonekta ang SDA at SCL sa GPIO3 at GPIO5 ng bawat isa. Panghuli kumonekta sa isang 100K palayok sa AIN0. Maaari ka ring magdagdag ng 16x2 LCD upang maipakita ang mga halaga ng ADC sa halip na ipakita ito sa Terminal. Dagdagan ang nalalaman tungkol sa interfacing 16x2 LCD sa Raspberry Pi dito.
Python program para sa Analog to Digital Conversion (ADC)
Ang kumpletong programa at gumaganang video ay ibinibigay sa pagtatapos ng tutorial na ito.
Una, i-import ang smbus library para sa komunikasyon ng I 2 C bus at library ng oras upang magbigay ng oras ng pagtulog sa pagitan ng pag-print ng halaga.
i- import ang oras ng pag- import ng smbus
Tukuyin ang ilang mga variable. Naglalaman ang unang variable ng address ng I 2 C bus at ang pangalawang variable ay naglalaman ng address ng unang analog input pin.
address = 0x48 A0 = 0x40
Susunod, gumawa kami ng isang bagay ng pagpapaandar na SMBus (1) ng library smbus
bus = smbus.SMBus (1)
Ngayon, habang sinasabi ng unang linya sa IC na gawin ang pagsukat ng analog sa unang analog input pin. Iniimbak ng pangalawang linya ang address na nabasa sa analog pin sa isang variable na halaga . Panghuli i-print ang halaga.
habang Totoo: bus.write_byte (address, A0) halaga = bus.read_byte (address) i- print (halaga) oras. tulog (0.1)
Ngayon sa wakas ay i-save ang code ng sawa sa ilang file na may.py entension at patakbuhin ang code sa terminal ng raspberry Pi sa pamamagitan ng paggamit sa ibaba ng utos "
python filename.py
Bago patakbuhin ang code siguraduhin na pinagana mo ang I 2 C na komunikasyon at lahat ng mga pin ay konektado tulad ng ipinakita sa diagram, kung hindi man ay magpapakita ito ng mga pagkakamali. Dapat magsimulang magpakita ang mga halagang analog sa terminal tulad ng sa ibaba. Ayusin ang knob ng palayok, at makikita mo ang unti-unting pagbabago sa mga halaga. Matuto nang higit pa tungkol sa pagpapatakbo ng programa sa
Ang kumpletong python code at Video ay ibinibigay sa ibaba.