首页 > 解决方案 > 移位寄存器 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);
  }
}

标签: c++arduinoteensy

解决方案


根据您链接的数据表和Teensy 上的 uC数据表,您应该不需要在 uC 之间使用电阻器来限制电流:

74HC595 最大输出电流 +/-20mA @ 6V

MK20DX256VLH7 最大输入电流 +/- 25mA

但是,如果您为 74HC595 提供 > 6V 的电压,您可能会超过 MK20DX256VLH7 的 5.5V 的最大输入电压。


推荐阅读