c++ - 移位寄存器 74HC595 输出电流
问题描述
我正在测试/调试一个使用 74HC595 移位寄存器(Arduino Teensy3.2 @ 3.3V)的 C++ 程序。
我想将 SR 的 8 个输出连接回 Arduino 板上的 8 个输入引脚。
我的问题是:移位寄存器的输出和 Arduino 输入之间是否需要电阻?如何知道从 SR 输出流出的电流?
我确实看过数据表,但这让我更加困惑: https ://www.taydaelectronics.com/datasheets/A-251.pdf
设置寄存器的代码:
void ShiftRegisterOut(uint8_t bitOrder, uint8_t val)
{
for (uint8_t i = 0; i < 8; i++)
{
if (bitOrder == LSBFIRST)
digitalWrite(pinData, !!(val & (1 << i)));
else
digitalWrite(pinData, !!(val & (1 << (7 - i))));
digitalWrite(pinClock, HIGH);
digitalWrite(pinClock, LOW);
}
}
解决方案
根据您链接的数据表和Teensy 上的 uC数据表,您应该不需要在 uC 之间使用电阻器来限制电流:
74HC595 最大输出电流 +/-20mA @ 6V
MK20DX256VLH7 最大输入电流 +/- 25mA
但是,如果您为 74HC595 提供 > 6V 的电压,您可能会超过 MK20DX256VLH7 的 5.5V 的最大输入电压。
推荐阅读
- c++ - 我能数出 enum_class 有多少种吗?
- python - ValueError:无法为具有形状“(?,?,?,3)”的张量“image_tensor:0”提供形状(1、233、472、4)的值
- python - 异常的“object.__init__() 仅采用一个参数”来自从另一个继承的类
- javascript - TypeError [ERR_INVALID_ARG_TYPE]:“数据”参数必须是字符串类型或 Buffer、TypedArray 或 DataView 的实例
- node.js - Typescript / Eslint 在我开始的每个项目中都会抛出“无法读取文件 tsconfig.json”
- c# - GZipStream 和压缩块到文件
- aws-lambda - 我需要将 lambda 日志解析为字段
- html-email - 我完成了一个项目,但是当我在附加文件时通过电子邮件发送文件时,图像没有出现我如何修复它以便它们出现?
- reactjs - 无法获取数组的长度
- arrays - 使用汇编交换数组中的第一个和最后一个元素