Bincika Lambar

Darasi na 20/31: Nuna wutar lantarki akan LCD1602

Darasi na 20/31: Nuna wutar lantarki akan LCD1602

Wannan aikin yana nuna yadda ake gina na'urar auna wutar lantarki ta dijital ta amfani da Arduino da LCD1602 display tare da I2C interface. Ta hanyar karanta wutar lantarki daga potentiometer da nuna shi akan allo, za ku koyi muhimman fasahohin analog-to-digital conversion, I2C communication, da LCD control. 

LCD_sunFounder

Wannan aikin babban mataki ne na ci gaba ga aikace-aikace masu amfani da yawa. Ga wasu ra'ayoyin da za ku iya ginawa akai:

  • Gina na'urar kula da wutar baturi mai ɗaukuwa don ayyukanku.
  • Ƙirƙirar samar da wutar lantarki mai sauƙi tare da nunin wutar lantarki na gani.
  • Kula da fitowar hasken rana ko wani tushen wutar lantarki mai canzawa.
  • Nuna ƙimar kowane firikwensin analog, kamar resistor mai dogaro da haske (LDR), a matsayin lamba mai karantawa.

A ƙarshen wannan jagorar, za ku sami cikakkiyar fahimta kan yadda ake haɗa abubuwan, saita dakunan karatu da ake buƙata, da rubuta lambar don ƙirƙirar nunin wutar lantarki naku.

potentiometer

Abubuwan Hardware

Don gina wannan aikin, za ku buƙaci abubuwa masu zuwa. Kwas ɗin ya dogara ne akan SunFounder 3-in-1 Arduino kit, wanda ya ƙunshi duk waɗannan sassa.

  • Arduino Board (misali, Uno)
  • LCD1602 Display tare da I2C module
  • Potentiometer (10kΩ an ba da shawarar)
  • Jumper Wires
  • Breadboard

Fahimtar LCD1602 da I2C Module

LCD1602 sanannen nunin haruffa ne mai ginshiƙai 16 da layuka 2. LCD mai layi daya na yau da kullun zai buƙaci fil ɗin dijital da yawa don sarrafa shi. Duk da haka, wannan nunin yana zuwa tare da keɓaɓɓen I2C module da aka haɗe a bayansa (a cikin bidiyo a 01:30). Wannan module yana sauƙaƙa wayoyi sosai, yana rage haɗin zuwa wayoyi huɗu kawai: VCC, GND, SDA, da SCL. Wannan yana yiwuwa saboda I2C module yana aiki azaman gada, yana fassara siginar serial I2C mai sauƙi zuwa siginonin layi daya da LCD ke buƙata.

Wannan aikin yana amfani da I2C interface, wanda shine tsarin sadarwa wanda ke ba da damar Arduino ku don yin magana da na'urori da yawa ta amfani da wayoyi biyu kawai. Wannan fasaha ce ta asali don haɗa nau'ikan firikwensin da nunin nuni da yawa.

Jagorar Wayoyi

LCD1602_pot_wiring

Haɗa LCD da potentiometer zuwa Arduino abu ne mai sauƙi. I2C module yana buƙatar wutar lantarki da layukan sadarwa guda biyu. Potentiometer yana aiki azaman mai rarraba wutar lantarki mai canzawa, yana ba ku damar daidaita wutar lantarki a fil ɗin wiper ɗinsa.

Ga cikakken tsarin wayoyi:

  • LCD I2C Module zuwa Arduino:
    • GND zuwa Arduino GND (a cikin bidiyo a 05:38).
    • VCC zuwa Arduino 5V (a cikin bidiyo a 05:47).
    • SDA zuwa Arduino A4 (a cikin bidiyo a 05:47).
    • SCL zuwa Arduino A5 (a cikin bidiyo a 05:57).
  • Potentiometer zuwa Arduino:
    • Fil na Hagu zuwa Arduino 5V (a cikin bidiyo a 33:39).
    • Fil na Tsakiya (Wiper) zuwa Arduino A0 (a cikin bidiyo a 33:43).
    • Fil na Dama zuwa Arduino GND (a cikin bidiyo a 33:43).

