怎么用arduino的程序控制进步电机实现转动

怎么用arduino的程序控制进步电机实现转动,第1张

arduino程序驱动步进电机须循环使用脉冲,要了解电机的相数,步矩角度等。

举例:使用A3967类型驱动板

digitalWrite(dir,方向);// 0 or 1

for(int i=0;i<周期;i++){

digitalWrite(pin, HIGH);

delayMicroseconds(延时);

digitalWrite(pin, LOW);

delayMicroseconds(延时);

}

绝对匀速的话,舵机弄不了吧,折中的可以试试类似下面这样的代码,调整每次间隔的时间和位移的角度,达到听不出一顿一顿的感觉还是可能的。

for(pos = 0; pos <= 180; pos += 1) // 从0逐渐到180度

{ // 每次增加1度

myservowrite(pos); // 指定当前角度

delay(15); // 等待15毫秒

}

当我们在搭建arduino项目时,时常因为需要接入按钮、传感器、舵机、LED等而遇到I/O口不足的问题,此时就需要使用到74HC595。

74HC595是一个8位串行输入、并行输出(SIPO,Serial-In-Parallel-Out)的移位寄存器。其具有8个输出引脚,而只需要3个输入引脚。并可以串接多个IC实现更多输出引脚需求。

引脚图

工作原理

74HC595具有2个寄存器(可理解为2个存储容器),每个可以存储8位(bit)数据。

实验1:使用Arduino和74HC595控制LED

实验材料

面包板视图

Arduino代码

代码解析

byte数据类型为8位(bit),刚好能对应8个输出以及8个led。

bitSet(x, n):设置变量的某一位(位置为1)。

updateShiftReg()函数首先将latch锁存引脚置为低电平,然后调用shiftOut()移位函数,然后再将latch锁存引脚置为高电平实现输出。

shiftOut(dataPin, clockPin, bitOrder, value)函数可以实现每次调用时对寄存器进行移位 *** 作。

实验二:使用PWM控制LED的亮度

原理:

通过控制IC的OE引脚来控制LED的亮度。OE(Output Enable)引脚位低电平有效,高电平时位禁止输出,低电平时为正常输出。当通过analogWrite() 函数使用PWM控制,则可以实现LED的亮度调节。

实际再PWM的高电平时,OE引脚会短暂的金庸IC输出,但此过程高于人眼所能感知的频率,因此能实现亮度明暗的变化。

面包板视图

Arduino代码

实践:注意确认引脚连接无误后再接通电源

视频:文章修改时无法添加视频

以上就是关于怎么用arduino的程序控制进步电机实现转动全部的内容,包括:怎么用arduino的程序控制进步电机实现转动、用Arduino控制舵机,怎么调用周期函数、Note-01.arduino和74hc595的使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10089760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存