如您需要购买本教程视频中所使用的XY-2.5AD电机驱动,欢迎您前往太极创客网店购买:
https://item.taobao.com/item.htm?spm=a213gs.20824378.0.0.21694831BoWQIz&id=652702569734
+ XY-2.5AD电机驱动板详细介绍
+ 如何使用Arduino通过 XY-2.5AD电机驱动板 驱动直流有刷电机
由于视频插件兼容性的原因,我们的教程在一些浏览器(如Google Chrome,Apple Safari等)中无法播放,如果您遇到这一问题,请更换使用其它浏览器(如Firefox,IE等)浏览本页面或前往以下网址观看本节视频教程:https://www.bilibili.com/video/av35055026/?p=2
本课示例程序中应用的知识包含如何利用串口通过电脑与Arduino进行通讯的知识,这部分知识在《零基础入门学用Arduino教程》第二大部分《机械臂篇》中进行了详细讲解。假如您对于以下程序中关于串口通讯部分不理解,建议您收看我们制作的Arduino串口通讯方面的教程内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
/* XY-2.5AD-Demo * 太极创客 www.taichi-maker.com * 2018-08-02 * * 通过串行通讯使用XY-2.5AD控制两个DC电机 * 通过digitalWrite HIGH LOW 控制电机运行和停止。 * * 如果需要获取更多有关XY-2.5AD控制电机的相关知识,请前往太极创客网站 * www.taichi-maker.com * * XY-2.5AD 控制电机简介 * * DC电机 运行状态 IN1 IN2 IN3 IN4 * 电机A 正转(调速) 1/PWM 0 * 电机A 反转(调速) 0 1/PWM * 空转 0 0 * 刹车 1 1 * 电机B 正转(调速) 1/PWM 0 * 电机B 反转(调速) 0 1/PWM * 空转 0 0 * 刹车 1 1 * This example code is in the public domain. */ // XY-2.5AD 连接Arduino引脚编号 int IN1 = 3; int IN2 = 5; int IN3 = 6; int IN4 = 9; int pinNum; // 控制引脚号 int ctrlVal; // 电机运行控制 void setup() { pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); Serial.begin(9600); Serial.println("++++++++++++++++++++++++++++++"); Serial.println("+ Taichi-Maker XY-2.5AD Demo +"); Serial.println("+ www.taichi-maker.com +"); Serial.println("++++++++++++++++++++++++++++++"); } void loop() { if (Serial.available()) { // 检查串口缓存是否有数据等待传输 char cmd = Serial.read(); // 获取电机指令中电机编号信息 switch(cmd){ case 'p': // 设置引脚编号 pinNum = Serial.parseInt(); Serial.print("Pin Number "); Serial.print(pinNum); Serial.print(" ,"); break; case 'a': // 模拟模式控制电机 ctrlVal = Serial.parseInt(); analogWrite(pinNum, ctrlVal); Serial.print("Set Value "); Serial.print(ctrlVal); Serial.println("."); break; case 'd': // 数字模式控制电机 ctrlVal = Serial.parseInt(); digitalWrite(pinNum, ctrlVal); Serial.print("Set Value "); Serial.print(ctrlVal); Serial.println("."); break; default: // 未知指令 Serial.println("Unknown Command"); break; } } } |