完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言
本文是根据STM32F103+步进电机28BYJ-48+ULN2003 实现简单的正反转demo这篇文章的拓展,针对此文章的程序进行了Arduino Uno版本的粗略适配,具体细节可以参考这篇文章。 源码参考: 步进电机28BYJ-48的驱动程序(stm32f103c8t6) STM32F103+步进电机28BYJ-48+ULN2003 实现简单的正反转demo 开发板:Arduino Uno Rev3 创客主板 开发环境(编写烧写):Arduino IDE(官网:https://www.arduino.cc/en/software)配合官方USB下载线进行烧写。 图形化编程工具:Mxily 语言:Arduino 语言(类C语言) 官方文档:https://www.arduino.cc/reference/en/ 功能介绍 正转半圈,延时3秒,反转半圈,延时3秒。 参考图 Arduino Uno Rev3 原理图 接线 8-11 接 IN1-IN4 效果图 接上下载线供电(顺便烧录程序),图片进行过处理,不是实际效果。 核心代码 Arduino IDE 28BYJ-48_ULN2003_apply_demo.ino unsigned int forward[4] = {0x03,0x06,0x0c,0x09}; // 正转unsigned int reverse[4]= {0x03,0x09,0x0c,0x06}; // 反转int IO_array[4] = {8, 9, 10, 11};int flag = 0;void SetMotor(unsigned int InputData){ if(InputData == 0x03) { digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, LOW); } else if(InputData == 0x06) { digitalWrite(8, LOW); digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, LOW); } else if(InputData == 0x09) { digitalWrite(8, HIGH); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, HIGH); } else if(InputData == 0x0c) { digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, HIGH); } else if(InputData == 0x00) { digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); }}/* 功能:转1/64圈 步距角5.625 360/5.625=64 减速比1/64 故64*64个脉冲转一圈 n 圈数 _direction 方向 1正转 非1反转 delay_ms delay_ms 》= 2*/void motor_circle(int n, int _direction, int delay_ms){ int i, j; for(i = 0; i 《 n * 8; i++) { for(j = 0; j 《 4; j++) { if(1 == _direction) { SetMotor(0x00); SetMotor(forward[j]); } else { SetMotor(0x00); SetMotor(reverse[j]); } delay(delay_ms 》 2 ? delay_ms : 2); } }}void setup() { // put your setup code here, to run once: int i = 0; for( i = 0 ; i 《 4 ; i++ ) { pinMode(IO_array, OUTPUT); }}void loop() { // put your main code here, to run repeatedly: if(flag) { // 电机正转半圈 motor_circle(32, 1, 2); flag = 0; } else { // 电机反转半圈 motor_circle(32, 0, 2); flag = 1; } delay(3000);} mixly 正转有点卡顿。。。莫名其妙 补充 Arduino IDE 编译上传 日志信息 编译中… 速度不是很快 上传成功0.0 Mixly |
|
|
|
只有小组成员才能发言,加入小组>>
659浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 12:21 , Processed in 0.868708 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号