用Arduino写一个具有两个LED灯,一个LM35温度传感器的温控LED小工具。当气温低于-20摄氏度,红灯闪烁,气温大于等于-20摄氏度小于等于0摄氏度,红灯常亮。气温大于0度小于等于19摄氏度红灯绿灯同时亮。气温大于19摄氏度小于30摄氏度绿灯常亮,气温大于等于30摄氏度绿灯闪烁。
时间: 2023-02-20 20:59:10 浏览: 69
这是一份用于控制LED灯的代码:
```
#include <LiquidCrystal.h>
#include <Wire.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int tempPin = A0;
int redLed = 8;
int greenLed = 9;
void setup() {
lcd.begin(16, 2);
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
}
void loop() {
int temp = analogRead(tempPin);
float voltage = temp * 5.0 / 1024;
float temperature = (voltage - 0.5) * 100;
lcd.setCursor(0, 0);
lcd.print("Temperature: ");
lcd.print(temperature);
lcd.print(" C");
if (temperature < -20) {
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, LOW);
delay(500);
digitalWrite(redLed, LOW);
delay(500);
} else if (temperature >= -20 && temperature <= 0) {
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, LOW);
} else if (temperature > 0 && temperature <= 19) {
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, HIGH);
} else if (temperature > 19 && temperature < 30) {
digitalWrite(redLed, LOW);
digitalWrite(greenLed, HIGH);
} else if (temperature >= 30) {
digitalWrite(redLed, LOW);
digitalWrite(greenLed, HIGH);
delay(500);
digitalWrite(greenLed, LOW);
delay(500);
}
}
```
说明:
- 此代码使用了 LiquidCrystal 库和Wire库。
- 变量tempPin是LM35温度传感器的输入端。
- 变量redLed和greenLed分别代表红灯和绿灯。
- 在setup()中,我们初始化LCD显示器,并将红灯和绿灯的模式设置为输出。
- 在loop()中,我们读取温度传感器的数值,并计算出摄氏温度。同时在LCD上显示温度。
- 根据温度的不同值,设置红灯和绿灯的亮度状态,实现
阅读全文