کوډ ولټوئ

درس ۲۰/۳۱: ښودل ولتاژ په LCD1602 باندې

درس ۲۰/۳۱: ښودل ولتاژ په LCD1602 باندې

دا پروژه ښیي چې څنګه د Arduino او LCD1602 نندارې په کارولو سره د I2C انٹرفیس سره ډیجیټل ولټ میټر جوړ کړو. د پوټینشیومیټر څخه د انلاګ ولټاژ لوستلو او په سکرین کې د ښودلو سره، تاسو به د انلاګ څخه ډیجیټل ته د بدلون، I2C اړیکو، او LCD کنټرول اړین مهارتونه زده کړئ. 

LCD_sunFounder

دا پروژه د ډیرو عملي غوښتنلیکونو لپاره یو ښه ګام دی. دلته ځینې نظرونه دي چې تاسو یې پر بنسټ جوړولی شئ:

  • د خپلو پروژو لپاره د پورټ ایبل بیټرۍ ولټاژ څارونکی جوړول.
  • د لید ولټاژ لوستلو سره یو ساده بریښنا رسول جوړول.
  • د لمریز پینل یا بل متغیر ولټاژ سرچینې د محصول څارنه.
  • د هر انلاګ سینسر ارزښت ښودل، لکه د رڼا پورې تړلی مقاومت (LDR)، د لوستلو وړ شمیرې په توګه.

د دې لارښود په پای کې، تاسو به روښانه پوهه ولرئ چې څنګه اجزا وصل کړئ، اړین کتابتونونه تنظیم کړئ، او کوډ ولیکئ ترڅو خپل د ولټاژ نندارې جوړ کړئ.

potentiometer

هارډویر اجزا

د دې پروژې د جوړولو لپاره، تاسو به لاندې اجزاوو ته اړتیا ولرئ. کورس د SunFounder 3-in-1 Arduino کټ پر بنسټ دی، کوم چې دا ټولې برخې لري.

  • Arduino بورډ (د مثال په توګه، Uno)
  • LCD1602 ننداره د I2C ماډل سره
  • پوټینشیومیټر (10kΩ وړاندیز شوی)
  • جمپر تارونه
  • بریډبورډ

د LCD1602 او I2C ماډل پوهیدل

LCD1602 یو مشهور الفانومیریک ننداره ده چې 16 کالمونه او 2 قطارونه لري. یو معیاري موازي LCD به د کنټرول لپاره ډیر ډیجیټل پنونو ته اړتیا ولري. په هرصورت، دا ننداره د هغې په شا کې یو وقف شوی I2C ماډل لري (په ویډیو کې په 01:30). دا ماډل تارونه خورا ساده کوي، اړیکه یوازې څلور تارونو ته کموي: VCC، GND، SDA، او SCL. دا ممکنه ده ځکه چې I2C ماډل د پل په توګه کار کوي، ساده I2C سیریل سیګنال په موازي سیګنالونو بدلوي چې LCD ورته اړتیا لري.

دا پروژه د I2C انٹرفیس کاروي، کوم چې د اړیکو پروتوکول دی چې ستاسو Arduino ته اجازه ورکوي چې یوازې د دوو تارونو په کارولو سره له ډیرو وسیلو سره خبرې وکړي. دا د ډیرو ډولونو سینسرونو او نندارو د نښلولو لپاره بنسټیز مهارت دی.

د تارونو لارښود

LCD1602_pot_wiring

LCD او پوټینشیومیټر د Arduino سره نښلول ساده دي. I2C ماډل ته بریښنا او دوه اړیکې کرښې ته اړتیا ده. پوټینشیومیټر د متغیر ولټاژ ویشونکي په توګه کار کوي، تاسو ته اجازه درکوي چې د هغې د وایپر پن په ولټاژ کې تنظیم کړئ.

دلته تفصیلي تارونو تنظیم دی:

  • LCD I2C ماډل ته Arduino:
    • GND ته Arduino GND (په ویډیو کې په 05:38).
    • VCC ته Arduino 5V (په ویډیو کې په 05:47).
    • SDA ته Arduino A4 (په ویډیو کې په 05:47).
    • SCL ته Arduino A5 (په ویډیو کې په 05:57).
  • پوټینشیومیټر ته Arduino:
    • کیڼ پن ته Arduino 5V (په ویډیو کې په 33:39).
    • منځنی پن (وایپر) ته Arduino A0 (په ویډیو کې په 33:43).
    • ښي پن ته Arduino GND (په ویډیو کې په 33:43).

