【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验八十八: LCD1602A液晶屏5V显示模块(IIC/I2C接口)
项目:显示超声波测距开源代码
- /*
- 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
- 实验八十八: LCD1602A液晶屏5V显示模块(IIC/I2C接口)
- 项目:显示超声波测距
- Arduino------LCD1602
- 5V-------------VCC
- GND-----------GND
- A4-----------SDA IIC 数据线
- A5-----------SCL IIC 时钟线
- */
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- #include <LiquidCrystal.h>
- double angle_rad = PI / 180.0;
- double angle_deg = 180.0 / PI;
- float getDistance(int trig, int echo) {
- pinMode(trig, OUTPUT);
- digitalWrite(trig, LOW);
- delayMicroseconds(2);
- digitalWrite(trig, HIGH);
- delayMicroseconds(10);
- digitalWrite(trig, LOW);
- pinMode(echo, INPUT);
- return pulseIn(echo, HIGH, 30000) / 58.0;
- }
- byte getLCDaddress() {
- Wire.begin();
- byte LCDaddress = 0x27;
- Wire.beginTransmission(LCDaddress);
- byte resultNumber = Wire.endTransmission();
- if (resultNumber == 0) {
- return LCDaddress;
- } else {
- LCDaddress = 0x3F;
- }
- Wire.beginTransmission(LCDaddress);
- resultNumber = Wire.endTransmission();
- if (resultNumber == 0) {
- return LCDaddress;
- }
- }
- LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x3F, 16, 2);
- void setup(){
- lcd = LiquidCrystal_I2C(getLCDaddress(), 16, 2);
- lcd.init(); //初始化LCD
- lcd.backlight(); //打开背光
- lcd.display();
- }
- void loop() {
- lcd.setCursor(0, 0);
- lcd.print(getDistance(7, 8));
- lcd.setCursor(10, 1);
- lcd.print(getDistance(7, 8));
- delay(1 * 1000);
- }
复制代码
|