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的使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)