You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino Uno开发:将LDR值转为多功能屏蔽LED二进制输出及串口十六进制显示

解决方案

一、串口输出十六进制数值

你原来的代码是输出十进制数值,要改成十六进制格式,只需要在Serial.println()里加上格式参数HEX,如果想加上0x前缀让结果更直观,可以分两步打印:

Serial.print("LDR数值(十六进制): 0x");
Serial.println(ldrVal, HEX);

HEX参数会让Arduino自动把整数转换成十六进制字符串输出,LDR的模拟值范围是0-1023,对应十六进制就是0x000到0x3FF。

二、用LED显示二进制数值

假设你的多功能屏蔽有8个LED(常见配置),我们用这8个LED显示LDR数值的低8位二进制(如果有10个LED,也可以直接扩展代码显示完整10位,逻辑一致)。

步骤1:定义LED引脚

把LED的引脚号存到数组里,方便批量处理:

// 根据你的屏蔽实际引脚修改这个数组
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9};
// 自动计算LED数量,不用手动改
const int ledCount = sizeof(ledPins) / sizeof(ledPins[0]);

步骤2:初始化LED引脚

在setup()里把所有LED引脚设为输出模式:

for (int i = 0; i < ledCount; i++) {
  pinMode(ledPins[i], OUTPUT);
}

步骤3:将数值转二进制并控制LED

在loop()里,用Arduino内置的bitRead()函数读取LDR数值的每一位(0代表最低位,7代表第7位),然后控制对应LED的亮灭:

for (int i = 0; i < ledCount; i++) {
  // 读取第i位的二进制值,1亮0灭
  int bitValue = bitRead(ldrVal, i);
  digitalWrite(ledPins[i], bitValue);
}

如果想让最左边的LED显示最高位,把循环改成从ledCount-1到0,对应读取7到0位即可。

完整代码

int ldrPin = A0;              // LDR引脚
int ldrVal = 0;               // LDR读取的数值
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // LED引脚数组,务必根据实际修改
const int ledCount = sizeof(ledPins) / sizeof(ledPins[0]); // LED数量

void setup() {
  Serial.begin(9600);         // 初始化串口波特率9600
  // 批量初始化LED引脚为输出模式
  for (int i = 0; i < ledCount; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop() {
  ldrVal = analogRead(ldrPin);    // 读取LDR的模拟值(范围0-1023)
  
  // 同时输出十进制和十六进制数值,方便对照
  Serial.print("LDR数值(十进制): ");
  Serial.print(ldrVal);
  Serial.print(" | (十六进制): 0x");
  Serial.println(ldrVal, HEX);

  // 将数值转二进制,控制LED显示
  for (int i = 0; i < ledCount; i++) {
    digitalWrite(ledPins[i], bitRead(ldrVal, i));
  }

  delay(100);                     // 延时100ms,避免刷新过快
}

注意事项

  • 一定要根据你的多功能屏蔽实际LED引脚修改ledPins数组,接错引脚可能损坏硬件。
  • 如果需要显示完整的10位二进制(analogRead返回的是10位数值),只需要在ledPins数组里添加两个引脚,循环范围改成0-9即可。
  • bitRead()是Arduino专门用来读取整数某一位二进制值的函数,不用自己写移位逻辑,简单可靠。

内容的提问来源于stack exchange,提问作者Charbel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:41:08