Отображения результатов на LCD-дисплее
Применяется жидкокристаллический LCD монитор с использованием возможностей шины I2C
Шина I2C LCD позволяет выводить информацию на монитор LCD используя только два вывода
Мы будем использовать ультразвуковой датчик HC-SR04 для отображения результатов на дисплее монитора
![]() |
I2C LCD модуль подключается к контакту A4-SDA и A5-SCL
HC-SR04 подключается к контакту 11-echo и 12-trigger
VCC и заземления от Arduino подключены к монтажной плате.
После скачивания библиотеки LiquidCrystal необходимо перед установкой переименовать для предотвращения конфликта версий
Для тестирования необходимо установить библиотеку Wire.h
Sketch code1
//Программа для поиска адреса I2C
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Unknow error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); // wait 5 seconds for next scan
}
Sketch code2
//Программа отображения результатов
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#include <NewPing.h>
#define I2C_ADDR 0x27 // <<- Add your address here.
#define Rs_pin 0
#define Rw_pin 1
#define En_pin 2
#define BACKLIGHT_PIN 3
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define MAX_DISTANCE 500 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
void setup()
{
lcd.begin (20,4); // <<-- our LCD is a 20x4, change for your LCD if needed
// LCD Backlight ON
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.home (); // go home on LCD
lcd.print("Range Finder HC-SR04");
}
void loop()
{
unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
unsigned int cm = sonar.convert_cm(uS); // Convert into centimeters
lcd.setCursor (0,1); // go to start of 2nd line
lcd.print("Current Distance:");
lcd.setCursor (0,3); // go to start of 4th line
lcd.print("Ping: ");
lcd.print(cm);
lcd.print(" cm ");
delay(500);
}
Скачать библиотеку NewLiquidCrystal : New_LiquidCrystal_Library.zip
Скачать библиотеку для HC-SR04 : HC-SR04_Library.zip
Скачать библиотеку для шины I2C_Scanner : I2C_Scanner.zip
Скачать программу: I2C_LCD_Tutorial.zip
![]() |
![]() |
Рекомендуем:
Как подключить и управлять шаговым двигателем с ИК-пульта дистанционного управления
Управление шаговым двигателем с помощью джойстика
Подключение и использование модуля реле с инфракрасным датчиком движения HC-SR501
Запись с Arduino времени и даты события на MicroSD
Использование модуля DS1307 RTC
Использование пульта дистанционного управления в Arduino проекте