主要内容

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

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

发现支持数字输出的设备万博1manbetx

使用daqlist发现设备。这个例子使用了带有ID的国家仪器®ELVIS IIDev2

d = daqlist
d = 12×5表VendorID的DeviceID DeviceInfo描述模型  ________ ___________ __________________________________ _____________ ____________________ " 倪”“cDAQ1Mod1”“国家仪器ni 9205”“ni 9205”[1×1采集。DeviceInfo] "ni" "cDAQ1Mod2" "National Instruments ni 9263" "ni 9263" [1×1 daq。"ni" "cDAQ1Mod3" "National Instruments ni 9234" "ni 9234" [1×1 daq。"ni" "cDAQ1Mod4" "National Instruments ni 9201" "ni 9201" [1×1 daq。DeviceInfo] "ni" "cDAQ1Mod5" "National Instruments ni 9402" "ni 9402" [1×1 daq。DeviceInfo] "ni" "cDAQ1Mod6" "National Instruments ni 9213" "ni 9213" [1×1 daq。"ni" "cDAQ1Mod7" "National Instruments ni 9219" "ni 9219" [1×1 daq。"ni" "cDAQ1Mod8" "National Instruments ni 9265" "ni 9265" [1×1 daq。DeviceInfo] "ni" "Dev1" "National Instruments PCIe-6363" "PCIe-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: National Instruments ni ELVIS II (Device ID: 'Dev2')模拟输入支持:7个范围从0.万博1manbetx0到1250000.0扫描/秒16个通道('ai0' - 'ai15')“电压”测量类型模拟输出支持:-5.0到+5.0伏,-10到+10伏范围的速率从0万博1manbetx.0到2857142.9扫描/秒2通道('ao0','ao1')数字IO支持:39通道('port0/line0' - 'port2/lin万博1manbetxe6')计数器输入支持:速率从0.1到80000000.0扫描/秒2通道('ctr0','ctr1')万博1manbetx'EdgeCount'测量类型计数器输出支持:速率从0.1到80000000.0扫描/秒万博1manbetx2通道('ctr0','ctr1')“PulseGeneration”测量类型

硬件设置描述

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

增加数字输出通道

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

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

定义电机步骤

参考Portescap电机接线图描述4位模式的顺序。按顺序将此模式发送到电机,以产生逆时针方向的运动。每一步马达旋转18度。每4步循环旋转电机72度。重复此循环五次,旋转电机360度。

Step1 = [1 0 1 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]);