Raadi Koodka

Cashirka 20/31: Muujinta danabka ee LCD1602

Cashirka 20/31: Muujinta danabka ee LCD1602

Mashruucani wuxuu muujinayaa sida loo dhiso voltmeter dhijitaal ah iyadoo la isticmaalayo Arduino iyo shaashad LCD1602 oo leh interface I2C ah. Adigoo akhrinaya danab analog ah oo ka imanaya potentiometer-ka oo ku muujinaya shaashadda, waxaad baran doontaa xirfadaha aasaasiga ah ee beddelka analog-ga ilaa dhijitaalka, isgaarsiinta I2C, iyo xakamaynta LCD. 

LCD_sunFounder

Mashruucani waa tillaabo fiican oo lagu hormarinayo codsiyo badan oo wax ku ool ah. Waa kuwan qaar ka mid ah fikradaha aad ku dhisi karto:

  • Dhisidda kormeere danab battery oo la qaadan karo oo loogu talagalay mashruucyadaada.
  • Abuurista koronto siin fudud oo leh akhrin danab oo muuqda.
  • Kormeerida wax soo saarka saxanka qorraxda ama ilo kale oo danab doorsooma.
  • Muujinta qiimaha ka imanaya dareeme analog kasta, sida resistor-ka ku xiran iftiinka (LDR), oo ah lambar la akhrin karo.

Markaad dhammaystirto hagahan, waxaad yeelan doontaa faham cad oo ku saabsan sida loogu xiro qaybaha, loo habeeyo maktabadaha lagama maarmaanka ah, iyo sida loo qoro koodhka si aad u abuurto shaashadda danab ee gaarka ah.

potentiometer

Qaybaha Hardware-ka

Si aad u dhisto mashruucan, waxaad u baahan doontaa qaybaha soo socda. Koorsadu waxay ku salaysan tahay SunFounder 3-in-1 Arduino kit, kaas oo ay ku jiraan dhammaan qaybahan.

  • Arduino Board (tusaale ahaan, Uno)
  • LCD1602 Display oo leh module I2C ah
  • Potentiometer (10kΩ lagu taliyay)
  • Jumper Wires
  • Breadboard

Fahamka LCD1602 iyo Module-ka I2C

LCD1602 waa shaashad caan ah oo xarfaha iyo lambarrada muujisa oo leh 16 tiir iyo 2 saf. LCD parallel caadi ah wuxuu u baahan doonaa pinno dhijitaal ah oo badan si loo xakameeyo. Si kastaba ha ahaatee, shaashaddani waxay la timaadaa module I2C u go'an oo ku xiran dhabarkeeda (fiidiyowga 01:30). Module-kani wuxuu si weyn u fududeeyaa fiilada, isagoo ku yareynaya isku xirka afar fiilo oo keliya: VCC, GND, SDA, iyo SCL. Tani waxay suurtogal tahay sababtoo ah module-ka I2C wuxuu u shaqeeyaa sidii buundada, isagoo u turjumaya signal-ka I2C serial ee fudud una beddelaya signal-ka parallel ee LCD-ku u baahan yahay.

Mashruucani wuxuu isticmaalaa interface-ka I2C, kaas oo ah borotokool isgaarsiineed oo u oggolaanaya Arduino-gaaga inuu la hadlo qalab badan iyadoo la isticmaalayo kaliya laba fiilo. Tani waa xirfad aasaasi ah oo lagu xiro noocyo badan oo dareemayaal iyo shaashado ah.

Hagaha Fiilada

LCD1602_pot_wiring

Ku xirista LCD-ga iyo potentiometer-ka Arduino-ga waa mid toos ah. Module-ka I2C wuxuu u baahan yahay koronto iyo laba khadad isgaarsiineed. Potentiometer-ku wuxuu u shaqeeyaa sidii qaybiye danab doorsooma, isagoo kuu oggolaanaya inaad hagaajiso danabka ku yaal pin-ka wiper-kiisa.

Waa kuwan qaabka faahfaahsan ee fiilada:

  • LCD I2C Module ilaa Arduino:
    • GND ilaa Arduino GND (fiidiyowga 05:38).
    • VCC ilaa Arduino 5V (fiidiyowga 05:47).
    • SDA ilaa Arduino A4 (fiidiyowga 05:47).
    • SCL ilaa Arduino A5 (fiidiyowga 05:57).
  • Potentiometer ilaa Arduino:
    • Pin-ka Bidix ilaa Arduino 5V (fiidiyowga 33:39).
    • Pin-ka Dhexe (Wiper) ilaa Arduino A0 (fiidiyowga 33:43).
    • Pin-ka Midig ilaa Arduino GND (fiidiyowga 33:43).

