主要内容

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

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

发现支持数字输出的设备金宝app

使用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.]DeviceInfo] "ni" "cDAQ1Mod3" "National Instruments ni 9234" "ni 9234" [1×1 daq.]DeviceInfo] "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.]DeviceInfo] "ni" "cDAQ1Mod7" "National Instruments ni 9219" "ni 9219" [1×1 daq.]DeviceInfo] "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(设备ID: 'Dev2')模拟输入支持:7个范围支持速率从0.0到金宝app125000次扫描/秒16通道('ai0' - 'ai15')模拟输出支持:-5.0到+5.0伏特,-10到+10伏特范围速率从0.0到2857金宝app142.9扫描/秒2通道('ao0','ao1')数字IO支持:39通道('port0/line0' - 'port2/lin金宝appe6')'InputOnly','OutputOnly','双向'测量类型计数器输入支持:速率从0.1到80000000.0扫描/秒2通道('ctr0',金宝app'ctr1')'EdgeCount'测量类型计数器输出支持:从0.1到80000000.0扫描/秒2通金宝app道('ctr0','ctr1')'PulseGeneration'测量类型

硬件设置说明

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

添加数字输出频道

创建一个DataAcquisition并在端口0、0-3行添加4个数字通道。设置测量类型为OutputOnly.它们与步进电机的4根控制线相连。

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

定义电机步长

参考描述4位模式序列的Portescap电机接线图。按顺序将此图案送至电机产生逆时针运动。每走一步电机就转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);

关闭所有输出

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

Write (dq,[0 0 0 0]);