以 LCD12864 点阵屏作为显示终端,实时显示油烟浓度、环境温度、电机 挡位(关、1 档、2 档、3 档、自动、定时)状态等信息
时间: 2023-10-09 16:11:44 浏览: 52
,可以使用以下代码实现:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // 配置LCD引脚
void setup() {
lcd.begin(16, 2); // 初始化LCD屏幕
}
void loop() {
// 获取油烟浓度、环境温度、电机挡位状态等信息
int smokeConcentration = getSmokeConcentration();
int temperature = getTemperature();
int motorGear = getMotorGear();
// 在LCD屏幕上显示信息
lcd.clear(); // 清空屏幕
lcd.setCursor(0, 0);
lcd.print("Smoke: "); // 油烟浓度
lcd.print(smokeConcentration);
lcd.print("ppm");
lcd.setCursor(0, 1);
lcd.print("Temp: "); // 环境温度
lcd.print(temperature);
lcd.print("C");
lcd.setCursor(9, 1);
lcd.print("Gear: "); // 电机挡位状态
lcd.print(getMotorGearName(motorGear));
delay(1000); // 延时1秒钟更新信息
}
int getSmokeConcentration() {
// 获取油烟浓度,这里返回模拟值
return analogRead(A0);
}
int getTemperature() {
// 获取环境温度,这里返回模拟值
return analogRead(A1);
}
int getMotorGear() {
// 获取电机挡位状态,这里返回模拟值
return analogRead(A2) / 200;
}
String getMotorGearName(int gear) {
// 根据电机挡位状态返回对应的文字描述
switch (gear) {
case 0:
return "OFF";
case 1:
return "1";
case 2:
return "2";
case 3:
return "3";
case 4:
return "AUTO";
case 5:
return "TIMER";
default:
return "UNKNOWN";
}
}