Ku Rakibida Maktabadda Laga Baahan Yahay

Mashruucani wuxuu u baahan yahay maktabad dibadeed si loo xakameeyo LCD-ga iyadoo la isticmaalayo I2C. Maktabadda lagu isticmaalay fiidiyowga waa "Arduino Liquid Crystal I2C" library. Waxaad ka soo dejisan kartaa linkiga lagu bixiyay Robojax resource page ama GitHub (fiidiyowga 06:16).

Si aad u rakibto, soo deji maktabadda sidii fayl ZIP ah. Kadib, gudaha Arduino IDE-gaaga, tag Sketch > Include Library > Add .ZIP Library... oo dooro faylka aad soo dejisay (fiidiyowga 06:41).

Helista Ciwaanka I2C ee LCD-gaaga

Ka hor intaadan soo gelin koodhka ugu weyn, waxaa muhiim ah inaad go'aamiso ciwaanka I2C ee module-ka LCD-gaaga gaarka ah. Ciwaankani wuu ku kala duwanaan karaa iyadoo ku xiran soo saaraha. Fiidiyowgu wuxuu muujinayaa sida loo isticmaalo scanner-ka I2C si loo helo (fiidiyowga 08:11).

Waxaad ka heli kartaa scanner-kan adigoo tagaya File > Examples > Wire > i2c_scanner. Soo geli koodhkan Arduino-gaaga iyadoo LCD-ga ku xiran yahay, oo fur Serial Monitor-ka. Wuxuu muujin doonaa ciwaanka, kaas oo inta badan yahay 0x27 ama 0x3F. Waxaad u baahan doontaa inaad isticmaasho ciwaankan koodhkaaga ugu weyn.

Sharaxaadda Koodhka

Koodhka mashruucan wuxuu diiradda saarayaa akhrinta qiimaha analog-ga iyo qaabaynta si loogu muujiyo. Aynu u kala qaadno qaybaha muhiimka ah ee isticmaaluhu beddeli karo.

1. Ku Darista Maktabadaha iyo Shayga LCD

Qaybtani waxay ku dartaa maktabadaha lagama maarmaanka ah waxayna u abuurtaa shay LCD-gaaga. Qaybta ugu muhiimsan halkan waa ciwaanka I2C, kaas oo ay tahay inaad beddesho si uu u dhigma midka aad ka heshay tillaabadii hore.

#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>: Maktabaddan wuxuu ku dhex jiraa Arduino waxaana loo baahan yahay isgaarsiinta I2C.
  • #include <LiquidCrystal_I2C.h>: Kani wuxuu ku darayaa maktabadda aan hadda ku rakibnay, kaas oo bixiya hawlo lagu xakameeyo LCD-ga.
  • LiquidCrystal_I2C lcd(0x27, 16, 2);: Sadarkan wuxuu abuurayaa shay la yiraahdo lcd. Halbeegga koowaad, 0x27, waa cinwaanka I2C ee aad horay u heshay. Halbeegyada labaad iyo saddexaad waxay qeexayaan cabbirka LCD-ga: 16 tiirar iyo 2 saf. Waa inaad beddeshaa 0x27 cinwaankaaga gaarka ah haddii uu ka duwan yahay.

2. Hawlaha Setup iyo Loop

Hawsha setup() waxay bilaabaysaa LCD-ga waxayna shidayso iftiinka dhabarkiisa. Hawsha loop() waxay ka kooban tahay caqliga udub dhexaadka u ah akhrinta danabka iyo muujintiisa.

void setup()
{
  lcd.begin();
  lcd.backlight();
}

void loop()
{
  int potValue = analogRead(A0);
  float voltage = potValue * (5.0 / 1023.0);
  // ... (koodhka muujinta LCD)
  delay(1000);
}
  • lcd.begin(): Kani wuxuu bilaabayaa isku xirka LCD-ga wuxuuna u diyaarinayaa isticmaalkiisa.
  • lcd.backlight(): Kani wuxuu shidayaa iftiinka dhabarka ee shaashadda, taasoo ka dhigaysa qoraalka mid la arki karo.
  • int potValue = analogRead(A0);: Kani wuxuu akhrinayaa qiimaha analogga ah ee cayriin ee ka yimaada binka A0, kaas oo ku xiran wiishka potentiometer-ka. Qiimuhu wuxuu noqonayaa tiro dhammaystiran oo u dhaxaysa 0 iyo 1023, oo matalaysa danabka 0V ilaa 5V.
  • float voltage = potValue * (5.0 / 1023.0);: Kani waa tallaabada beddelka ee muhiimka ah. Wuxuu u beddelaa qiimaha ADC ee cayriin cabbir danab oo dhab ah. Qaacidadu waxay ku dhufataa qiimaha cayriin saamiga danabka tixraaca (5.0V) iyo qiimaha ugu sarreeya ee ADC (1023). Tani waa lagama maarmaan sababtoo ah ADC-ku si toos ah danabka uma akhriyo; wuxuu akhriyaa lambar saami ah.

