亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 8 位并行 IO 端口库:一行代码实现 8 位数字读写

痛点背景

Arduino 标准库 digitalWrite()/digitalRead() 只能逐个操作单个引脚。当需要驱动 7 段数码管、DIP 拨码开关、DAC 芯片等 8 位并行设备时,必须写 8 次循环,代码冗长且效率低。本库通过将任意 8 个 Arduino 引脚“捆绑”为一个虚拟 8 位端口,实现单指令读写整个字节,大幅简化代码并提升速度。

库特性

安装方法

  1. 下载 IO_Port_8bit.zip。
  2. Arduino IDE → 草图 → 包含库 → 添加 .ZIP 库 → 选择该文件。
  3. 在代码中 #include <IO_Port_8bit.h> 即可使用。

API 速查

函数说明
IO_Port_8bit(p1..p8, dir)构造函数 1:指定 8 引脚 + 固定方向('O'输出/'I'输入)
IO_Port_8bit(p1..p8)构造函数 2:仅指定引脚,方向稍后用 set_IO_direction() 设定
set_IO_direction('I'/'O')运行时切换端口方向
send_8bit_data(val)输出 8 位数据(0~255)到 8 个引脚
get_8bit_data()从 8 个引脚读取 8 位数据,返回 int

典型应用示例

示例 1:8 个 LED 交替闪烁(1 Hz)

#include <IO_Port_8bit.h>
IO_Port_8bit myPort(2,3,4,5,6,7,8,9, 'O'); // D2~D9 作输出口

void setup() {}

void loop() {
  myPort.send_8bit_data(0b01010101); // 奇数位亮
  delay(500);
  myPort.send_8bit_data(0b10101010); // 偶数位亮
  delay(500);
}

示例 2:LED 显示 0~F 二进制计数

IO_Port_8bit port(2,3,4,5,6,7,8,9); // 先不定方向
void setup() { port.set_IO_direction('O'); }
void loop() {
  for (int i=0; i<16; i++) {
    port.send_8bit_data(i);
    delay(200);
  }
}

示例 3:电位器控制 8 位 LED 电平条(模拟电压可视化)

IO_Port_8bit bar(2,3,4,5,6,7,8,9, 'O');
void setup() {
  bar.send_8bit_data(255); delay(500);
  bar.send_8bit_data(0);
}
void loop() {
  int level = map(analogRead(A0), 0, 1023, 0, 80);
  if (level > 70) bar.send_8bit_data(0xFF);
  else if (level > 60) bar.send_8bit_data(0x7F);
  else if (level > 50) bar.send_8bit_data(0x3F);
  else if (level > 40) bar.send_8bit_data(0x1F);
  else if (level > 30) bar.send_8bit_data(0x0F);
  else if (level > 20) bar.send_8bit_data(0x07);
  else if (level > 10) bar.send_8bit_data(0x03);
  else if (level > 0)  bar.send_8bit_data(0x01);
  else bar.send_8bit_data(0x00);
}

示例 4:读取 8 位 DIP 开关并串口打印

IO_Port_8bit dip(2,3,4,5,6,7,8,9);
void setup() {
  Serial.begin(9600);
  dip.set_IO_direction('I');
}
void loop() {
  int val = dip.get_8bit_data();
  Serial.print("DIP值: "); Serial.println(val);
  delay(1000);
}

原理图连接

8 个引脚分别通过限流电阻连接 LED 阳极(输出模式)或接 DIP 开关一端、另端接地(输入模式,需启用内部上拉或外接上拉电阻)。库内部自动配置 pinMode 与 digitalWrite/Read,无需手动干预。

适用场景

注意事项

制造工艺

  1. Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
  2. Arduino 飞行模拟器 2020 实体开关面板
  3. 校园智能体温监测系统 - 精准、实时、安全的学生健康守护方案
  4. Arduino 64 键原型键盘矩阵:用移位寄存器打造全自定义键盘
  5. Arduino 指纹识别安全区:解锁 Android、iOS 与 Windows 10 设备
  6. Arduino Nano 专用 2.8 英寸 TFT 扩展板 – 320×240 SPI 显示屏
  7. DIY Arduino 蟑螂控制系统 —— 30 美元以内自制指南
  8. 为Arduino构建隔离模拟输入电路
  9. 低成本 Arduino 呼吸控制器:USB-MIDI 即插即用,支持吸吹双向控制
  10. 掌握直流电机控制:PID 与 PWM 专家技巧全解析
  11. 帕金森智能稳定勺:基于 Arduino 与 IMU 的辅助进食装置
  12. 适用于 Arduino 项目的智能室内导航机器人套件