主要内容

按钮控制与74HC165移位寄存器

这个例子展示了如何使用MATLAB®Arduino®硬件支持包来收集大量的按钮状态与万博1manbetx74HC165 8位并行串行输出移位寄存器。这个例子使用了四个按钮。

硬件需求

  • Arduino电路板

  • 四个按钮

  • 8位并行进串行出移位寄存器

  • 4个10K欧姆电阻

  • 案板和电线

硬件设置

连接按钮和74HC165移位寄存器到Arduino硬件:

  • 连接74HC165上的Vcc引脚到Arduino硬件上的5V引脚。

  • 将74HC165上的GND脚连接到Arduino硬件上的GND脚。

  • 将74HC165上的Q7引脚连接到Arduino硬件上的数字引脚11。

  • 将74HC165上的CP引脚连接到Arduino硬件上的数字引脚8。

  • 将74HC165上的PL引脚连接到Arduino硬件上的数字引脚9。

  • 将74HC165上的CE引脚连接到Arduino硬件上的数字引脚10。

  • 在74HC165上连接一个按钮到引脚D0, D4, D5和D7,用一个下拉电阻到GND,如下所示。

  • 将74HC165上的D1、D2、D3和D6引脚连接到Arduino硬件上的GND引脚。

创建移位寄存器对象

创建一个arduino对象,并包含shiftreregister库。

一个= arduino (“COM4为”“Uno”“库”“ShiftRegister”
更新Uno (COM4)上的服务器代码。这可能需要几分钟。
a = arduino with properties: Port: 'COM4' Board: 'Uno' AvailablePins: {'D2-D13', 'A0-A5'} AvailableDigitalPins: {'D2-D13', 'A0-A5'} AvailablePWMPins: {'D3', 'D5-D6', 'D9-D11'} AvailableAnalogPins: {'A0-A5'} AvailableI2CBusIDs: [0] Libraries: {' shiftreregister '}

创建移位寄存器对象,指定连接的数据引脚、时钟引脚、加载引脚和时钟使能引脚。

dataPin =“这里”;clockPin =D8的;loadPin =“D9”;clockEnablePin =“D10”;= shiftRegister(注册一个,74 hc165, clockPin dataPin loadPin clockEnablePin)
register = shiftregiwith properties: Model: '74HC165' DataPin: 'D11' ClockPin: 'D8' LoadPin: 'D9' ClockEnablePin: 'D10'

读取按钮状态

监控四个按钮的状态,如果至少有一个按钮被按下,则打印一条消息,

state = read(register, 8);pressedButtons = find(states == 1)-1;如果~isempty(pressedButtons) bitsStr = num2str(pressedButtons,' % d ');disp ([“按钮连接位”bitsStr,“按”]);结束
按下连接到0 4 5 7位的按钮

清理

当不再需要连接时,清除移位寄存器和arduino对象。

清晰的注册一个