这个例子展示了如何使用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对象。
清晰的注册一个