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.
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.
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
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 sunalcd. 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 canza0x27zuwa 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 canjifloatza 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
- Darasi 20/31: Amfani da LCD1602 tare da Arduino don nuna rubutu | Robojax
- Darasi 20/31: Nuna Zazzabi da Danshi daga DHT11 akan allon LCD
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
/*
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
}
Abin da zaka iya bukata
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Albarkatun da kuma shafukan da za a duba
-
TakarduDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
WajePurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Fayiloli📁
Littattafan Arduino (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
Jagoran Mai Amfani
-
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