37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验八十五:LCD1602液晶显示屏1602A模块 蓝屏黄绿屏灰屏5V 3.3V焊排针 IIC/I2C
Arduino实验接线示意图
程序十一:向右流动的字符串hello
(1)实验开源图形编程(Mind+、编玩边学)
(2)实验场景图
程序十二:向左单字符滚动的二行数字串1234567890
(1)实验开源图形编程(Mind+、编玩边学)
(2)实验场景图
程序十三:显示光敏电阻测量的光线照度数值
(1)实验开源图形编程(Mind+、编玩边学)
(2)实验场景图
程序十四:显示超声波模块测量的距离数值
(1)实验开源图形编程(Mind+、编玩边学)
(2)实验场景图
程序十五:综合测试LCD显示屏
(1)Arduino参考开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序十五:综合测试LCD显示屏
下载安装库:https://github.com/mathertel/LiquidCrystal_PCF8574
实验接线
Arduino------LCD1602
5V------------VCC
GND-----------GND
A4-----------SDA IIC 数据线
A5-----------SCL IIC 时钟线
*/
#include <LiquidCrystal_PCF8574.h>//导入驱动库
#include <Wire.h>
// 将 LCD 地址设置为 0x27 以实现 16 个字符和 2 行显示
LiquidCrystal_PCF8574 lcd(0x27);
int show = -1;
void setup(){
int error;
Serial.begin(115200);
Serial.println("LCD...");
// 等待串口工作
while (!Serial)
;
Serial.println("捡测:未发现LCD");
// See http://playground.arduino.cc/Main/I2cScanner how to test for a I2C device.
Wire.begin();
Wire.beginTransmission(0x27);
error = Wire.endTransmission();
Serial.print("错误数= ");
Serial.println(error);
if (error == 0) {
Serial.println("ok! 找到 LCD! ");//LCD 找到
show = 0;
lcd.begin(16, 2); //初始化液晶屏
} else {
Serial.println(": LCD 未找到.");//LCD 未找到
} // if
Serial.println(" ");
}
void loop(){
if (show == 0) {
lcd.setBacklight(255);
lcd.home();
lcd.clear();
lcd.print("Hello LCD");//你好液晶屏
delay(1000);
lcd.setBacklight(0);
delay(400);
lcd.setBacklight(255);
} else if (show == 1) {
lcd.clear();
lcd.print("Cursor On");//光标打开
lcd.cursor();
} else if (show == 2) {
lcd.clear();
lcd.print("Cursor Blink");//光标闪烁
lcd.blink();
} else if (show == 3) {
lcd.clear();
lcd.print("Cursor OFF");//光标关闭
lcd.noBlink();
lcd.noCursor();
} else if (show == 4) {
lcd.clear();
lcd.print("Display Off");//显示关闭
lcd.noDisplay();
} else if (show == 5) {
lcd.clear();
lcd.print("Display On");//显示开启
lcd.display();
} else if (show == 7) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("*** first line.");//第一行
lcd.setCursor(0, 1);
lcd.print("*** second line.");//第二行
} else if (show == 8) {
lcd.scrollDisplayLeft();
} else if (show == 9) {
lcd.scrollDisplayLeft();
} else if (show == 10) {
lcd.scrollDisplayLeft();
} else if (show == 11) {
lcd.scrollDisplayRight();
} else if (show == 12) {
lcd.clear();
lcd.print("write-");//写入
} else if (show > 12) {
lcd.print(show - 13);
} // if
delay(1400);
show = (show + 1) % 16;
}
(2)实验串口返回情况
(2)实验场景图
hacker_2023.08.08
666