د اړین کتابتون نصبول

دا پروژه د I2C له لارې د LCD کنټرول لپاره بهرني کتابتون ته اړتیا لري. په ویډیو کې کارول شوی کتابتون د "Arduino Liquid Crystal I2C" کتابتون دی. تاسو کولی شئ دا د Robojax سرچینې پاڼې یا GitHub څخه په لینک کې چمتو شوي څخه ډاونلوډ کړئ (په ویډیو کې په 06:16).

د نصبولو لپاره، کتابتون د ZIP فایل په توګه ډاونلوډ کړئ. بیا، په خپل Arduino IDE کې، Sketch > Include Library > Add .ZIP Library... ته لاړ شئ او ډاونلوډ شوی فایل غوره کړئ (په ویډیو کې په 06:41).

د خپل LCD د I2C پته موندل

د اصلي کوډ اپلوډ کولو دمخه، دا خورا مهمه ده چې د خپل ځانګړي LCD ماډل I2C پته وټاکئ. دا پته د تولید کونکي پورې اړه لري توپیر کولی شي. ویډیو ښیي چې څنګه د I2C سکینر وکاروئ ترڅو دا ومومئ (په ویډیو کې په 08:11).

تاسو کولی شئ دا سکینر د File > Examples > Wire > i2c_scanner په تګ سره ومومئ. دا کوډ خپل Arduino ته د LCD سره وصل کړئ او سیریل مانیټر خلاص کړئ. دا به پته وښیي، کوم چې ډیری وختونه 0x27 یا 0x3F وي. تاسو به اړتیا ولرئ چې دا پته په خپل اصلي کوډ کې وکاروئ.

د کوډ تشریح

د دې پروژې کوډ د انلاګ ارزښت لوستلو او د نندارې لپاره د بڼه ورکولو باندې متمرکز دی. راځئ چې کلیدي، د کارونکي لخوا تنظیم وړ برخې مات کړو.

1. کتابتون شاملول او LCD اعتراض

دا برخه اړین کتابتونونه شاملوي او ستاسو د LCD لپاره یو اعتراض جوړوي. دلته ترټولو مهمه برخه د I2C پته ده، کوم چې تاسو باید بدله کړئ ترڅو هغه سره سمون ولري چې تاسو په تیر ګام کې وموندله.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// د LCD پته 0x27 ته وټاکئ د 16 یا 20 حروفو او 2 یا 4 کرښو نندارې لپاره
LiquidCrystal_I2C lcd(0x27, 16, 2);
  • #include <Wire.h>: دا کتابتون په Arduino کې جوړ شوی دی او د I2C اړیکو لپاره اړین دی.
  • #include <LiquidCrystal_I2C.h>: دا هغه کتابتون شاملوي چې موږ یې اوس نصب کړ، کوم چې د LCD کنټرول لپاره دندې چمتو کوي.
  • LiquidCrystal_I2C lcd(0x27, 16, 2);: دا کرښه د lcd په نوم یو څیز جوړوي. لومړی پیرامیټر، 0x27، هغه I2C پته ده چې تاسو مخکې وموندله. دوهم او دریم پیرامیټر د LCD ابعاد ټاکي: 16 کالمونه او 2 قطارونه. تاسو باید 0x27 خپل ځانګړي پتې ته بدل کړئ که چیرې دا توپیر ولري.

2. د Setup او Loop دندې

د setup() دنده LCD پیل کوي او د هغې شاته رڼا چالانوي. د loop() دنده د ولتاژ لوستلو او ښودلو لپاره اصلي منطق لري.

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

void loop()
{
  int potValue = analogRead(A0);
  float voltage = potValue * (5.0 / 1023.0);
  // ... (د LCD ښودلو کوډ)
  delay(1000);
}
  • lcd.begin(): دا د LCD انٹرفیس پیل کوي او د کارونې لپاره یې چمتو کوي.
  • lcd.backlight(): دا د ښودنې شاته رڼا چالانوي، چې متن ښکاره کوي.
  • int potValue = analogRead(A0);: دا د A0 پن څخه خام انلاګ ارزښت لولي، کوم چې د پوټینشیومیټر له وایپر سره وصل دی. ارزښت به د 0 او 1023 ترمنځ یو انټیجر وي، چې د 0V څخه تر 5V پورې ولتاژ استازیتوب کوي.
  • float voltage = potValue * (5.0 / 1023.0);: دا مهم بدلون ګام دی. دا خام ADC ارزښت په اصلي ولتاژ لوستلو بدلوي. فورمول خام ارزښت د حوالې ولتاژ (5.0V) او اعظمي ADC ارزښت (1023) تناسب سره ضرب کوي. دا اړین دی ځکه چې ADC په مستقیم ډول ولتاژ نه لولي؛ دا یو متناسب شمېره لولي.

