Wa Koodu

Ẹkọ 20/31: Ṣíṣàfihàn ijinna Ultrasonic lórí LCD1602

Ẹkọ 20/31: Ṣíṣàfihàn ijinna Ultrasonic lórí LCD1602

Ise agbé iṣẹ́ yìí ṣàfihàn bí a ṣe le darapọ̀ sensori ìwọ̀n ọ̀nà ultrasonic HC-SR04 pẹ̀lú àfihàn LCD1602 tí ó ní I2C láti ṣẹ̀dá ètò ìwọ̀n ọ̀nà ní àkókò gidi. Ní ìparí ìtọ́sọ́nà yìí, ìwọ yóò ní ẹ̀rọ tí ó ń ṣiṣẹ́ tí ó ń wọ̀n àti ṣàfihàn ọ̀nà sí ohun kan ní sẹ̀ǹtímítà. Èyí jẹ́ ọ̀nà ìpìlẹ̀ pàtàkì nínú ẹ̀rọ Arduino, níwọ̀n bí ó ti ń darapọ̀ ìmúwọ́lẹ̀ sensori pẹ̀lú ìṣàfihàn ojú.

Sunfounder 20-LCD1602-ultrasonic

Ètò tí ó wúlò yìí ni a lè lò nínú ọ̀pọ̀lọpọ̀ àwọn ohun tí ó ń ṣẹlẹ̀ nínú ayé gidi, pẹ̀lú:

  • Ṣíṣe olùrànwọ́ ìdúró ọkọ̀ tí ó gbọ́n tí ó ń ran ọ lọ́wọ́ láti mọ ọ̀nà sí ògiri tàbí ọkọ̀ mìíràn.
  • Kíkọ́ ẹ̀rọ ìṣàkóso ìpele omi tí ó rọrùn fún ojò nípa wíwọ̀n ọ̀nà láti orí sí ojú omi.
  • Dídàgbàsókè ẹ̀rọ tí ń fúnni ní ọtí ìfọwọ́ tí ó jẹ́ aládàáṣe tàbí àkọ̀tàn tí kò ní ìfọwọ́kan tí ó ń ṣí nígbà tí ohun kan bá súnmọ́.
  • Kíkọ́ ìtànjíjà ààbò tí ó rọrùn tí ó ń mú kí ẹ̀rọ ṣiṣẹ́ nígbà tí ẹnìkan bá wọ àgbègbè kan pàtó.

Àwọn Ohun Èlò àti Àwọn Ẹ̀yà

Láti kọ́ iṣẹ́ yìí, ìwọ yóò nílò àwọn ẹ̀yà wọ̀nyí:

  • Bọ́ọ̀dù Arduino (bíi Uno)
  • Àfihàn LCD1602 pẹ̀lú mọ́díọ̀lù I2C
  • Sensori Ìwọ̀n Ọ̀nà Ultrasonic HC-SR04
  • Àwọn okun oníjìnnà
  • Breadboard (kì í ṣe dandan, fún ìsopọ̀ tí ó rọrùn)

Lílóye LCD1602 àti I2C

LCD1602 jẹ́ àfihàn tí ó gbajúmọ̀ tí ó lè ṣàfihàn àwọn ohun kíkọ 16 ní ìlà kan ní àárín àwọn ìlà méjì. Mọ́díọ̀lù "I2C" tí ó wà ní ẹ̀yìn rẹ̀ jẹ́ àǹfààní pàtàkì nítorí pé ó dín àwọn pin tí a nílò láti ṣàkóso àfihàn náà kù láti 6 tàbí jù bẹ́ẹ̀ lọ sí 2 péré fún ìbánisọ̀rọ̀ (SDA àti SCL) àti 2 fún agbára (VCC àti GND). Ìrọ̀rùn yìí mú kí ìsopọ̀ okun di mímọ́ tó àti pé ó tú àwọn pin oní nọ́ńbà tí ó ṣe pàtàkì sílẹ̀ lórí Arduino rẹ fún àwọn sensori mìíràn, bíi èyí ultrasonic tí a lò nínú iṣẹ́ yìí. (nínú fídíò ní 01:30)

Mọ́díọ̀lù I2C náà tún ní potentiometer kékeré kan láti ṣàtúnṣe ìyàtọ̀ àwọ̀ àfihàn náà. Bí o bá fi agbára mú àfihàn náà tí o kò rí nkankan, gbìyànjú láti yí skúù yìí kí ó di pé àwọn ọ̀rọ̀ náà hàn. (nínú fídíò ní 02:47)

