سبق 20/31: وولٹیج کو LCD1602 پر ظاہر کرنا
یہ پروجیکٹ Arduino اور I2C انٹرفیس کے ساتھ LCD1602 ڈسپلے کا استعمال کرتے ہوئے ڈیجیٹل وولٹ میٹر بنانے کا طریقہ ظاہر کرتا ہے۔ پوٹینشیومیٹر سے اینالاگ وولٹیج پڑھ کر اور اسے اسکرین پر دکھا کر، آپ اینالاگ سے ڈیجیٹل کنورژن، I2C کمیونیکیشن، اور LCD کنٹرول کی ضروری مہارتیں سیکھیں گے۔
یہ پروجیکٹ بہت سے عملی استعمالات کے لیے ایک بہترین قدم ہے۔ یہاں کچھ آئیڈیاز ہیں جن پر آپ تعمیر کر سکتے ہیں:
- اپنے پروجیکٹس کے لیے پورٹیبل بیٹری وولٹیج مانیٹر بنانا۔
- بصری وولٹیج ریڈ آؤٹ کے ساتھ ایک سادہ پاور سپلائی بنانا۔
- سولر پینل یا دیگر متغیر وولٹیج ذرائع کی آؤٹ پٹ کی نگرانی کرنا۔
- کسی بھی اینالاگ سینسر کی قدر، جیسے لائٹ ڈیپنڈنٹ ریزسٹر (LDR)، کو پڑھنے کے قابل نمبر کے طور پر دکھانا۔
اس گائیڈ کے اختتام تک، آپ کو واضح سمجھ ہو جائے گی کہ اجزاء کو کیسے جوڑنا ہے، ضروری لائبریریاں ترتیب دینی ہیں، اور اپنا وولٹیج ڈسپلے بنانے کے لیے کوڈ لکھنا ہے۔
ہارڈویئر اجزاء
یہ پروجیکٹ بنانے کے لیے، آپ کو درج ذیل اجزاء کی ضرورت ہوگی۔ یہ کورس SunFounder 3-in-1 Arduino کٹ پر مبنی ہے، جس میں یہ تمام پرزے شامل ہیں۔
- Arduino بورڈ (مثلاً، Uno)
- I2C ماجیول کے ساتھ LCD1602 ڈسپلے
- پوٹینشیومیٹر (10kΩ تجویز کردہ)
- جمپر تار
- بریڈ بورڈ
LCD1602 اور I2C ماجیول کو سمجھنا
LCD1602 ایک مقبول حروف نمبری ڈسپلے ہے جس میں 16 کالم اور 2 قطاریں ہیں۔ ایک معیاری متوازی LCD کو کنٹرول کرنے کے لیے بہت سے ڈیجیٹل پنوں کی ضرورت ہوگی۔ تاہم، اس ڈسپلے کے ساتھ ایک مخصوص I2C ماجیول منسلک ہوتا ہے جو اس کی پشت پر ہوتا ہے (ویڈیو میں 01:30 پر)۔ یہ ماجیول وائرنگ کو ڈرامائی طور پر آسان بناتا ہے، کنکشن کو صرف چار تاروں تک کم کر دیتا ہے: VCC، GND، SDA، اور SCL۔ یہ ممکن ہے کیونکہ I2C ماجیول ایک پل کے طور پر کام کرتا ہے، سادہ I2C سیریل سگنل کو متوازی سگنلز میں ترجمہ کرتا ہے جن کی LCD کو ضرورت ہوتی ہے۔
یہ پروجیکٹ I2C انٹرفیس استعمال کرتا ہے، جو ایک کمیونیکیشن پروٹوکول ہے جو آپ کے Arduino کو صرف دو تاروں کا استعمال کرتے ہوئے متعدد آلات سے بات کرنے کی اجازت دیتا ہے۔ یہ بہت سے قسم کے سینسرز اور ڈسپلے کو جوڑنے کے لیے ایک بنیادی مہارت ہے۔
وائرنگ گائیڈ
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() فنکشن 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 پر کسٹم کریکٹرز بنانا۔
اس ویڈیو سے متعلقہ پروجیکٹس
- سبق 20/31: Arduino کے ساتھ LCD1602 استعمال کرکے متن ڈسپلے کریں | Robojax
- سبق 20/31: LCD اسکرین پر DHT11 سے درجہ حرارت اور نمی ڈسپلے کرنا
ابواب
- [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] الٹراسونک سینسر سے فاصلہ ڈسپلے کرنا
/*
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
}
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ایمیزونSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
ایمیزون
-
ایمیزون
-
ایمیزون
-
ایمیزون
وسائل اور حوالہ جات
-
دستاویزاتDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
باہرونیPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
فائلیں📁
آرڈوینو لائبریریاں (زپ)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
صارف کا دستی کتاب
-
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