Luka Code

Lisolo 20/31: Kolakisa voltage na LCD1602

Lisolo 20/31: Kolakisa voltage na LCD1602

Mokano oyo emonisi ndenge ya kosala voltmètre ya digitale na Arduino mpe display ya LCD1602 oyo ezali na interface ya I2C. Na kotanga voltage ya analogi kobanda na potentiomètre mpe kolakisa yango na écran, okoyekola makoki ya libela ya conversion ya analogi na digitale, communication ya I2C, mpe contrôle ya LCD. 

LCD_sunFounder

Projet oyo ezali etape ya malamu mpo na misala mingi ya pratique. Tala makanisi mosusu oyo okoki kosala:

  • Kosala moniteur ya batterie ya portable mpo na ba projets na yo.
  • Kosala source ya courant ya pete na affichage ya voltage oyo emonani.
  • Kotala résultat ya panneau solaire to source mosusu ya voltage oyo ebongwanaka.
  • Kolakisa valeur ya n'importe quel capteur analogi, lokola résistance oyo etieyaka na pole (LDR), lokola nombre oyo ekoki kotángama.

Na suka ya guide oyo, okoyeba malamu ndenge ya kosangisa ba composants, ko configurer ba bibliothèques oyo esengeli, mpe kokoma code mpo na kosala affichage ya voltage na yo moko.

potentiomètre

Ba Composants ya Hardware

Mpo na kosala projet oyo, okosalela ba composants oyo. Cours oyo ezwami na SunFounder 3-in-1 Arduino kit, oyo ezali na ba parties nyonso oyo.

  • Arduino Board (lokola, Uno)
  • Display ya LCD1602 na module ya I2C
  • Potentiomètre (10kΩ oyo epesami)
  • Ba Jumper Wires
  • Breadboard

Koyeba LCD1602 mpe Module ya I2C

LCD1602 ezali display ya alphanumeric oyo eyebani malamu, ezali na ba colonnes 16 mpe ba lignes 2. LCD ya parallèle ya standard esengaka ba pins ebele ya digitale mpo na contrôle. Kasi, display oyo ezali na module ya I2C oyo epesami na mokongo na yango (na vidéo na 01:30). Module oyo ekitisaka mingi ba fils oyo esengeli, mpe ekitisi yango na ba fils minei kaka: VCC, GND, SDA, mpe SCL. Oyo esalemaka mpo module ya I2C ezali lokola pont, oyo ebongolaka signal ya I2C ya série na ba signaux ya parallèle oyo LCD esengaka.

Projet oyo esalelaka interface ya I2C, oyo ezali protocole ya communication oyo epesaka Arduino na yo nzela ya koloba na ba appareils ebele na ba fils mibale kaka. Oyo ezali makoki ya libela mpo na kosangisa ba capteurs mpe ba displays ya ndenge na ndenge.

Guide ya Ba Fils

LCD1602_pot_wiring

Kosangisa LCD mpe potentiomètre na Arduino ezali pete. Module ya I2C esengaka courant mpe ba lignes mibale ya communication. Potentiomètre ezali lokola diviseur ya voltage oyo ebongwanaka, oyo epesaka yo nzela ya kobongisa voltage na pin ya wiper na yango.

Tala ndenge ya kosala ba fils na détail:

  • Module ya LCD I2C na Arduino:
    • GND na Arduino GND (na vidéo na 05:38).
    • VCC na Arduino 5V (na vidéo na 05:47).
    • SDA na Arduino A4 (na vidéo na 05:47).
    • SCL na Arduino A5 (na vidéo na 05:57).
  • Potentiomètre na Arduino:
    • Pin ya gauche na Arduino 5V (na vidéo na 33:39).
    • Pin ya kati (Wiper) na Arduino A0 (na vidéo na 33:43).
    • Pin ya droite na Arduino GND (na vidéo na 33:43).

Kotiya Bibliothèque oyo Esengeli

Projet oyo esengaka bibliothèque ya libanda mpo na ko contrôler LCD na I2C. Bibliothèque oyo esalelami na vidéo ezali "Arduino Liquid Crystal I2C" library. Okoki kokitisa yango na lien oyo epesami na page ya ressources ya Robojax to na GitHub (na vidéo na 06:16).

Mpo na kotiya yango, kitisa bibliothèque lokola fichier ya ZIP. Na sima, na Arduino IDE na yo, kende na Sketch > Include Library > Add .ZIP Library... mpe pona fichier oyo okitisaki (na vidéo na 06:41).

Koluka Adresse ya I2C ya LCD na Yo

Liboso ya kotia code principal, esengeli mingi koyeba adresse ya I2C ya module ya LCD na yo. Adresse oyo ekoki kobongwana kolanda ndenge oyo esalemaki. Vidéo emonisi ndenge ya kosalela scanner ya I2C mpo na koluka yango (na vidéo na 08:11).

Okoki koluka scanner oyo na File > Examples > Wire > i2c_scanner. Tia code oyo na Arduino na yo na LCD oyo esangisami, mpe fungola Serial Monitor. Ekolakisa adresse, oyo mbala mingi ezalaka 0x27 to 0x3F. Okosalela adresse oyo na code principal na yo.

Explication ya Code

Code ya projet oyo ezali na kati ya kotanga valeur ya analogi mpe kobongisa yango mpo na affichage. Tala ba parties ya libela mpe oyo esengeli kobongisama na moto.

1. Ba Bibliothèque mpe Objet ya LCD

Section oyo ezali na ba bibliothèque oyo esengeli mpe esalaka objet mpo na LCD na yo. Eloko ya ntina mingi awa ezali adresse ya I2C, oyo esengeli kobongola mpo na kokokana na oyo olukaki na etape oyo eleki.

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

