- Kinakailangan ang Mga Bahagi:
- Diagram ng Circuit:
- Arduino Uno:
- 16x2 LCD:
- Konsepto ng Code ng Kulay ng Paglaban:
- Kinakalkula ang Paglaban gamit ang Arduino Ohm Meter:
- Paliwanag sa code:
Nahihirapan kaming basahin ang mga code ng kulay sa mga resistor upang makita ang paglaban nito. Upang mapagtagumpayan ang kahirapan ng paghahanap ng halaga ng paglaban, magtatayo kami ng isang simpleng Ohm Meter gamit ang Arduino. Ang pangunahing prinsipyo sa likod ng proyektong ito ay isang Voltage Divider Network. Ang halaga ng hindi kilalang pagtutol ay ipinapakita sa 16 * 2 LCD display. Naghahain din ang proyektong ito bilang 16 * 2 LCD display interfacing sa Arduino.
Kinakailangan ang Mga Bahagi:
- Arduino Uno
- 16 * 2 LCD display
- Potensyomiter (1 kilo Ohm)
- Mga lumalaban
- Breadboard
- Jumper wires
Diagram ng Circuit:
Arduino Uno:
Ang Arduino Uno ay isang bukas na mapagkukunan ng board ng microcontroller batay sa ATmega328p microcontroller. Mayroon itong 14 digital pin (kung saan ang 6 na pin ay maaaring magamit bilang mga output ng PWM), 6 na input ng analog, sa mga board voltage regulator atbp. Ang Arduino Uno ay mayroong 32KB ng flash memory, 2KB ng SRAM at 1KB ng EEPROM. Ito ay nagpapatakbo sa dalas ng orasan ng 16MHz. Sinusuportahan ng Arduino Uno ang komunikasyon sa Serial, I2C, SPI para sa pakikipag-usap sa iba pang mga aparato. Ipinapakita ng talahanayan sa ibaba ang panteknikal na detalye ng Arduino Uno.
Microcontroller | ATmega328p |
Operating boltahe | 5V |
Boltahe ng Pag-input | 7-12V (inirerekumenda) |
Mga digital I / O na pin | 14 |
Mga analog na pin | 6 |
Memory ng flash | 32KB |
SRAM | Ang 2KB |
EEPROM | 1KB |
Bilis ng orasan |
16MHz |
16x2 LCD:
Ang 16 * 2 LCD ay isang malawakang ginagamit na display para sa mga naka-embed na application. Narito ang maikling paliwanag tungkol sa mga pin at pagtatrabaho ng 16 * 2 LCD display. Mayroong dalawang napakahalagang rehistro sa loob ng LCD. Ang mga ito ay data register at command register. Ginagamit ang command register upang magpadala ng mga utos tulad ng malinaw na display, cursor sa bahay atbp. Ginagamit ang rehistro ng data upang magpadala ng data na ipapakita sa 16 * 2 LCD. Ipinapakita sa ibaba ng talahanayan ang paglalarawan ng pin ng 16 * 2 lcd.
Pin |
Simbolo |
Ako / O |
Paglalarawan |
1 |
Vss |
- |
Lupa |
2 |
Vdd |
- |
+ 5V power supply |
3 |
Vee |
- |
Suplay ng kuryente upang makontrol ang kaibahan |
4 |
Ang RS |
Ako |
RS = 0 para sa rehistro ng utos, RS = 1 para sa pagrehistro ng data |
5 |
RW |
Ako |
R / W = 0 para sa pagsusulat, R / W = 1 para basahin |
6 |
E |
Ako / O |
Paganahin |
7 |
D0 |
Ako / O |
8-bit data bus (LSB) |
8 |
D1 |
Ako / O |
8-bit data bus |
9 |
D2 |
Ako / O |
8-bit data bus |
10 |
D3 |
Ako / O |
8-bit data bus |
11 |
D4 |
Ako / O |
8-bit data bus |
12 |
D5 |
Ako / O |
8-bit data bus |
13 |
D6 |
Ako / O |
8-bit data bus |
14 |
D7 |
Ako / O |
8-bit data bus (MSB) |
15 |
A |
- |
+ 5V para sa backlight |
16 |
K |
- |
Lupa |
Konsepto ng Code ng Kulay ng Paglaban:
Upang makilala ang halaga ng paglaban maaari naming gamitin ang formula sa ibaba.
R = {(AB * 10 c) Ω ± T%}
Kung saan
A = Halaga ng kulay sa unang banda.
B = Halaga ng kulay sa pangalawang banda.
C = Halaga ng kulay sa pangatlong banda.
T = Halaga ng kulay sa pang-apat na banda.
Ipinapakita ng talahanayan sa ibaba ang code ng kulay ng mga resistors.
Kulay |
Bilang ng kulay ng bilang |
Kadahilanan ng pagpaparami (10 c) |
Halaga ng pagpapaubaya (T) |
Itim |
0 |
10 0 |
- |
Kayumanggi |
1 |
10 1 |
± 1% |
Pula |
2 |
10 2 |
± 2% |
Kahel |
3 |
10 3 |
- |
Dilaw |
4 |
10 4 |
- |
Berde |
5 |
10 5 |
- |
Bughaw |
6 |
10 6 |
- |
Lila |
7 |
10 7 |
- |
kulay-abo |
8 |
10 8 |
- |
Maputi |
9 |
10 9 |
- |
Ginto |
- |
10 -1 |
± 5% |
Pilak |
- |
10 -2 |
± 10% |
Walang banda |
- |
- |
± 20% |
Halimbawa, kung ang mga code ng kulay ay kayumanggi - berde - pula - pilak, ang halaga ng paglaban ay kinakalkula bilang, Kayumanggi = 1 Berde = 5 Pula = 2 Pilak = ± 10%
Mula sa unang tatlong banda, R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Ang ika-apat na banda ay nagpapahiwatig ng pagpapaubaya ng ± 10%
10% ng 1500 = 150 Para sa + 10 porsyento, ang halaga ay 1500 + 150 = 1650Ω Para sa - 10 porsyento, ang halaga ay 1500 -150 = 1350Ω
Samakatuwid ang aktwal na halaga ng paglaban ay maaaring kahit saan sa pagitan ng 1350Ω hanggang 1650Ω.
Upang gawing mas maginhawa dito ang Resistor ng Kulay ng Kalaban ng Paglaban kung saan kailangan mo lamang ipasok ang kulay ng mga singsing sa risistor at makukuha mo ang halaga ng paglaban.
Kinakalkula ang Paglaban gamit ang Arduino Ohm Meter:
Ang pagtatrabaho ng Resistance Meter na ito ay napaka-simple at maaaring ipaliwanag gamit ang isang simpleng boltahe divider network na ipinakita sa ibaba.
Mula sa boltahe divider network ng resistors R1 at R2, Vout = Vin * R2 / (R1 + R2)
Mula sa equation sa itaas, maaari naming mabawasan ang halaga ng R2 bilang
R2 = Vout * R1 / (Vin - Vout)
Kung saan ang R1 = kilalang resistensya
R2 = Hindi kilalang paglaban
Vin = boltahe na ginawa sa 5V pin ng Arduino
Vout = boltahe sa R2 na may paggalang sa lupa.
Tandaan: ang napiling halaga ng kilalang resistensya (R1) ay 3.3KΩ, ngunit dapat palitan ito ng mga gumagamit ng resistensya na pinili nila na halaga.
Kaya kung makuha natin ang halaga ng boltahe sa hindi kilalang paglaban (Vout), madali nating makalkula ang hindi kilalang R2 na pagtutol. Nabasa natin dito ang halaga ng boltahe na Vout gamit ang analog pin A0 (tingnan ang circuit diagram) at binago ang mga digital na halagang (0 -1023) sa boltahe tulad ng ipinaliwanag sa Code sa ibaba.
Kung ang halaga ng kilalang Paglaban ay higit na malaki o mas maliit kaysa sa hindi kilalang pagtutol ang error ay magiging higit pa. Kaya pinayuhan na panatilihing malapit ang kilalang halaga ng paglaban sa hindi kilalang pagtutol.
Paliwanag sa code:
Ang kumpletong programa ng Arduino at Demo Video para sa proyektong ito ay ibinibigay sa pagtatapos ng proyektong ito. Ang code ay nahahati sa maliit na makahulugang mga tipak at ipinaliwanag sa ibaba.
Sa bahaging ito ng code, tutukuyin namin ang mga pin kung saan ang 16 * 2 LCD display ay konektado sa Arduino. Ang RS pin na 16 * 2 lcd ay konektado sa digital pin 2 ng arduino. Paganahin ang pin na 16 * 2 lcd ay konektado sa digital pin 3 ng Arduino. Ang mga data pin (D4-D7) ng 16 * 2 lcd ay konektado sa mga digital na pin na 4,5,6,7 ng Arduino.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
Sa bahaging ito ng code, tinutukoy namin ang ilang mga variable na ginagamit sa programa. Ang Vin ay ang boltahe na ibinigay ng 5V pin ng arduino. Ang Vout ay ang boltahe sa risistor R2 na may paggalang sa lupa.
Ang R1 ay ang halaga ng kilalang paglaban. Ang R2 ay ang halaga ng hindi kilalang pagtutol.
int Vin = 5; // boltahe sa 5V pin ng arduino float Vout = 0; // boltahe sa A0 pin ng arduino float R1 = 3300; // halaga ng kilalang float float R2 = 0; // halaga ng hindi kilalang pagtutol
Sa bahaging ito ng code, sisimulan namin ang pagpapakita ng 16 * 2 lcd. Ang mga utos ay ibinibigay sa 16 * 2 lcd display para sa iba't ibang mga setting tulad ng malinaw na screen, display sa cursor blinking atbp.
lcd.begin (16,2);
Sa bahaging ito ng code, ang analog boltahe sa risistor R2 (A0 pin) ay na-convert sa digital na halaga (0 hanggang 1023) at nakaimbak sa isang variable.
a2d_data = analogRead (A0);
Sa bahaging ito ng code, ang digital na halaga (0 hanggang 1023) ay ginawang boltahe para sa karagdagang mga kalkulasyon.
buffer = a2d_data * Vin; Vout = (buffer) /1024.0;
Ang Arduino Uno ADC ay may 10-bit na resolusyon (kaya ang mga halaga ng integer mula 0 - 2 ^ 10 = 1024 na mga halaga). Nangangahulugan ito na mai - map ang mga voltages ng pag-input sa pagitan ng 0 at 5 volts sa mga integer na halaga sa pagitan ng 0 at 1023. Kaya kung magpaparami kami ng input ng anlogValue sa (5/1024), makukuha natin ang digital na halaga ng input boltahe. Alamin dito kung paano gamitin ang input ng ADC sa Arduino.
Sa bahaging ito ng code, ang aktwal na halaga ng hindi kilalang paglaban ay kinakalkula gamit ang pamamaraan tulad ng ipinaliwanag sa itaas.
buffer = Vout / (Vin-Vout); R2 = R1 * buffer;
Sa bahaging ito ng code, ang halaga ng hindi kilalang pagtutol ay nakalimbag sa 16 * 2 lcd display.
lcd.setCursor (4,0); lcd.print ("ohm meter"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.print (R2);
Ito ay madali nating makalkula ang paglaban ng isang hindi kilalang risistor gamit ang Arduino. Suriin din:
- Meter ng Frequency ng Arduino
- Arduino Capacitance Meter