- ADC0804 at Raspberry Pi:
- Kinakailangan ang Mga Bahagi:
- Paliwanag sa Circuit:
- Paliwanag sa Programming:
- Nagtatrabaho:
Ang Raspberry Pi ay isang ARM architecture processor based board na dinisenyo para sa mga elektronikong inhinyero at libangan. Ang PI ay isa sa pinaka mapagkakatiwalaang mga platform sa pagbuo ng proyekto doon ngayon. Sa mas mataas na bilis ng processor at 1 GB RAM, maaaring magamit ang PI para sa maraming mga proyekto sa mataas na profile tulad ng pagproseso ng Imahe at Internet of Things.
Para sa paggawa ng alinman sa mga proyekto sa mataas na profile, kailangang maunawaan ng isa ang mga pangunahing pag-andar ng PI. Saklawin namin ang lahat ng mga pangunahing pag-andar ng Raspberry Pi sa mga tutorial na ito. Sa bawat tutorial tatalakayin namin ang isa sa mga pagpapaandar ng PI. Sa pagtatapos ng Raspberry Pi Tutorial Series na ito, magagawa mong mag-isa ang mga proyekto ng mataas na profile na mag-isa. Dumaan sa mga tutorial sa ibaba:
- Pagsisimula sa Raspberry Pi
- Pag-configure ng Raspberry Pi
- LED Blinky
- Pag-interfacing ng Button ng Raspberry Pi
- Paglikha ng Raspberry Pi PWM
- Pagkontrol sa DC Motor gamit ang Raspberry Pi
- Control ng Stepper Motor na may Raspberry Pi
- Interfacing Shift Magrehistro kasama ang Raspberry Pi
Sa tutorial na ito, mag- iinterface kami ng isang chip ng ADC (Analog to Digital Conversion) sa Raspberry Pi. Alam namin ang lahat ng mga parameter ng analog, nangangahulugan na patuloy na nag-iiba sa paglipas ng panahon. Sabihin para sa isang halimbawa ng temperatura ng silid, ang temperatura ng kuwarto ay nag-iiba sa patuloy na oras. Ang temperatura na ito ay ibinibigay ng mga decimal number. Ngunit sa digital na mundo, walang mga decimal number, kaya kailangan nating baguhin ang halagang Analog sa Digital na halaga. Ang proseso ng conversion na ito ay ginagawa ng diskarteng ADC. Dagdagan ang nalalaman tungkol sa ADC dito: Panimula sa ADC0804
ADC0804 at Raspberry Pi:
Ang mga normal na Controller ay may mga ADC channel ngunit para sa PI walang mga ADC channel na ibinigay sa loob. Kaya kung nais naming i-interface ang anumang mga analog sensor kailangan namin ng isang unit ng conversion ng ADC. Kaya para sa mga hangaring iyon pupunta kami sa Interface ADC0804 kasama ang Raspberry Pi.
Ang ADC0804 ay isang chip na idinisenyo upang i-convert ang analog signal sa 8 bit digital data. Ang chip na ito ay isa sa mga tanyag na serye ng ADC. Ito ay isang 8bit na yunit ng conversion, kaya mayroon kaming mga halaga o 0 hanggang 255 na halaga. Sa pamamagitan ng isang boltahe sa pagsukat ng maximum na 5V, magkakaroon kami ng pagbabago para sa bawat 19.5mV. Nasa ibaba ang Pinout ng ADC0804:
Ngayon isa pang mahalagang bagay dito ay, ang ADC0804 ay nagpapatakbo sa 5V at sa gayon nagbibigay ito ng output sa 5V signal ng lohika. Sa 8 pin output (kumakatawan sa 8bits), ang bawat pin ay nagbibigay ng + 5V output upang kumatawan sa lohika'1 '. Kaya't ang problema ay ang lohika ng PI ay + 3.3v, kaya't hindi mo maibigay ang + 5V na lohika sa + 3.3V GPIO pin ng PI. Kung bibigyan mo ng + 5V ang anumang GPIO pin ng PI, nasisira ang board.
Kaya't sa antas ng step-down na lohika mula sa + 5V, gagamit kami ng circuit ng divider ng boltahe. Pinag-usapan namin ang Voltage Divider Circuit na dating tumingin dito para sa karagdagang paglilinaw. Ang gagawin namin ay, gumagamit kami ng dalawang resistors upang hatiin ang + 5V lohika sa 2 * 2.5V na mga lohika. Kaya pagkatapos ng paghahati magbibigay kami ng + 2.5v na lohika sa PI. Kaya, tuwing ang lohika na '1' ay ipinakita ng ADC0804 makikita namin ang + 2.5V sa PI GPIO Pin, sa halip na + 5V.
Dagdagan ang nalalaman tungkol sa GPIO Pins ng Raspberry Pi dito at dumaan sa aming mga nakaraang tutorial.
Kinakailangan ang Mga Bahagi:
Narito ginagamit namin ang Raspberry Pi 2 Model B kasama ang Raspbian Jessie OS. Ang lahat ng pangunahing mga kinakailangan sa Hardware at Software ay dati nang tinalakay, maaari mo itong tingnan sa Panimula ng Raspberry Pi, bukod sa kailangan namin:
- Kumokonekta na mga pin
- 220Ω o 1KΩresistor (17 piraso)
- 10K palayok
- 0.1µF capacitor (2 piraso)
- ADC0804 IC
- Lupon ng Tinapay
Paliwanag sa Circuit:
Gumagana ito sa supply boltahe ng + 5v at maaaring masukat ang isang variable na saklaw ng boltahe sa saklaw na 0-5V.
Ang mga koneksyon para sa interfacing ADC0804 sa Raspberry PI, ay ipinapakita sa circuit diagram sa itaas.
Palaging may maraming ingay ang ADC, ang ingay na ito ay maaaring makaapekto sa pagganap, kaya gumagamit kami ng 0.1uF capacitor para sa Pagsala ng Noise. Kung wala ito magkakaroon ng maraming pagbabagu-bago sa output.
Gumagana ang maliit na tilad sa orasan ng oscillator ng RC (Resistor-Capacitor). Tulad ng ipinakita sa circuit diagram, ang C2 at R20 ay bumubuo ng isang Clock. Ang mahalagang bagay na dapat tandaan dito ay ang capacitor C2 ay maaaring mabago sa isang mas mababang halaga para sa mas mataas na rate ng conversion ng ADC. Gayunpaman sa mas mataas na bilis magkakaroon ng pagbaba sa kawastuhan. Kaya't kung ang application ay nangangailangan ng mas mataas na kawastuhan, piliin ang capacitor na may mas mataas na halaga at para sa mas mataas na bilis piliin ang capacitor na may mas mababang halaga.
Paliwanag sa Programming:
Kapag ang lahat ay konektado ayon sa diagram ng circuit, maaari nating buksan ang PI upang isulat ang programa sa PYHTON.
Pag-uusapan natin ang ilang mga utos na gagamitin namin sa programa ng PYHTON, Mag-a-import kami ng GPIO file mula sa silid-aklatan, sa ibaba ang pagpapaandar ay nagbibigay-daan sa amin upang mai-program ang mga pin ng GPIO ng PI. Pinapalitan din namin ang pangalan ng "GPIO" sa "IO", kaya sa programa tuwing nais naming mag-refer sa mga GPIO pin gagamitin namin ang salitang 'IO'.
i-import ang RPi.GPIO bilang IO
Minsan, kapag ang mga GPIO pin, na sinusubukan naming gamitin, ay maaaring gumagawa ng ilang iba pang mga pagpapaandar. Sa kasong iyon, makakatanggap kami ng mga babala habang isinasagawa ang programa. Sa ibaba ng utos ay sinasabi sa PI na huwag pansinin ang mga babala at magpatuloy sa programa.
IO.setwarnings (Mali)
Maaari naming i-refer ang mga GPIO pin ng PI, alinman sa pamamagitan ng pin number sa board o ng kanilang function number. Tulad ng 'PIN 29' sa pisara ay 'GPIO5'. Kaya sasabihin namin dito alinman na ilalarawan namin ang pin dito sa pamamagitan ng '29' o '5'.
IO.setmode (IO.BCM)
Nagtatakda kami ng 8 mga pin bilang mga input pin. Madidiskubre namin ang 8 bit ng data ng ADC ng mga pin na ito.
IO.setup (4, IO.IN) IO.setup (17, IO.IN) IO.setup (27, IO.IN) IO.setup (22, IO.IN) IO.setup (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
Sakaling totoo ang kundisyon sa mga brace, ang mga pahayag sa loob ng loop ay naisasagawa nang isang beses. Kaya't kung ang GPIO pin 19 ay mataas, kung gayon ang mga pahayag sa loob ng IF loop ay papatayin nang isang beses. Kung ang GPIO pin 19 ay hindi mataas, kung gayon ang mga pahayag sa loob ng IF loop ay hindi naisakatuparan.
kung (IO.input (19) == Totoo):
Ang utos sa ibaba ay ginagamit bilang walang hanggang loop, kasama ang utos na ito ang mga pahayag sa loob ng loop na ito ay patuloy na isasagawa.
Habang ang 1:
Ang karagdagang paliwanag sa Programa ay ibinibigay sa Seksyon ng Code sa ibaba.
Nagtatrabaho:
Matapos isulat ang programa at ipatupad ito makikita mo ang '0'on sa screen. '0'nangangahulugang 0 volts sa pag-input.
Kung ayusin namin ang 10K palayok na konektado sa maliit na tilad, makikita namin ang pagbabago sa mga halaga sa screen. Ang mga halaga sa screen ay patuloy na patuloy na nag-scroll, ito ang mga digital na halagang binasa ng PI.
Sabihin kung nakuha natin ang palayok sa midpoint, mayroon kaming + 2.5V sa input ng ADC0804. Kaya nakikita namin ang 128 sa screen tulad ng ipinakita sa ibaba.
Para sa halagang + 5V analog, magkakaroon kami ng 255.
Kaya, sa pamamagitan ng pag-iiba ng palayok ay binabago natin ang boltahe mula 0 hanggang + 5V sa input ng ADC0804. Sa pamamagitan ng PI na ito basahin ang mga halaga mula 0-255. Ang mga halaga ay naka-print sa screen.
Kaya't mayroon kaming Interfaced ADC0804 sa Raspberry Pi.