Shigar da Library ɗin da Ake Bukata

Wannan aikin yana buƙatar library ɗin waje don sarrafa LCD akan I2C. Library ɗin da aka yi amfani da shi a cikin bidiyo shine "Arduino Liquid Crystal I2C" library. Kuna iya saukar da shi daga hanyar da aka bayar akan Robojax resource page ko daga GitHub (a cikin bidiyo a 06:16).

Don shigar da shi, saukar da library ɗin azaman fayil ɗin ZIP. Sa'an nan, a cikin Arduino IDE ɗinku, je zuwa Sketch > Include Library > Add .ZIP Library... kuma zaɓi fayil ɗin da kuka saukar (a cikin bidiyo a 06:41).

Neman Adireshin I2C na LCD ɗinku

Kafin loda babban lambar, yana da mahimmanci a tantance adireshin I2C na musamman na LCD module ɗinku. Wannan adireshin na iya bambanta dangane da mai ƙera. Bidiyon yana nuna yadda ake amfani da I2C scanner don nemo shi (a cikin bidiyo a 08:11).

Kuna iya samun wannan scanner ɗin ta hanyar zuwa File > Examples > Wire > i2c_scanner. Loda wannan lambar zuwa Arduino ɗinku tare da haɗa LCD, kuma buɗe Serial Monitor. Zai nuna adireshin, wanda sau da yawa shine 0x27 ko 0x3F. Kuna buƙatar amfani da wannan adireshin a cikin babban lambar ku.

Bayanin Lambar

Lambar wannan aikin tana mai da hankali kan karanta ƙimar analog da tsara shi don nunawa. Bari mu raba mahimman sassa waɗanda mai amfani zai iya saita su.

1. Haɗa Library ɗin da LCD Object

Wannan sashe ya haɗa da dakunan karatu da ake buƙata kuma ya ƙirƙiri abu don LCD ɗinku. Mafi mahimmancin abu anan shine adireshin I2C, wanda dole ne ku canza shi don dacewa da wanda kuka samo a matakin da ya gabata.

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

// Saita adireshin LCD zuwa 0x27 don nunin haruffa 16 ko 20 da layuka 2 ko 4
LiquidCrystal_I2C lcd(0x27, 16, 2);
  • #include <Wire.h>: Wannan ɗakin karatu an gina shi a cikin Arduino kuma ana buƙata don sadarwar I2C.
  • #include <LiquidCrystal_I2C.h>: Wannan ya haɗa da ɗakin karatun da muka shigar yanzu, wanda ke ba da ayyukan sarrafa LCD.
  • LiquidCrystal_I2C lcd(0x27, 16, 2);: Wannan layin yana ƙirƙirar abu mai suna lcd. Siffa ta farko, 0x27, ita ce adireshin I2C da kuka samo a baya. Siffa ta biyu da ta uku suna bayyana girman LCD: ginshiƙai 16 da layuka 2. Dole ne ku canza 0x27 zuwa adireshin ku na musamman idan ya bambanta.

2. Ayyukan Saitawa da Zagaye

Aikin setup() yana fara LCD kuma yana kunna hasken bayansa. Aikin loop() ya ƙunshi ainihin dabara don karanta wutar lantarki da nuna ta.

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

void loop()
{
  int potValue = analogRead(A0);
  float voltage = potValue * (5.0 / 1023.0);
  // ... (lambar nunin LCD)
  delay(1000);
}
  • lcd.begin(): Wannan yana fara hanyar sadarwar LCD kuma yana shirya ta don amfani.
  • lcd.backlight(): Wannan yana kunna hasken bayan nunin, yana sa rubutu ya zama bayyane.
  • int potValue = analogRead(A0);: Wannan yana karanta ƙimar analog ɗin daga fil A0, wanda aka haɗa da wiper na potentiometer. Ƙimar za ta zama lamba tsakanin 0 da 1023, tana wakiltar wutar lantarki daga 0V zuwa 5V.
  • float voltage = potValue * (5.0 / 1023.0);: Wannan shine muhimmin matakin juyawa. Yana juyar da ƙimar ADC ɗin zuwa ainihin karatun wutar lantarki. Tsarin yana ninka ƙimar da rabon wutar tunani (5.0V) zuwa mafi girman ƙimar ADC (1023). Wannan ya zama dole saboda ADC baya karanta wutar lantarki kai tsaye; yana karanta lamba mai daidaito.

