#include <SevSeg.h> // 导入数码管库
SevSeg sevseg; // 创建数码管对象
const int sensorPin = A0; // 光敏传感器连接的模拟引脚
const int minSensorValue = 0; // 最小光敏传感器值
const int maxSensorValue = 1023; // 最大光敏传感器值
const int minValue = 2; // 显示的最小值
const int midValue = 5; // 显示的中间值
const int maxValue = 9; // 显示的最大值
void setup() {
byte numDigits = 1; // 数码管显示的数字位数
byte digitPins[] = {2}; // 数码管连接的引脚
byte segmentPins[] = {3, 4, 5, 6, 7, 8, 9}; // 数码管的段引脚
bool resistorsOnSegments = false; // 数码管的段是否有上拉电阻
bool updateWithDelays = false; // 是否延迟更新数码管显示
byte hardwareConfig = COMMON_CATHODE; // 数码管类型,共阴极
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(sensorPin); // 读取光敏传感器的值
Serial.println(sensorValue); // 将传感器值打印到串行监视器
int mappedValue = map(sensorValue, minSensorValue, maxSensorValue, minValue, maxValue); // 将传感器值映射到显示范围
sevseg.setNumber(mappedValue); // 设置数码管显示的数字
sevseg.refreshDisplay(); // 刷新数码管显示
delay(100); // 等待100毫秒,以便稳定读取传感器值并更新数码管显示
}