零基础入门学用Arduino-专项教程(电机部分) 目录

2026-01-25 23:17:06

如您需要购买本教程视频中所使用的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串口通讯方面的教程内容。

Arduino串行通讯

串行通讯(1) (零基础入门学用Arduino教程 – MeArm篇 – 第3节 )

串行通讯(2) (零基础入门学用Arduino教程 – MeArm篇 – 第4节 )

无法复制本站示例程序代码? 请点击这里寻找答案。

XY-2.5AD-Demo

Arduino

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

/* 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; } }}