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 IoT.
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
- Pagitan ng Button
- Paglikha ng PWM
- Pagkontrol sa DC Motor
- Pagkontrol sa Stepper Motor
- Interfacing Shift Registro
- Tutorial ng Raspberry Pi ADC
- Pagkontrol ng Servo Motor
- Capacitive Touch Pad
Sa tutorial na ito, makokontrol namin ang isang 16x2 LCD Display gamit ang Raspberry Pi. Ikonekta namin ang mga LCD sa GPIO (Pangkalahatang Layunin Input Output) na mga pin ng PI upang ipakita ang mga character dito. Susulat kami ng isang programa sa PYTHON upang maipadala ang naaangkop na mga utos sa LCD sa pamamagitan ng GPIO at ipakita ang mga kinakailangang character sa screen nito. Ang screen na ito ay darating sa madaling gamiting upang ipakita ang mga halaga ng sensor, magambala ang katayuan at din para sa pagpapakita ng oras.
Mayroong iba't ibang mga uri ng LCD sa merkado. Ang graphic na LCD ay mas kumplikado kaysa sa 16x2 LCD. Kaya't pupunta kami para sa 16x2 LCD display, maaari mo ring gamitin ang 16x1 LCD kung nais mo. Ang 16x2 LCD ay may 32 character sa kabuuan, 16 sa 1 st line at isa pang 16 sa 2 nd line. Ang JHD162 ay 16x2 LCD Module na mga character na LCD. Na-interfaced na namin ang 16x2 LCD sa 8051, AVR, Arduino atbp Maaari mong makita ang lahat ng aming 16x2 LCD na kaugnay na proyekto sa pamamagitan ng pagsunod sa link na ito.
Tatalakayin namin nang kaunti tungkol sa PI GPIO bago magpatuloy.
Mayroong 40 GPIO output pin sa Raspberry Pi 2. Ngunit sa labas ng 40, 26 na GPIO pin lamang (GPIO2 hanggang GPIO27) ang maaaring mai-program. Ang ilan sa mga pin na ito ay nagsasagawa ng ilang mga espesyal na pagpapaandar. Na isantabi ang espesyal na GPIO, mayroon kaming natitirang 17 GPIO.
Mayroong + 5V (Pin 2 o 4) at + 3.3V (Pin 1 o 17) mga power output pin sa board, ito ay para sa pagkonekta ng iba pang mga module at sensor. Papalakasin namin ang 16 * 2 LCD sa pamamagitan ng + 5V rail. Maaari kaming magpadala ng signal ng kontrol ng + 3.3v sa LCD ngunit para sa pagtatrabaho ng LCD kailangan namin itong i-power sa pamamagitan ng + 5V. Hindi gagana ang LCD sa + 3.3V.
Upang malaman ang higit pa tungkol sa mga GPIO pin at ang kanilang kasalukuyang mga output, dumaan sa: LED Blinking with Raspberry Pi
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
- 16 * 2 LCD Module
- 1KΩresistor (2 piraso)
- 10K palayok
- 1000µF capacitor
- Breadboard
Circuit at Paggawa ng Paliwanag:
Tulad ng ipinakita sa Circuit Diagram, mayroon kaming Interfaced Raspberry Pi na may LCD display sa pamamagitan ng pagkonekta ng 10 GPIO pin ng PI sa 16 * 2 LCD's Control at Data Transfer Pins. Ginamit namin ang GPIO Pin 21, 20, 16, 12, 25, 24, 23, at 18 bilang isang BYTE at nilikha ang function na 'PORT' upang magpadala ng data sa LCD. Narito ang GPIO 21 ay LSB (Least Significant Bit) at GPIO18 ay MSB (Most Significant Bit).
Ang 16x2 LCD Module ay mayroong 16 na mga pin, na maaaring nahahati sa limang mga kategorya, Power Pins, contrast pin, Control Pins, Data pin at Backlight pin. Narito ang maikling paglalarawan tungkol sa kanila:
Kategoryang |
Pin NO. |
Pangalan ng Pin |
Pag-andar |
Mga Power Pins |
1 |
VSS |
Ground Pin, konektado sa Ground |
2 |
VDD o Vcc |
Boltahe Pin + 5V |
|
Contrast Pin |
3 |
V0 o VEE |
Pagtatakda ng Contrast, nakakonekta sa Vcc nang lubusan isang variable risistor. |
Kontrolin ang Mga Pins |
4 |
Ang RS |
Magrehistro Piliin ang Pin, RS = 0 Command mode, RS = 1 Data mode |
5 |
RW |
Basahin / Isulat ang pin, RW = 0 Mode ng pagsulat, RW = 1 Basahin ang mode |
|
6 |
E |
Paganahin, isang mataas hanggang sa mababang pulso na kailangan upang paganahin ang LCD |
|
Mga Data Pins |
7-14 |
D0-D7 |
Mga Data Pins, Iniimbak ang Data na ipapakita sa LCD o mga tagubilin sa utos |
Mga Backlight Pins |
15 |
LED + o A |
Upang mapagana ang Backlight + 5V |
16 |
LED- o K |
Backlight Ground |
Masidhi naming inirerekumenda na dumaan lamang sa artikulong ito upang maunawaan ang LCD na gumagana sa mga Pin at Hex Command na ito.
Tatalakayin namin nang maikling ang proseso ng pagpapadala ng data sa LCD:
1. Ang E ay itinakda nang mataas (pagpapagana ng modyul) at ang RS ay itinakda nang mababa (na nagsasabi sa LCD na nagbibigay kami ng utos)
2. Pagbibigay ng halaga 0x01 sa data port bilang isang utos upang i-clear ang screen.
3. Ang E ay itinakda nang mataas (pagpapagana ng modyul) at ang RS ay itinakda nang mataas (na nagsasabi sa LCD na nagbibigay kami ng data)
4. Ang pagpapatunay ng ASCII code para sa mga character ay kailangang ipakita.
5. Ang E ay itinakda nang mababa (na nagsasabi sa LCD na tapos na kaming magpadala ng data)
6. Kapag bumaba ang E pin na ito, pinoproseso ng LCD ang natanggap na data at ipinapakita ang kaukulang resulta. Kaya't ang pin na ito ay nakatakda sa mataas bago magpadala ng data at hinila pababa sa lupa pagkatapos magpadala ng data.
Tulad ng sinabi ay ipapadala namin ang mga character nang sunud-sunod. Ang mga character ay ibinibigay sa LCD ng mga ASCII code (American standard Code for Information Interchange). Ang talahanayan ng mga ASCII code ay ipinapakita sa ibaba. Halimbawa, upang maipakita ang isang character na "@", kailangan naming magpadala ng isang hexadecimal code na "40". Kung bibigyan natin ng halaga 0x73 sa LCD ipapakita nito ang "s". Tulad nito magpapadala kami ng naaangkop na mga code sa LCD upang maipakita ang string na " CIRCUITDIGEST ".
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 10 mga GPIO pin bilang mga output pin, para sa Data at Control pin ng LCD.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
habang ang 1: utos ay ginagamit bilang walang hanggang loop, kasama ang utos na ito ang mga pahayag sa loob ng loop na ito ay patuloy na isasagawa.
Ang lahat ng iba pang mga pag-andar at utos ay ipinaliwanag sa ibaba ng seksyong 'Code' sa tulong ng 'Mga Komento'.
Matapos isulat ang programa at ipatupad ito, isa-isang nagpapadala ang Raspberry Pi ng mga character sa LCD at ipinapakita ng LCD ang mga character sa screen.