Ìtọ́sọ́nà Ìsopọ̀ Okun

LCD1602_wiring_ultrasonic_bb

Ìsopọ̀ àwọn ẹ̀yà náà rọrùn. Mọ́díọ̀lù I2C ti LCD ní àwọn pin mẹ́rin tí a nílò láti sopọ̀ sí Arduino. Fún sensori ultrasonic, ó ní àwọn pin mẹ́rin pẹ̀lú.

Èyí ni ìpínlẹ̀ àwọn ìsopọ̀ náà:

Mọ́díọ̀lù I2C LCD1602 sí Arduino:

  • GND sí Arduino GND
  • VCC sí Arduino 5V
  • SDA sí Arduino A4
  • SCL sí Arduino A5

Sensori Ultrasonic HC-SR04 sí Arduino:

  • VCC sí Arduino 5V
  • Trig sí pin oní nọ́ńbà 12 ti Arduino
  • Echo sí pin oní nọ́ńbà 11 ti Arduino
  • GND sí Arduino GND

A tọ́ka sí àwòrán ìsopọ̀ okun fún iṣẹ́ yìí nínú fídíò náà.

Fífi Àwọn Ilé-ìkàwé Tí A Nílò Sórí

Iṣẹ́ yìí gbára lé àwọn ilé-ìkàwé pàtàkì méjì. Èkínní, LiquidCrystal_I2C, ni a nílò láti ṣàkóso LCD náà àti pé kò sí nínú Arduino IDE ní àtìpó. O lè gbà á láti ọ̀nà tí a pèsè nínú àpèjúwe fídíò náà tàbí láti ojú òpó wẹ́ẹ̀bù Robojax. (nínú fídíò ní 06:16)

Ilé-ìkàwé kejì, NewPing, ni a lò láti bá sensori ultrasonic ṣiṣẹ́. Ó rọrùn láti fi ránṣẹ́ ping àti láti ka àkókò echo. A lè fi àwọn ilé-ìkàwé méjèèjì sórí nípasẹ̀ Olùṣàkóso Ilé-ìkàwé ti Arduino IDE nípa lílọ sí Sketch -> Include Library -> Manage Libraries àti wíwá àwọn orúkọ wọn.

Àlàyé Kóòdù

Sketch yìí darapọ̀ iṣẹ́ LCD àti sensori ultrasonic. A ṣètò kóòdù náà láti rọrùn láti ṣàtúnṣe fún ètò pàtó rẹ.

Ní ìbẹ̀rẹ̀ kóòdù náà, ìwọ yóò rí àwọn àṣàyàn pàtàkì tí o lè nílò láti ṣàtúnṣe:

// Ṣètò àdírẹ́sì LCD sí 0x27 fún àfihàn 16 ohun kíkọ àti 2 ìlà
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // Pin Arduino tí ó sopọ̀ sí pin trigger lórí sensori ultrasonic.
#define ECHO_PIN     11  // Pin Arduino tí ó sopọ̀ sí pin echo lórí sensori ultrasonic.
#define MAX_DISTANCE 190 // Ìwọ̀n ọ̀nà tí ó pọ̀ jù tí a fẹ́ láti ping (nínú sẹ̀ǹtímítà).
  • Àdírẹ́sì LCD (0x27): Èyí ni àdírẹ́sì I2C ti mọ́díọ̀lù LCD rẹ. Ọ̀pọ̀lọpọ̀ mọ́díọ̀lù máa ń lo 0x27, ṣùgbọ́n àwọn kan lè lo 0x3F. Bí àfihàn rẹ bá kò fi nkankan hàn, o lè nílò láti ṣiṣẹ́ sketch ìwọ̀n I2C kan láti rí àdírẹ́sì tí ó tọ̀nà àti láti ṣàtúnṣe iye yìí. (nínú fídíò ní 08:11)
  • TRIGGER_PIN àti ECHO_PIN: Àwọn wọ̀nyí ń ṣàlàyé àwọn pin oní nọ́ńbà ti Arduino tí ó sopọ̀ sí àwọn pin Trig àti Echo ti sensori ultrasonic. Bí o bá lo àwọn pin mìíràn, yí àwọn ìtumọ̀ wọ̀nyí padà.
  • MAX_DISTANCE: Èyí ń ṣètò ìwọ̀n ọ̀nà tí ó pọ̀ jù ní sẹ̀ǹtímítà tí sensori yóò wọ̀n. HC-SR04 lè wọ̀n títí dé 400-500cm, ṣùgbọ́n ṣíṣètò iye tí ó kéré sí i lè mú kí àwọn ìwọ̀n náà túbọ̀ péye àti pé ó gbẹ́kẹ̀lé, pàápàá fún àwọn ọ̀nà kúkúrú.

