const int numLEDs = 5; // 设定LED的数量
const int ledPins[] = {9, 10, 11, 12, 13}; // 定义连接LED的引脚
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 设置LED引脚为输出模式
for (int i = 0; i < numLEDs; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// 模拟数据,可以从传感器或其他源获取
int sensorValue = analogRead(A0);
// 显示数据的LED条形图
displayLEDBar(sensorValue);
// 将原始数值打印到串口
Serial.print("Sensor Value: ");
Serial.println(sensorValue);
delay(1000); // 延时1秒
}
void displayLEDBar(int value) {
// 将数值映射到LED数量范围(例如0-1023映射到0-5)
int numLitLEDs = map(value, 0, 1023, 0, numLEDs);
// 亮度控制LED,显示条形图
for (int i = 0; i < numLEDs; i++) {
analogWrite(ledPins[i], i < numLitLEDs ? 255 : 0);
}
}
在这个例子中:
- numLEDs 常量定义了LED的数量,ledPins 数组定义了连接LED的引脚。
- displayLEDBar 函数将传感器值映射到LED数量范围,并通过PWM控制LED的亮度,形成条形图效果。
- analogWrite 用于设置LED的亮度,值为0表示关闭,255表示最大亮度。
- delay(1000) 添加了一个1秒的延时,以减缓更新速率。
在实际项目中,你可能需要根据具体的传感器和LED类型进行调整。此外,你也可以通过串口通信将数据传输到计算机,并使用处理软件(如Processing或Python)绘制更复杂的图形。
转载请注明出处:http://www.pingtaimeng.com/article/detail/10993/Arduino