// Tia adresse ya LCD na 0x27 mpo na display ya ba caractères 16 to 20 mpe ba lignes 2 to 4
LiquidCrystal_I2C lcd(0x27, 16, 2);
  • #include <Wire.h>: Buku oyo ezali na kati ya Arduino mpe esengeli mpo na koyokana na I2C.
  • #include <LiquidCrystal_I2C.h>: Oyo ezali na bibliothèque oyo tokotisa kala, oyo epesaka biso bisaleli mpo na kokamba LCD.
  • LiquidCrystal_I2C lcd(0x27, 16, 2);: Ligne oyo esalaka objet oyo babengi lcd. Paramètre ya liboso, 0x27, ezali adresse I2C oyo omonaki liboso. Paramètre ya mibale mpe ya misato balobaka bokeseni ya LCD: 16 colonnes mpe 2 lignes. Esengeli obongola 0x27 na adresse na yo soki ekeseni.

2. Fonctions Setup mpe Loop

Fonction setup() ebandisaka LCD mpe epelaka mwinda na yango. Fonction loop() ezali na logique ya liboso mpo na kotanga voltage mpe kolakisa yango.

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

void loop()
{
  int potValue = analogRead(A0);
  float voltage = potValue * (5.0 / 1023.0);
  // ... (code ya kolakisa na LCD)
  delay(1000);
}
  • lcd.begin(): Oyo ebandisaka interface ya LCD mpe esalaka yango mpo na kosalela.
  • lcd.backlight(): Oyo epelaka mwinda ya display, mpo ete maloba emonana.
  • int potValue = analogRead(A0);: Oyo etangaka motuya ya analog na pin A0, oyo esangani na wiper ya potentiomètre. Motuya ekozala entier kati na 0 mpe 1023, oyo elakisi voltage kobanda 0V kino 5V.
  • float voltage = potValue * (5.0 / 1023.0);: Oyo ezali etape ya liboso ya kobongola. Ebongolaka motuya ya ADC na motuya ya solo ya voltage. Formule ekomisaka motuya ya liboso na ratio ya voltage ya référence (5.0V) na motuya ya suka ya ADC (1023). Oyo esengeli mpo ete ADC etangaka voltage te; etangaka motuya oyo ekokani na yango.

3. Kolakisa Voltage

Code yango ekolongolaka ekólo mpe ekomaka motuya ya voltage na esika oyo ekatami na ligne ya mibale.

  lcd.clear();
  lcd.print("LCD1602 Tutorial");
  lcd.setCursor (0,1); // kende na ebandeli ya ligne ya mibale
  lcd.print("Voltage:");
  lcd.setCursor (9,1); // tia na ligne 2 char 9
  lcd.print(voltage); 
  lcd.setCursor (13,1); // tia na ligne 2 char 14
  lcd.print("V"); 
  • lcd.clear(): Ekolongolaka maloba nyonso oyo ezalaki na ekólo.
  • lcd.print("LCD1602 Tutorial"): Ekomaka titre na ligne ya liboso.
  • lcd.setCursor (0,1): Etyaka curseur na ebandeli ya ligne ya mibale. Paramètre ya liboso ezali colonne (0-15), mpe ya mibale ezali ligne (0 mpo na ligne ya liboso, 1 mpo na ya mibale).
  • lcd.print(voltage): Ekomaka motuya ya voltage oyo ekomami. Variable float ekomama na ba décimales mibale na ndenge ya liboso.
  • lcd.setCursor (13,1): Ememaka curseur na colonne 13 na ligne ya mibale mpo na kotia "V" mbala moko na nsima ya motuya.

Elakiseli ya Projet na Bomoi

Ntango okomisi code yango, LCD esengeli kolakisa "LCD1602 Tutorial" na ligne ya liboso. Na ligne ya mibale, ekolakisa "Voltage:" mpe na nsima motuya ya voltage ya sik’oyo. Ntango ozongisaka potentiomètre, okomona voltage oyo elakisi ebongwanaka na tango ya solo, kobanda pene na 0.00V kino 5.00V (na vidéo na 35:25).

Projet oyo ezali ndakisa ya malamu ya ndenge ya kozwa signal analog mpe kobongola yango na motuya oyo emonanaka malamu mpo na bato. Mayele oyo oyekolaki awa ekosalela yo mpo na ba capteurs oyo nyonso ya analog oyo okosalela na mikolo ekoya.

Vidéo yango ezali mpe kolobela makambo mosusu, lokola kolakisa maloba, kokende na ngámbo, mpe kosala bimoniseli ya bato na LCD.

Ba projets oyo etali vidéo oyo

Baparties

  • [00:00] Bokambi na LCD1602 mpe elakiseli ya projet
  • [01:30] Elobeli ya hardware ya LCD1602 mpe module I2C
  • [04:06] Kotia adresse I2C na ba jumpers
  • [05:28] Diagramme ya ba connexions mpo na LCD1602
  • [07:31] Elobeli ya code mpo na kolakisa maloba ya liboso
  • [11:10] Elakiseli ya ndakisa ya curseur oyo ezali kobwaka
  • [13:46] Kosala mpe kosalela bimoniseli ya bato
  • [18:51] Kosalela ndakisa ya kolakisa na série
  • [23:16] Kokende na ngámbo ya maloba na LCD
  • [26:13] Kolakisa température mpe humidité kobanda DHT11
  • [33:00] Kotanga mpe kolakisa voltage kobanda potentiomètre
  • [35:56] Kolakisa mosika kobanda capteur ya son

Images

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

Mokili na bisika

Fichiers📁

Maktabat ya Arduino (zip)

Manuel de l'utilisateur