- Vaaditut komponentit:
- Piirikaavio:
- Arduino Uno:
- 16x2 LCD:
- Vastuksen värikoodin käsite:
- Resistanssin laskeminen Arduino Ohm -mittarilla:
- Koodin selitys:
Meidän on vaikea lukea vastusten värikoodeja sen resistanssin löytämiseksi. Vastusarvon löytämisen vaikeuden voittamiseksi aiomme rakentaa yksinkertaisen ohmimittarin Arduinolla. Tämän projektin perusperiaate on Voltage Divider Network. Tuntemattoman vastuksen arvo näkyy 16 * 2 LCD-näytössä. Tämä projekti toimii myös 16 * 2 nestekidenäytön liitäntänä Arduinon kanssa.
Vaaditut komponentit:
- Arduino Uno
- 16 * 2 LCD-näyttö
- Potentiometri (1 kilo Ohm)
- Vastukset
- Leipälauta
- Hyppääjän johdot
Piirikaavio:
Arduino Uno:
Arduino Uno on avoimen lähdekoodin mikrokontrollerikortti, joka perustuu ATmega328p-mikrokontrolleriin. Siinä on 14 digitaalista nastaa (joista 6 nastaa voidaan käyttää PWM-lähtöinä), 6 analogista tuloa, sisäiset jännitesäätimet jne. Arduino Unolla on 32 kt flash-muistia, 2 kt SRAM-muistia ja 1 kt EEPROM-muistia. Se toimii kellotaajuudella 16MHz. Arduino Uno tukee Serial-, I2C- ja SPI-viestintää muiden laitteiden kanssa viestimiseen. Alla olevassa taulukossa on Arduino Unon tekniset tiedot.
Mikrokontrolleri | ATmega328p |
Käyttöjännite | 5 V |
Tulojännite | 7-12 V (suositeltava) |
Digitaaliset I / O-nastat | 14 |
Analogiset nastat | 6 |
Flash-muisti | 32 kt |
SRAM | 2 kt |
EEPROM | 1 kt |
Kellonopeus |
16MHz |
16x2 LCD:
16 * 2 LCD on laajasti käytetty näyttö sulautettuihin sovelluksiin. Tässä on lyhyt selitys nastoista ja 16 * 2 LCD-näytön toiminnasta. Nestekidenäytössä on kaksi erittäin tärkeää rekisteriä. Ne ovat tietorekisteri ja komentorekisteri. Komentorekisteriä käytetään komentojen, kuten tyhjennä näyttö, kohdistin kotona jne., Lähettämiseen, rekisteriä käytetään tietojen lähettämiseen, jotka on tarkoitus näyttää 16 * 2 LCD-näytöllä. Alla olevassa taulukossa on 16 * 2 lcd: n tapin kuvaus.
Tappi |
Symboli |
I / O |
Kuvaus |
1 |
Vss |
- |
Maa |
2 |
Vdd |
- |
+ 5 V virtalähde |
3 |
Vee |
- |
Virtalähde kontrastin hallitsemiseksi |
4 |
RS |
Minä |
RS = 0 komentorekisterille, RS = 1 tietorekisterille |
5 |
RW |
Minä |
R / W = 0 kirjoitettaessa, R / W = 1 luettuna |
6 |
E |
I / O |
ota käyttöön |
7 |
D0 |
I / O |
8-bittinen tietoväylä (LSB) |
8 |
D1 |
I / O |
8-bittinen tietoväylä |
9 |
D2 |
I / O |
8-bittinen tietoväylä |
10 |
D3 |
I / O |
8-bittinen tietoväylä |
11 |
D4 |
I / O |
8-bittinen tietoväylä |
12 |
D5 |
I / O |
8-bittinen tietoväylä |
13 |
D6 |
I / O |
8-bittinen tietoväylä |
14 |
D7 |
I / O |
8-bittinen tietoväylä (MSB) |
15 |
A |
- |
+ 5 V taustavalolle |
16 |
K |
- |
Maa |
Vastuksen värikoodin käsite:
Vastuksen arvon tunnistamiseksi voidaan käyttää seuraavaa kaavaa.
R = {(AB * 10 c) Ω ± T%}
Missä
A = Ensimmäisen kaistan värin arvo.
B = toisen kaistan värin arvo.
C = kolmannen kaistan värin arvo.
T = neljännen kaistan värin arvo.
Alla olevassa taulukossa on esitetty vastusten värikoodi.
Väri |
Värin numeerinen arvo |
Kertokerroin (10 c) |
Toleranssiarvo (T) |
Musta |
0 |
10 0 |
- |
Ruskea |
1 |
10 1 |
± 1% |
Punainen |
2 |
10 2 |
± 2% |
Oranssi |
3 |
10 3 |
- |
Keltainen |
4 |
10 4 |
- |
Vihreä |
5 |
10 5 |
- |
Sininen |
6 |
10 6 |
- |
Violetti |
7 |
10 7 |
- |
harmaa |
8 |
10 8 |
- |
Valkoinen |
9 |
10 9 |
- |
Kulta |
- |
10 -1 |
± 5% |
Hopea |
- |
10 -2 |
± 10% |
Ei yhtyettä |
- |
- |
± 20% |
Esimerkiksi jos värikoodit ovat Ruskea - Vihreä - Punainen - Hopea, resistanssin arvo lasketaan seuraavasti:
Ruskea = 1 Vihreä = 5 Punainen = 2 Hopea = ± 10%
Kolmen ensimmäisen vyöhykkeen joukosta R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Neljäs kaista osoittaa ± 10%: n toleranssin
10% 1500: sta = 150 + 10 prosentille arvo on 1500 + 150 = 1650Ω For - 10 prosentille arvo on 1500-150 = 1350Ω
Siksi todellinen vastusarvo voi olla välillä 1350Ω - 1650Ω.
Tämän helpottamiseksi tässä on resistanssin värikoodilaskuri, jossa tarvitset vain syöttämään vastuksen renkaiden väri ja saat vastusarvon.
Resistanssin laskeminen Arduino Ohm -mittarilla:
Tämän vastusmittarin toiminta on hyvin yksinkertaista ja se voidaan selittää käyttämällä yksinkertaista jännitteenjakajaverkkoa, joka on esitetty alla.
Vastusten R1 ja R2 jännitteenjakajaverkosta
Vout = Vin * R2 / (R1 + R2)
Edellä olevasta yhtälöstä voimme päätellä R2: n arvon
R2 = Vout * R1 / (Vin - Vout)
Missä R1 = tunnettu resistanssi
R2 = tuntematon vastus
Vin = Arduinon 5 V: n napalla tuotettu jännite
Vout = jännite R2: ssa maan suhteen.
Huomautus: valitun tunnetun vastuksen (R1) arvo on 3,3 KΩ, mutta käyttäjien tulisi korvata se valitsemallaan vastuksella.
Joten jos saamme tuntemattoman vastuksen (Vout) jännitteen arvon, voimme helposti laskea tuntemattoman vastuksen R2. Tässä olemme lukeneet jännite-arvon Vout analogisella tapilla A0 (katso kytkentäkaavio) ja muuttaneet nämä digitaaliset arvot (0-1023) jännitteeksi alla olevan koodin mukaisesti.
Jos tunnetun resistanssin arvo on paljon suurempi tai pienempi kuin tuntematon vastus, virhe on suurempi. Joten on suositeltavaa pitää tunnettu vastusarvo lähempänä tuntematonta vastustusta.
Koodin selitys:
Täydellinen Arduino ohjelman Demo video tähän projektiin annetaan lopussa tämän projektin. Koodi on jaettu pieniksi merkityksellisiksi paloiksi ja selitetty alla.
Tässä koodin osassa aiomme määrittää nastat, joihin 16 * 2 LCD-näyttö on kytketty Arduinoon. RS- nasta 16 * 2 lcd on kytketty arduinon digitaaliseen nastaan 2. Salli nasta 16 * 2 lcd on kytketty Arduinon digitaaliseen nastaan 3. 16 * 2 lcd: n datanastat (D4-D7) on kytketty Arduinon digitaalisiin nastoihin 4,5,6,7.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
Tässä koodin osassa määritellään joitain muuttujia, joita käytetään ohjelmassa. Vin on 5 V: n arduino-nastan tarjoama jännite. Vout on vastuksen R2 jännite maahan nähden.
R1 on tunnetun resistanssin arvo. R2 on tuntemattoman resistanssin arvo.
int Vin = 5; // jännite arduino-kellukkeen 5 V: n napalla Vout = 0; // jännite arduino-kellukkeen A0-nastassa R1 = 3300; // tunnetun vastuksen kellukkeen arvo R2 = 0; // tuntemattoman resistanssin arvo
Tässä koodin osassa aiotaan alustaa 16 * 2 lcd-näyttö. Komennot annetaan 16 * 2 lcd-näytölle eri asetuksille, kuten näytön tyhjentämiselle, osoittimen vilkkumiselle jne.
lcd-alku (16,2);
Koodin tässä osassa vastuksen R2 (A0-nasta) analoginen jännite muunnetaan digitaaliseksi arvoksi (0-1023) ja tallennetaan muuttujaan.
a2d_data = analoginen luku (A0);
Koodin tässä osassa digitaaliarvo (0-1023) muunnetaan jännitteeksi lisälaskelmia varten.
puskuri = a2d_data * Vin; Vout = (puskuri) / 1024,0;
Arduino Uno ADC on 10-bitin resoluutio (niin kokonaisluku arvot 0-2 ^ 10 = 1024 arvoja). Tämä tarkoittaa, että se kartoittaa 0 - 5 voltin syöttöjännitteet kokonaislukuiksi välillä 0 - 1023. Joten jos kerrotaan tulon anlogValue arvoon (5/1024), saadaan tulojännitteen digitaalinen arvo. Opi täältä, kuinka ADC-syötettä käytetään Arduinossa.
Koodin tässä osassa tuntemattoman resistanssin todellinen arvo lasketaan yllä kuvatulla tavalla.
puskuri = Vout / (Vin-Vout); R2 = R1 * puskuri;
Koodin tässä osassa tuntemattoman resistanssin arvo tulostetaan 16 * 2 lcd -näyttöön.
lcd.setCursor (4,0); lcd.print ("ohmimittari"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.print (R2);
Näin voimme helposti laskea tuntemattoman vastuksen resistanssin Arduinolla. Tarkista myös:
- Arduino-taajuusmittari
- Arduino-kapasitanssimittari