3. Nuna Wutar Lantarki

Lambar sai ta share allo kuma ta buga ƙimar wutar lantarki a wani wuri na musamman a layi na biyu.

  lcd.clear();
  lcd.print("LCD1602 Tutorial");
  lcd.setCursor (0,1); // je zuwa farkon layi na 2
  lcd.print("Voltage:");
  lcd.setCursor (9,1); // saita zuwa layi 2 harafi 9
  lcd.print(voltage); 
  lcd.setCursor (13,1); // saita zuwa layi 2 harafi 14
  lcd.print("V"); 
  • lcd.clear(): Yana share duk wani rubutu da ya gabata daga allo.
  • lcd.print("LCD1602 Tutorial"): Yana buga taken a layi na farko.
  • lcd.setCursor (0,1): Yana saita alamar zuwa farkon layi na biyu. Siffa ta farko ita ce ginshiƙi (0-15), kuma ta biyu ita ce layi (0 don layi na farko, 1 don na biyu).
  • lcd.print(voltage): Yana buga ƙimar wutar lantarki da aka ƙididdige. Mai canji float za a buga shi da wurare biyu bayan aya ta asali.
  • lcd.setCursor (13,1): Yana motsa alamar zuwa ginshiƙi 13 a layi na biyu don sanya harafin "V" kai tsaye bayan lambar.

Nunin Aikin Kai Tsaye

Da zarar kun ɗora lambar, LCD ya kamata ya nuna "LCD1602 Tutorial" a layi na farko. A layi na biyu, zai nuna "Voltage:" sannan kuma ƙimar wutar lantarki na yanzu. Yayin da kuke juya maɓallin potentiometer, za ku ga ƙimar wutar da aka nuna tana canzawa a lokaci guda, daga kusan 0.00V zuwa 5.00V (a bidiyo a 35:25).

Wannan aikin misali ne cikakke na yadda ake ɗaukar siginar analog ɗin da ba a sarrafa ba kuma a mayar da shi ƙima mai bayyana ga mutum. Ƙwarewar da kuka koya anan za a iya amfani da ita kai tsaye ga kowane firikwensin analog ɗin da za ku yi amfani da shi a gaba.

Bidiyon kuma ya ƙunshi wasu batutuwa masu alaƙa, kamar nuna rubutu, gungurawa, da ƙirƙirar haruffa na musamman akan LCD.

Ayyuka masu alaƙa daga wannan bidiyo

Babuka

  • [00:00] Gabatarwa ga LCD1602 da bayanin aikin
  • [01:30] Bayanin kayan aikin LCD1602 da modul ɗin I2C
  • [04:06] Saita adireshin I2C tare da jumpers
  • [05:28] Tsarin wayoyi na LCD1602
  • [07:31] Bayanin lambar don nunin rubutu na asali
  • [11:10] Nunin misalin alamar da ke kiftawa
  • [13:46] Ƙirƙira da amfani da haruffa na musamman
  • [18:51] Amfani da misalin nunin serial
  • [23:16] Gungurawa rubutu akan LCD
  • [26:13] Nuna zazzabi da danshi daga DHT11
  • [33:00] Karanta da nuna wutar lantarki daga potentiometer
  • [35:56] Nuna nisa daga firikwensin ultrasonic

Hotuna

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

Albarkatun da kuma shafukan da za a duba

Fayiloli📁

Littattafan Arduino (zip)

Jagoran Mai Amfani