કોડ શોધો

પાઠ 20/31: LCD1602 પર વોલ્ટેજ દર્શાવવું

પાઠ 20/31: LCD1602 પર વોલ્ટેજ દર્શાવવું

આ પ્રોજેક્ટ દર્શાવે છે કે કેવી રીતે Arduino અને I2C ઇન્ટરફેસ સાથેના LCD1602 ડિસ્પ્લેનો ઉપયોગ કરીને ડિજિટલ વોલ્ટમીટર બનાવવું. પોટેન્શિયોમીટરમાંથી એનાલોગ વોલ્ટેજ વાંચીને અને તેને સ્ક્રીન પર દર્શાવીને, તમે એનાલોગ-થી-ડિજિટલ રૂપાંતરણ, I2C સંચાર અને LCD નિયંત્રણની આવશ્યક કુશળતા શીખી શકશો. 

LCD_sunFounder

આ પ્રોજેક્ટ ઘણી વ્યવહારિક એપ્લિકેશનો માટે એક ઉત્તમ પગથિયું છે. અહીં કેટલાક વિચારો છે જે તમે વિકસાવી શકો છો:

  • તમારા પ્રોજેક્ટ્સ માટે પોર્ટેબલ બેટરી વોલ્ટેજ મોનિટર બનાવવું.
  • વિઝ્યુઅલ વોલ્ટેજ રીડઆઉટ સાથે સરળ પાવર સપ્લાય બનાવવું.
  • સોલર પેનલ અથવા અન્ય ચલ વોલ્ટેજ સ્ત્રોતના આઉટપુટનું નિરીક્ષણ કરવું.
  • કોઈપણ એનાલોગ સેન્સર, જેમ કે લાઇટ-ડિપેન્ડન્ટ રેઝિસ્ટર (LDR), માંથી મૂલ્યને વાંચી શકાય તેવી સંખ્યા તરીકે દર્શાવવું.

આ માર્ગદર્શિકાના અંત સુધીમાં, તમને ઘટકોને કેવી રીતે જોડવા, જરૂરી લાઇબ્રેરીઓ ગોઠવવા અને તમારું પોતાનું વોલ્ટેજ ડિસ્પ્લે બનાવવા માટે કોડ લખવાની સ્પષ્ટ સમજણ મળશે.

પોટેન્શિયોમીટર

હાર્ડવેર ઘટકો

આ પ્રોજેક્ટ બનાવવા માટે, તમારે નીચેના ઘટકોની જરૂર પડશે. આ કોર્સ SunFounder 3-ઇન-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 ને માત્ર બે વાયરનો ઉપયોગ કરીને બહુવિધ ઉપકરણો સાથે વાત કરવાની મંજૂરી આપે છે. આ ઘણા પ્રકારના સેન્સર અને ડિસ્પ્લેને કનેક્ટ કરવા માટે એક મૂળભૂત કુશળતા છે.

વાયરિંગ માર્ગદર્શિકા

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 પર જઈને આ સ્કેનર શોધી શકો છો. LCD કનેક્ટેડ સાથે આ કોડ તમારા Arduino પર અપલોડ કરો અને સીરિયલ મોનિટર ખોલો. તે સરનામું દર્શાવશે, જે ઘણીવાર 0x27 અથવા 0x3F હોય છે. તમારે તમારા મુખ્ય કોડમાં આ સરનામાનો ઉપયોગ કરવાની જરૂર પડશે.

કોડ સમજૂતી

આ પ્રોજેક્ટનો કોડ એનાલોગ મૂલ્ય વાંચવા અને તેને ડિસ્પ્લે માટે ફોર્મેટ કરવા પર કેન્દ્રિત છે. ચાલો મુખ્ય, વપરાશકર્તા-રૂપરેખાંકિત ભાગોને તોડીએ.

1. લાઇબ્રેરી સમાવેશ અને LCD ઑબ્જેક્ટ

આ વિભાગ જરૂરી લાઇબ્રેરીઓ શામેલ કરે છે અને તમારા LCD માટે એક ઑબ્જેક્ટ બનાવે છે. અહીં સૌથી મહત્વપૂર્ણ ભાગ I2C સરનામું છે, જે તમારે અગાઉના પગલામાં મળેલા સરનામા સાથે મેળ ખાતું બદલવું આવશ્યક છે.

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

// 16 અથવા 20 અક્ષરો અને 2 અથવા 4 લાઇન ડિસ્પ્લે માટે LCD સરનામું 0x27 પર સેટ કરો
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 ટ્યુટોરિયલ");
  lcd.setCursor (0,1); // બીજી લાઇનની શરૂઆતમાં જાઓ
  lcd.print("વોલ્ટેજ:");
  lcd.setCursor (9,1); // લાઇન 2 અક્ષર 9 પર સેટ કરો
  lcd.print(voltage); 
  lcd.setCursor (13,1); // લાઇન 2 અક્ષર 14 પર સેટ કરો
  lcd.print("V"); 
  • lcd.clear(): સ્ક્રીનમાંથી કોઈપણ અગાઉનો ટેક્સ્ટ સાફ કરે છે.
  • lcd.print("LCD1602 ટ્યુટોરિયલ"): પ્રથમ લાઇન પર શીર્ષક છાપે છે.
  • lcd.setCursor (0,1): કર્સરને બીજી લાઇનની શરૂઆતમાં સેટ કરે છે. પ્રથમ પરિમાણ કૉલમ છે (0-15), અને બીજું પંક્તિ છે (0 પ્રથમ લાઇન માટે, 1 બીજી માટે).
  • lcd.print(voltage): ગણતરી કરેલ વોલ્ટેજ મૂલ્ય છાપે છે. float ચલ ડિફૉલ્ટ રૂપે બે દશાંશ સ્થાનો સાથે છાપવામાં આવશે.
  • lcd.setCursor (13,1): "V" અક્ષરને સંખ્યા પછી તરત જ સ્થાન આપવા માટે કર્સરને બીજી લાઇન પર કૉલમ 13 પર ખસેડે છે.

લાઇવ પ્રોજેક્ટ પ્રદર્શન

એકવાર તમે કોડ અપલોડ કરી લો, પછી LCD એ પ્રથમ લાઇન પર "LCD1602 ટ્યુટોરિયલ" પ્રદર્શિત કરવું જોઈએ. બીજી લાઇન પર, તે "વોલ્ટેજ:" બતાવશે ત્યારબાદ વર્તમાન વોલ્ટેજ રીડિંગ. જેમ તમે પોટેન્શિયોમીટરનું નોબ ફેરવો છો, તેમ તમે પ્રદર્શિત વોલ્ટેજને રીઅલ-ટાઇમમાં બદલાતું જોશો, જે લગભગ 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)

વપરાશકર્તાનું માર્ગદર્શિકા