主要内容

采用数字输出控制步进电机

这个例子展示了如何使用数字输出端口控制步进电机。

发现支持数字输出的设备

使用daqlist发现设备。本例使用带有ID的National Instruments®ELVIS IIDev2

D = daqlist
d = 12×5表VendorID的DeviceID DeviceInfo描述模型  ________ ___________ __________________________________ _____________ ____________________ " 倪”“cDAQ1Mod1”“国家仪器ni 9205”“ni 9205”[1×1采集。DeviceInfo] "ni" "cDAQ1Mod2" "美国国家仪器ni 9263" "ni 9263" [1×1 daq。DeviceInfo] "ni" "cDAQ1Mod3" "美国国家仪器ni 9234" "ni 9234" [1×1 daq。DeviceInfo] "ni" "cDAQ1Mod4" "美国国家仪器ni 9201" "ni 9201" [1×1 daq。DeviceInfo] "ni" "cDAQ1Mod5" "美国国家仪器ni 9402" "ni 9402" [1×1 daq。DeviceInfo] "ni" "cDAQ1Mod6" "美国国家仪器ni 9213" "ni 9213" [1×1 daq。DeviceInfo] "ni" "cDAQ1Mod7" "美国国家仪器ni 9219" "ni 9219" [1×1 daq。DeviceInfo] "ni" "cDAQ1Mod8" "美国国家仪器ni 9265" "ni 9265" [1×1 daq。DeviceInfo] "ni" "Dev1" "美国国家仪器公司pci -6363" " pci -6363" [1×1 daq。DeviceInfo]“倪”“Dev2”"National Instruments NI ELVIS II" "NI ELVIS II" [1×1 daq.DeviceInfo] "ni" "Dev3" "National Instruments PCIe-6363" "PCIe-6363" [1×1 daq.DeviceInfo] "ni" "Dev4" "National Instruments PCIe-6363" "PCIe-6363" [1×1 daq.DeviceInfo]
d {10,“DeviceInfo”
ans = ni:国家仪器ni ELVIS II(设备ID: 'Dev2')模拟输入支持:7个范围支持速率从0.0到1250000.0扫描/秒16通道('ai0' - 'ai15')'电压'测量类型模拟输出支持:-5.0到+5.0伏,-10到+10伏范围速率从0.0到2857142.9扫描/秒2通道('ao0','ao1')数字IO支持39个通道('port0/line0' - 'port2/line6')'InputOnly','OutputOnly','双向'测量类型计数器输入支持:速率从0.1到80000000.0扫描/秒2通道('ctr0','ctr1')'EdgeCount'测量类型计数器输出支持:速率从0.1到80000000.0扫描/秒2通道('ctr0','ctr1')'PulseGeneration'测量类型

硬件配置说明

本例使用Portescap 20M020D1U电机(5 V, 18度单极步进)。数字I/O系统产生的TTL信号由德州仪器的ULN2003AIN(高压,大电流达林顿晶体管阵列)放大,如图所示:

添加数字输出通道

创建一个数据采集,并在端口0,行0-3上添加4个数字通道。设置测量类型为OutputOnly.这些连接到步进电机的4条控制线。

Dq = daq(“倪”);addoutput (dq,“Dev2”“port0 / line0:3”“数字”
警告:添加的通道不支持时钟采样:时钟操作被禁用。只允许按需操作。

定义电机步长

请参阅描述4位模式序列的Portescap电机接线图。将此图案按顺序发送给电机产生逆时针运动。每一步电机旋转18度。每4步循环电机72度。重复此循环5次,使电机360度旋转。

Step1 = [1 0 10 0];Step2 = [1 0 0 1];Step3 = [0 1 0 1];Step4 = [0 1 1 0];

旋转电机

使用输出顺序逆时针旋转电机72度。

写(dq,步骤1);写(dq,步骤2);写(dq,步骤3);写(dq step4);

重复50次,逆时针旋转电机10次。

Motorstep = 1:50 write(dq,step1);写(dq,步骤2);写(dq,步骤3);写(dq step4);结束

要将电机顺时针旋转72度,请反转步骤的顺序。

写(dq step4);写(dq,步骤3);写(dq,步骤2);写(dq,步骤1);

关闭所有输出

使用完电机后,关闭所有线路,让电机自由转动。

写(dq,[0 0 0 0]);
Baidu
map