3. د ولتاژ ښودل

کوډ بیا سکرین پاکوي او د ولتاژ ارزښت په دوهم کرښه کې په ځانګړي موقعیت کې چاپوي.

  lcd.clear();
  lcd.print("LCD1602 Tutorial");
  lcd.setCursor (0,1); // د دوهم کرښې پیل ته لاړ شه
  lcd.print("Voltage:");
  lcd.setCursor (9,1); // کرښه 2، حرف 9 ته وټاکه
  lcd.print(voltage); 
  lcd.setCursor (13,1); // کرښه 2، حرف 14 ته وټاکه
  lcd.print("V"); 
  • lcd.clear(): له سکرین څخه هر پخوانی متن پاکوي.
  • lcd.print("LCD1602 Tutorial"): په لومړۍ کرښه کې سرلیک چاپوي.
  • lcd.setCursor (0,1): کرسر د دوهم کرښې پیل ته ټاکي. لومړی پیرامیټر کالم دی (0-15)، او دوهم قطار دی (0 د لومړۍ کرښې لپاره، 1 د دوهمې لپاره).
  • lcd.print(voltage): محاسبه شوی ولتاژ ارزښت چاپوي. د float متغیر به په ډیفالټ ډول د دوو لسیزو سره چاپ شي.
  • lcd.setCursor (13,1): کرسر په دوهم کرښه کې کالم 13 ته انتقالوي ترڅو د "V" حرف د شمېرې سمدستي وروسته ځای په ځای کړي.

ژوندۍ پروژې نندارې

یوځل چې تاسو کوډ اپلوډ کړئ، LCD باید په لومړۍ کرښه کې "LCD1602 Tutorial" وښیې. په دوهمه کرښه کې، دا به "Voltage:" وښیې او بیا به اوسنی ولتاژ لوستل ښکاره کړي. لکه څنګه چې تاسو د پوټینشیومیټر دستګاه ګرځوئ، تاسو به وګورئ چې ښودل شوی ولتاژ په ریښتیني وخت کې بدلیږي، د نږدې 0.00V څخه تر 5.00V پورې (په ویډیو کې په 35:25).

دا پروژه یوه بشپړه بیلګه ده چې څنګه یو خام انلاګ سیګنال واخلو او په روښانه، د انسان لوستلو وړ ارزښت بدل کړو. هغه مهارتونه چې تاسو دلته زده کړل په مستقیم ډول د هر بل انلاګ سینسر باندې پلي کیدی شي چې تاسو یې په راتلونکي کې کاروئ.

ویډیو نور اړوند موضوعات هم پوښي، لکه د متن ښودل، سکرول کول، او په LCD کې د دودیزو حروفو جوړول.

د دې ویډیو اړوندې پروژې

فصلونه

  • [00:00] د LCD1602 پیژندنه او د پروژې کتنه
  • [01:30] د LCD1602 هارډویر او د I2C ماډل تشریح
  • [04:06] د جمپرونو سره د I2C پته ټاکل
  • [05:28] د LCD1602 لپاره د تارونو ډیاګرام
  • [07:31] د اساسي متن ښودلو لپاره د کوډ تشریح
  • [11:10] د رپیدو کرسر بیلګې نندارې
  • [13:46] د دودیزو حروفو جوړول او کارول
  • [18:51] د سیریل ښودلو بیلګې کارول
  • [23:16] په LCD کې د متن سکرول کول
  • [26:13] د DHT11 څخه د تودوخې او رطوبت ښودل
  • [33:00] د پوټینشیومیټر څخه د ولتاژ لوستل او ښودل
  • [35:56] د الټراسونیک سینسر څخه د فاصلې ښودل

انځورونه

potentiometer
potentiometer
LCD1602_pot_wiring
LCD1602_pot_wiring
LCD_sunFounder
LCD_sunFounder
912-Lesson 20/31: Displaying voltage on LCD1602
ژبه: 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
}

هغه شیان چې تاسو ورته اړتیا لرئ

سرچینې او حوالې

فایلونه📁

Arduino کتابتونونه (zip)

د کارونکي لارښود