Nínú iṣẹ́ loop(), kóòdù náà ń ṣe àwọn ìgbésẹ̀ wọ̀nyí:

  1. O nlo sonar.ping_cm() iṣẹ lati wọn ijinna ki o si fi pamọ sinu distance oniyipada.
  2. O nu LCD naa kuro ki o si tẹ ọrọ "Robojax.com" sita lori laini akọkọ.
  3. Lẹhinna o ṣeto kọsọ si laini keji ki o si tẹ "Distance: " sita.
  4. Nikẹhin, o gbe kọsọ si ipo 10 lori laini keji lati tẹ iye distance ti a wọn jade ti o tẹle pẹlu "cm".

delay(200) ni opin lupu naa n ṣakoso igbohunsafẹfẹ ti sensọ naa ṣe igbasilẹ tuntun ati imudojuiwọn ifihan naa.

Ifihan Koodu

Ni kete ti a ti gbe koodu naa soke si Arduino rẹ, LCD naa yoo tan imọlẹ ki o si bẹrẹ si ṣafihan ijinna naa. O le ṣe idanwo eto naa nipa gbigbe ọwọ rẹ tabi ohun kan sunmọ ati jinna si sensọ ultrasonic naa. Nọmba lori iboju naa yẹ ki o ṣe imudojuiwọn ni akoko gidi, ti o nfihan ijinna ni centimeters. (ninu fidio ni 38:07)

Awọn iṣẹ akanṣe ti o ni ibatan lati fidio yii

Awọn ipin

  • [00:00] Ifihan si LCD1602 ati Akopọ Ise agbese
  • [01:30] Alaye Hardware LCD1602 ati Module I2C
  • [03:14] LCD Pinout ati Iṣeto Adirẹsi I2C
  • [05:28] Awoṣe Asopọ fun LCD1602
  • [06:16] Fifi sori ẹrọ Ile-ikawe LCD ti o nilo
  • [07:24] Koodu ipilẹ lati tẹ ọrọ sita lori LCD
  • [08:11] Wiwa Adirẹsi I2C ti LCD rẹ
  • [11:10] Awọn apẹẹrẹ LCD: Kọsọ Didan ati Awọn ohun kikọ Aṣa
  • [18:51] Apẹẹrẹ LCD: Ifihan Serial ati Ọrọ Yiyi
  • [24:36] Ṣafihan Iwọn otutu ati ọrinrin DHT11 lori LCD
  • [33:00] Ṣafihan Foliteji lati Potentiometer lori LCD
  • [35:56] Apapọ Koodu Sensọ Ultrasonic pẹlu LCD
  • [38:07] Ifihan ti Ifihan Ijinna Ultrasonic

Aworan

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
Ede: C++
/*
This sketch reads the distance using the ultrasonic sensor and displays on LCD1602
Download and resource page https://robojax.com/RJT878
watch video https://www.youtube.com/watch?v=NXAswOc_2zg
*/
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
const int displayChars =16;
const int displayRows =2;

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);
int shomar =0;
#include <NewPing.h>

#define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 190 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
int distance;

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {
  Serial.begin(9600); // Open serial monitor at 9600 baud to see ping results.
  // Robojax code for LCD with I2C
  // initialize the LCD, 
  lcd.begin();
 // Turn on the blacklight and print a message.
  lcd.backlight();

}

void loop() {
  
   distance  = sonar.ping_cm();//get the distance in cm
   lcd.clear();
   lcd.print("Robojax.com");
   lcd.setCursor (0,1);//set cursor to char 0 line 2
   lcd.print("Distance: ");  
   lcd.setCursor (10,1); 
   lcd.print(distance);
   lcd.print("cm"); 
   
   delay(200); 
  

}

Orisun & itọkasi

Fáìlìs📁

Awọn ile-ikawe Arduino (zip)

Iwe Itọsọna Olumulo