3. Muujinta Danabka

Koodhku markaa wuxuu nadiifinayaa shaashadda wuxuuna daabacayaa qiimaha danabka meel gaar ah oo ku taal sadarka labaad.

  lcd.clear();
  lcd.print("LCD1602 Tutorial");
  lcd.setCursor (0,1); // tag bilowga sadarka 2aad
  lcd.print("Voltage:");
  lcd.setCursor (9,1); // deji sadarka 2aad xarafka 9
  lcd.print(voltage); 
  lcd.setCursor (13,1); // deji sadarka 2aad xarafka 14
  lcd.print("V"); 
  • lcd.clear(): Wuxuu nadiifinayaa qoraal kasta oo hore oo shaashadda ku jiray.
  • lcd.print("LCD1602 Tutorial"): Wuxuu daabacayaa cinwaanka sadarka koowaad.
  • lcd.setCursor (0,1): Wuxuu dejinayaa cursor-ka bilowga sadarka labaad. Halbeegga koowaad waa tiirka (0-15), kan labaadna waa safka (0 sadarka koowaad, 1 sadarka labaad).
  • lcd.print(voltage): Wuxuu daabacayaa qiimaha danabka ee la xisaabiyay. Doorsoomaha float waxaa lagu daabaci doonaa laba jajab tobanle marka la eego caadada.
  • lcd.setCursor (13,1): Wuxuu u dhaqaaqayaa cursor-ka tiirka 13 ee sadarka labaad si uu u dhigo xarafka "V" isla markiiba ka dib nambarka.

Muuujin Toos ah ee Mashruuca

Marka aad koodhka kor ku qoran soo gudbiso, LCD-ga waa inuu muujiyaa "LCD1602 Tutorial" sadarka koowaad. Sadarka labaad, wuxuu muujin doonaa "Voltage:" oo ay ku xigto akhrinta danabka ee hadda jirta. Markaad wareejiso gacanta potentiometer-ka, waxaad arki doontaa danabka la muujiyay isagoo isbeddelaya waqti-joog ah, u dhexeeya qiyaastii 0.00V ilaa 5.00V (fiidiyowga 35:25).

Mashruucani waa tusaale fiican oo ku saabsan sida loo qaato calaamad analog ah oo cayriin loona rogo qiime cad oo dadku akhriyi karaan. Xirfadaha aad halkan ku baratay waxaa si toos ah loogu dabaqi karaa dareemayaal analog oo kale oo aad mustaqbalka isticmaali karto.

Fiidiyowgu wuxuu kaloo daboolayaa mawduucyo kale oo la xiriira, sida muujinta qoraalka, gudbinta, iyo abuurista xarfaha gaarka ah ee LCD-ga.

Mashruucyo la xiriira oo ka yimid fiidiyowgan

Cutubyada

  • [00:00] Hordhaca LCD1602 iyo dulmar mashruuca
  • [01:30] Sharaxaadda qalabka LCD1602 iyo module-ka I2C
  • [04:06] Dejinta cinwaanka I2C ee jumpers-ka
  • [05:28] Jaantuska xiridda LCD1602
  • [07:31] Sharaxaadda koodhka muujinta qoraalka aasaasiga ah
  • [11:10] Muujinta tusaalaha cursor-ka indhaha ku milicsada
  • [13:46] Abuurista iyo isticmaalka xarfaha gaarka ah
  • [18:51] Isticmaalka tusaalaha muujinta taxanaha ah
  • [23:16] Gudbinta qoraalka LCD-ga
  • [26:13] Muujinta heerkulka iyo qoyaanka ee DHT11
  • [33:00] Akhrinta iyo muujinta danabka ka yimaada potentiometer-ka
  • [35:56] Muujinta masaafada ka yimaada dareemaha ultrasonic

Sawirro

potentiometer
potentiometer
LCD1602_pot_wiring
LCD1602_pot_wiring
LCD_sunFounder
LCD_sunFounder
912-Lesson 20/31: Displaying voltage on LCD1602
Luqadda: C++
/*
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
}

Kheyraadka & Tixraacyada

Faylasha📁

Arduino Libraries (zip)

Buugga Isticmaalaha