Somo la 20/31: Kuonyesha voltage kwenye LCD1602
Mradi huu unaonyesha jinsi ya kutengeneza voltimita ya dijiti kwa kutumia Arduino na LCD1602 yenye kiolesura cha I2C. Kwa kusoma voltage ya analogi kutoka kwa potentiometer na kuionyesha kwenye skrini, utajifunza ujuzi muhimu wa ubadilishaji wa analogi hadi dijiti, mawasiliano ya I2C, na udhibiti wa LCD.
Mradi huu ni hatua nzuri ya kuanzia kwa matumizi mengi ya vitendo. Hapa kuna mawazo kadhaa unayoweza kujenga juu yake:
- Kutengeneza kifuatiliaji cha betri cha kubebeka kwa miradi yako.
- Kutengeneza ugavi rahisi wa umeme wenye usomaji wa voltage unaoonekana.
- Kufuatilia pato la paneli ya jua au chanzo kingine cha voltage inayobadilika.
- Kuonyesha thamani kutoka kwa kihisi chochote cha analogi, kama vile kipingamizi kinachotegemea mwanga (LDR), kama nambari inayosomeka.
Kufikia mwisho wa mwongozo huu, utakuwa na uelewa wazi wa jinsi ya kuunganisha vipengele, kusanidi maktaba muhimu, na kuandika msimbo wa kutengeneza onyesho lako la voltage.
Vipengele vya Maunzi
Ili kutengeneza mradi huu, utahitaji vipengele vifuatavyo. Kozi hii inategemea kit cha SunFounder 3-in-1 Arduino, ambacho kinajumuisha sehemu hizi zote.
- Bodi ya Arduino (mfano, Uno)
- Onyesho la LCD1602 lenye moduli ya I2C
- Potentiometer (10kΩ inapendekezwa)
- Waya za Kurukia
- Breadboard
Kuelewa LCD1602 na Moduli ya I2C
LCD1602 ni onyesho maarufu la alphanumeric lenye safu 16 na safu mlalo 2. LCD ya sambamba ya kawaida ingehitaji pini nyingi za dijiti kuidhibiti. Hata hivyo, onyesho hili linakuja na moduli maalum ya I2C iliyounganishwa nyuma yake (katika video saa 01:30). Moduli hii inarahisisha wiring kwa kiasi kikubwa, ikipunguza muunganisho hadi waya nne tu: VCC, GND, SDA, na SCL. Hii inawezekana kwa sababu moduli ya I2C hufanya kama daraja, ikitafsiri ishara rahisi ya mfululizo ya I2C kuwa ishara za sambamba ambazo LCD inahitaji.
Mradi huu unatumia kiolesura cha I2C, ambacho ni itifaki ya mawasiliano inayoruhusu Arduino yako kuzungumza na vifaa vingi kwa kutumia waya mbili tu. Hii ni ujuzi wa msingi kwa kuunganisha aina nyingi za vihisi na viashiria.
Mwongozo wa Wiring
Kuunganisha LCD na potentiometer kwenye Arduino ni rahisi. Moduli ya I2C inahitaji nguvu na njia mbili za mawasiliano. Potentiometer hufanya kama mgawanyaji wa voltage unaobadilika, ikikuruhusu kurekebisha voltage kwenye pini yake ya wiper.
Hapa kuna mpangilio wa kina wa wiring:
- Moduli ya LCD I2C kwa Arduino:
- GND kwa Arduino GND (katika video saa 05:38).
- VCC kwa Arduino 5V (katika video saa 05:47).
- SDA kwa Arduino A4 (katika video saa 05:47).
- SCL kwa Arduino A5 (katika video saa 05:57).
- Potentiometer kwa Arduino:
- Pini ya Kushoto kwa Arduino 5V (katika video saa 33:39).
- Pini ya Kati (Wiper) kwa Arduino A0 (katika video saa 33:43).
- Pini ya Kulia kwa Arduino GND (katika video saa 33:43).
Kusakinisha Maktaba Inayohitajika
Mradi huu unahitaji maktaba ya nje kudhibiti LCD kupitia I2C. Maktaba inayotumiwa kwenye video ni "Arduino Liquid Crystal I2C". Unaweza kuipakua kutoka kiungo kilichotolewa kwenye ukurasa wa rasilimali wa Robojax au kutoka GitHub (katika video saa 06:16).
Ili kuisakinisha, pakua maktaba kama faili ya ZIP. Kisha, kwenye Arduino IDE yako, nenda kwenye Sketch > Include Library > Add .ZIP Library... na uchague faili uliyopakua (katika video saa 06:41).
Kutafuta Anwani ya I2C ya LCD Yako
Kabla ya kupakia msimbo mkuu, ni muhimu kubainisha anwani ya I2C ya moduli yako maalum ya LCD. Anwani hii inaweza kutofautiana kulingana na mtengenezaji. Video inaonyesha jinsi ya kutumia skana ya I2C kuipata (katika video saa 08:11).
Unaweza kupata skana hii kwa kwenda kwenye File > Examples > Wire > i2c_scanner. Pakia msimbo huu kwenye Arduino yako huku LCD ikiwa imeunganishwa, na ufungue Serial Monitor. Itaonyesha anwani, ambayo mara nyingi ni 0x27 au 0x3F. Utahitaji kutumia anwani hii kwenye msimbo wako mkuu.
Maelezo ya Msimbo
Msimbo wa mradi huu unalenga kusoma thamani ya analogi na kuipanga kwa ajili ya kuonyeshwa. Hebu tuchambue sehemu muhimu, zinazoweza kusanidiwa na mtumiaji.
1. Ujumuishaji wa Maktaba na Kitu cha LCD
Sehemu hii inajumuisha maktaba muhimu na kuunda kitu kwa ajili ya LCD yako. Sehemu muhimu zaidi hapa ni anwani ya I2C, ambayo lazima uibadilishe ili ilingane na ile uliyoipata katika hatua iliyopita.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 or 20 chars and 2 or 4 lines display
LiquidCrystal_I2C lcd(0x27, 16, 2);#include <Wire.h>: Maktaba hii imejengwa ndani ya Arduino na inahitajika kwa mawasiliano ya I2C.#include <LiquidCrystal_I2C.h>: Hii inajumuisha maktaba tuliyoweka hivi karibuni, ambayo hutoa kazi za kudhibiti LCD.LiquidCrystal_I2C lcd(0x27, 16, 2);: Mstari huu unaunda kitu kinachoitwalcd. Kigezo cha kwanza,0x27, ni anwani ya I2C uliyoipata hapo awali. Kigezo cha pili na cha tatu hufafanua vipimo vya LCD: safu 16 na safu mlalo 2. Lazima ubadilishe0x27kuwa anwani yako maalum ikiwa ni tofauti.
2. Kazi za Setup na Loop
Kazi ya setup() huanzisha LCD na kuwasha mwanga wake wa nyuma. Kazi ya loop() ina mantiki kuu ya kusoma voltage na kuionyesha.
void setup()
{
lcd.begin();
lcd.backlight();
}
void loop()
{
int potValue = analogRead(A0);
float voltage = potValue * (5.0 / 1023.0);
// ... (code ya kuonyesha LCD)
delay(1000);
}
lcd.begin(): Hii huanzisha kiolesura cha LCD na kuitayarisha kwa matumizi.lcd.backlight(): Hii huwasha mwanga wa nyuma wa skrini, na kufanya maandishi yaonekane.int potValue = analogRead(A0);: Hii inasoma thamani ghafi ya analog kutoka kwenye pini A0, ambayo imeunganishwa kwenye kipimo cha potentiometer. Thamani itakuwa nambari nzima kati ya 0 na 1023, inayowakilisha voltage kutoka 0V hadi 5V.float voltage = potValue * (5.0 / 1023.0);: Hii ni hatua muhimu ya kubadilisha. Inabadilisha thamani ghafi ya ADC kuwa usomaji halisi wa voltage. Fomula huzidisha thamani ghafi kwa uwiano wa voltage ya rejea (5.0V) kwa thamani ya juu ya ADC (1023). Hii ni muhimu kwa sababu ADC haisomi voltage moja kwa moja; inasoma nambari inayolingana.
3. Kuonyesha Voltage
Code kisha hufuta skrini na kuchapisha thamani ya voltage kwenye nafasi maalum kwenye mstari wa pili.
lcd.clear();
lcd.print("LCD1602 Tutorial");
lcd.setCursor (0,1); // nenda mwanzo wa mstari wa 2
lcd.print("Voltage:");
lcd.setCursor (9,1); // weka kwenye mstari wa 2 herufi ya 9
lcd.print(voltage);
lcd.setCursor (13,1); // weka kwenye mstari wa 2 herufi ya 14
lcd.print("V");
lcd.clear(): Hufuta maandishi yoyote ya awali kwenye skrini.lcd.print("LCD1602 Tutorial"): Huchapisha kichwa kwenye mstari wa kwanza.lcd.setCursor (0,1): Huweka mshale kwenye mwanzo wa mstari wa pili. Kigezo cha kwanza ni safu (0-15), na cha pili ni mstari (0 kwa mstari wa kwanza, 1 kwa wa pili).lcd.print(voltage): Huchapisha thamani ya voltage iliyohesabiwa. Kigezo chafloatkitachapishwa kwa sehemu mbili za desimali kwa chaguo-msingi.lcd.setCursor (13,1): Husogeza mshale hadi safu ya 13 kwenye mstari wa pili ili kuweka herufi "V" mara baada ya nambari.
Maonyesho ya Mradi wa Moja kwa Moja
Mara baada ya kupakia code, LCD inapaswa kuonyesha "LCD1602 Tutorial" kwenye mstari wa kwanza. Kwenye mstari wa pili, itaonyesha "Voltage:" ikifuatiwa na usomaji wa sasa wa voltage. Unapozungusha kipimo cha potentiometer, utaona voltage iliyoonyeshwa ikibadilika kwa wakati halisi, kuanzia takriban 0.00V hadi 5.00V (katika video saa 35:25).
Mradi huu ni mfano kamili wa jinsi ya kuchukua ishara ghafi ya analog na kuibadilisha kuwa thamani wazi inayosomeka na binadamu. Ujuzi uliojifunza hapa unaweza kutumika moja kwa moja kwenye sensor yoyote nyingine ya analog utakayotumia siku zijazo.
Video pia inashughulikia mada nyingine zinazohusiana, kama vile kuonyesha maandishi, kusogeza, na kuunda herufi maalum kwenye LCD.
Miradi inayohusiana kutoka kwenye video hii
- Somo la 20/31: Kutumia LCD1602 na Arduino kuonyesha maandishi | Robojax
- Somo la 20/31: Kuonyesha Joto na Unyevu kutoka DHT11 kwenye skrini ya LCD
Sura
- [00:00] Utangulizi wa LCD1602 na muhtasari wa mradi
- [01:30] Maelezo ya vifaa vya LCD1602 na moduli ya I2C
- [04:06] Kuweka anwani ya I2C kwa jumpers
- [05:28] Mchoro wa wiring kwa LCD1602
- [07:31] Maelezo ya code kwa kuonyesha maandishi ya msingi
- [11:10] Kuonyesha mfano wa mshale unaowaka
- [13:46] Kuunda na kutumia herufi maalum
- [18:51] Kutumia mfano wa kuonyesha serial
- [23:16] Kusogeza maandishi kwenye LCD
- [26:13] Kuonyesha joto na unyevu kutoka DHT11
- [33:00] Kusoma na kuonyesha voltage kutoka potentiometer
- [35:56] Kuonyesha umbali kutoka sensor ya ultrasonic
/*
Lesson 20/31: Displaying voltage on LCD1602
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 or 20 chars and 2 or 4 lines display
LiquidCrystal_I2C lcd(0x27, 16, 2);
int count =700;
void setup()
{
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
// Robojax code for LCD with I2C
}
void loop()
{
int potValue = analogRead(A0);
float voltage = potValue * (5.0 / 1023.0);
//start of loop Robojax code for LCD with I2C
lcd.clear();
lcd.print("LCD1602 Tutorial");
lcd.setCursor (0,1); // go to start of 2nd line
lcd.print("Voltage:");
lcd.setCursor (9,1); // set to line 2 char 9
lcd.print(voltage);
lcd.setCursor (13,1); // set to line 2 char 14
lcd.print("V");
//lcd.setCursor (3,3); // set to line 4 character 4
//lcd.print("Text in line 4");
delay(1000);
count++;
//end of loopcode Robojax code for LCD with I2C
}
Tänker att du kanske behöver
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Resurser och referenser
-
DokumentationDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Extern.Purchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Filer📁
Arduino-bibliotek (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
Användarhandbok
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB