完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
想做一个UNO和a4988驱动电机,并且用串口通信,使得电脑能发送信号控制电机转速和方
|
|
相关推荐
5个回答
|
|
|
|
|
|
|
|
|
云汉达人
细分图 ms1 ms2 ms3 L L L 整步(没有细分) H L L 1/2(2细分) L H L 1/4(4细分) H H L 1/8(8细分) H H H 1/16(16细分) |
|
|
|
|
|
嗨,您應該是使用常見的小型驅動模塊比較方便,有以下優點
1、適合驅動 3~35V, 2A 以下的步進馬達; 2、只有簡單的步進和方向控制接口; 3、五個不同的步進模式:全、半、1/4、1/8 和 1/16; 4、可變電阻可調節最大電流輸出,從而獲得更高的步進率; 5、自動電流衰減模式檢測/選擇; 6、過熱關閉電路、欠壓鎖定、交叉電流保護; 7、接地短路保護和加載短路保護 原理圖 但您使用A4988最重要的就是電流調控了,沒調控好可能會燒壞A4988或者輸出電流不穩定,以下是調控方法: 微調電位器(可變電阻)有三個引腳 : 使用三用電表檢測朝向 A4988 晶片的引腳其電壓則為 Vref,可透過微型電位器(可變電阻)調節電流大小,順時針旋轉是增大電流,逆時針則是減小電流量。 公式為 最大電流為 2A 的板子 i = vref /0.8 接線圖 1A, 1B 接一組,2A, 2B 接另一組,一般 1a 2a 都是連接正極,1b 2b 都是連接負極,因為步進馬達各家廠牌規格不盡相同,最好是在接好線之後試跑一下看方向是否正確,假如不對的話,就正負端對調換一下。 步進模式選擇如下圖表格 在電源供電方面, 器件(晶片)邏輯電壓 VDD 和 GND 配接 Arduino 的 +5V 電源端,而步進馬達電源 VMOT 和 GND 則會需要另外配接 DC 8~15V; 另外還有關於三個模式選擇端 MS1、MS2、MS3 全部接地就是全步進模式(轉一圈要200個步進值或一個步進 1.8°),如果要求更高的精度,可通過選擇其他的模式,例如如果選擇 1/4 步進模式,那麼當馬達轉一圈就要送 800個 微步才能完成。 以上都設定準備好了以後,以下是測試的Code int dirPin = 8; int stepperPin = 7; void setup() { pinMode(dirPin, OUTPUT); pinMode(stepperPin, OUTPUT); } void step(boolean dir,int steps) { digitalWrite(dirPin,dir); delay(50); for(int i=0;i 另外根據您的需求,要串口控制,則需要使用到 String data=Serial.readString();然後根據您的需求列舉出當該字串時要做什麼工作 if(data.compareTo("CLOCKWISE")==0) //順時鐘方向 ... else if(data.compareTo("COUNTERCLOCKWISE")==0) //逆時鐘方向 ... else if(data.compareTo("SPEEDUP")==0) //加速 ... else if(data.compareTo("SPEEDDOWN")==0) //減速 ... 具體實現內容就看您的需求囉,這邊只給出框架 再來是如果只是要顯示在電腦上而非LCD,直接輸出到Seiral即可,用Serial Monitor即可觀看,根據輸入結果方向就已知了,轉了多少,因為步進馬達內部沒有內置霍爾感測,所以您必須在馬達旁架上霍爾感測器,轉軸上或者輪上貼上永久磁鐵,才能進行計數,也很簡單 volatile unsigned int half_revolutions=0; void setup() { attachInterrupt(0, motor, RISING); //霍爾感測到磁場變化,輸出高電位,產生上升沿,使用D2腳位 } void loop() { Serial.println(half_revolutions); } void motor() { half_revolutions++; } 以上採用中斷方式,偵測上升沿,就能輸出轉了多少了,方向可自己再加上去,您先參考這篇思路來做會簡單許多 |
|
|
|
|
|
UNO的串口驱动程序网上太多了。。。基本上不需要你额外多花时间。
按你的原理图,你可以使用TTL转串口模块与PC的USB相连,或者加个电平转换的芯片、、 串口搞不定,接下来的就不用干了。。 PC与UNO之间通过串口连接,可以写个简单的协议,对每条指令(启动、停止、反转、调速、转速查询等)制定帧头帧尾命令号等; 单片机解析指令,然后做相应的动作。、、 |
|
|
|
|
|
会员你好,有了答案要及时选择最佳答案,别忘了哦
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1027 浏览 1 评论
1856 浏览 0 评论
1837 浏览 1 评论
3261 浏览 5 评论
3587 浏览 9 评论
1027浏览 1评论
1853浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1365浏览 1评论
1856浏览 0评论
1181浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 12:31 , Processed in 0.796019 second(s), Total 84, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4890