820浏览
查看: 820|回复: 40

[项目] 【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

[复制链接]
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十八:2米PVC水管六个TT马达驱动火星车

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1

驴友花雕  中级技神
 楼主|

发表于 2024-8-31 07:56:07

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十八:2米PVC水管六个TT马达驱动火星车
  项目实验之十一:设置火星车简易蓝牙控制面板,前后左右停止

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十八:2米PVC水管六个TT马达驱动火星车
  4.   项目实验之十一:设置火星车简易蓝牙控制面板,前后左右停止
  5.   JDY-31模块与Uno接线:
  6.   VCC         VCC
  7.   GND         GND
  8.   TXD         D8
  9.   RXD         D7
  10. */
  11. #include <L298N.h> // 包含L298N电机驱动库
  12. #include <SoftwareSerial.h> // 包含软件串口库
  13. // 创建电机对象
  14. L298N motor1(9, 5, 4); // 第一个电机对象,连接到引脚9, 5, 4(并接右侧三个TT马达)
  15. L298N motor2(6, 3, 2); // 第二个电机对象,连接到引脚6, 3, 2(并接左侧三个TT马达)
  16. // 创建蓝牙串口对象
  17. SoftwareSerial bt(7, 8); // 定义软件串口对象,使用引脚7 (Rx) 和 8 (Tx)
  18. void setup() {
  19.   // 初始化电机
  20.   motor1.setSpeed(0); // 设置电机1的初始速度为0
  21.   motor2.setSpeed(0); // 设置电机2的初始速度为0
  22.   // 初始化蓝牙串口
  23.   bt.begin(9600); // 设置蓝牙串口通信的波特率为9600
  24.   Serial.begin(9600); // 设置硬件串口通信的波特率为9600
  25.   Serial.println("六驱火星车准备就绪!"); // 向串口输出初始化完成信息
  26. }
  27. void loop() {
  28.   if (bt.available()) { // 检查蓝牙串口是否有可读取的数据
  29.     char command = bt.read(); // 读取蓝牙串口数据并存储在command变量中
  30.     Serial.println(command); // 向串口输出读取到的字符
  31.     switch (command) { // 根据读取到的命令执行相应操作
  32.       case 'F': // 前进命令
  33.         motor1.setSpeed(200); // 设置电机1速度为200
  34.         motor1.forward(); // 电机1前进
  35.         motor2.setSpeed(200); // 设置电机2速度为200
  36.         motor2.forward(); // 电机2前进
  37.         Serial.println("前进"); // 向串口输出“前进”信息
  38.         break;
  39.       case 'B': // 后退命令
  40.         motor1.setSpeed(200); // 设置电机1速度为200
  41.         motor1.backward(); // 电机1后退
  42.         motor2.setSpeed(200); // 设置电机2速度为200
  43.         motor2.backward(); // 电机2后退
  44.         Serial.println("后退"); // 向串口输出“后退”信息
  45.         break;
  46.       case 'L': // 左转命令
  47.         motor1.setSpeed(200); // 设置电机1速度为200
  48.         motor1.backward(); // 电机1后退
  49.         motor2.setSpeed(200); // 设置电机2速度为200
  50.         motor2.forward(); // 电机2前进
  51.         Serial.println("左转"); // 向串口输出“左转”信息
  52.         break;
  53.       case 'R': // 右转命令
  54.         motor1.setSpeed(200); // 设置电机1速度为200
  55.         motor1.forward(); // 电机1前进
  56.         motor2.setSpeed(200); // 设置电机2速度为200
  57.         motor2.backward(); // 电机2后退
  58.         Serial.println("右转"); // 向串口输出“右转”信息
  59.         break;
  60.       case 'S': // 停止命令
  61.         motor1.stop(); // 停止电机1
  62.         motor2.stop(); // 停止电机2
  63.         Serial.println("停止"); // 向串口输出“停止”信息
  64.         break;
  65.       default: // 无效命令
  66.         Serial.println("无效命令"); // 向串口输出“无效命令”信息
  67.         break;
  68.     }
  69.   }
  70. }
复制代码



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-30 10:39:08

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十八:2米PVC水管六个TT马达驱动火星车
  项目实验之八:通过JDY-31蓝牙模块串口字符来控制火星车

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十八:2米PVC水管六个TT马达驱动火星车
  4.   项目实验之八:通过JDY-31蓝牙模块串口字符来控制火星车
  5.   JDY-31模块与Uno接线:
  6.   VCC         VCC
  7.   GND         GND
  8.   TXD         D0
  9.   RXD         D1
  10. */
  11. #include <L298N.h>
  12. // 创建电机对象
  13. L298N motor1(9, 5, 4); // 第一个电机(并接右侧三个TT马达)
  14. L298N motor2(6, 3, 2); // 第二个电机(并接左侧三个TT马达)
  15. char command; // 用于存储从蓝牙模块接收到的命令
  16. void setup() {
  17.   pinMode(LED_BUILTIN, OUTPUT); // 设置板载LED为输出模式
  18.   Serial.begin(57600); // 初始化串口通信,波特率设置为57600
  19.   Serial.println("JDY-31蓝牙模块准备就绪!"); // 向串口输出初始化完成信息
  20. }
  21. void loop() {
  22.   if (Serial.available()) { // 检查串口是否有可读取的数据
  23.     command = Serial.read(); // 读取串口数据并存储在command中
  24.     switch (command) { // 根据接收到的命令执行不同的操作
  25.       case 'F': // 前进
  26.         motor1.setSpeed(200); // 设置电机1的速度为200
  27.         motor1.forward(); // 电机1正转
  28.         motor2.setSpeed(200); // 设置电机2的速度为200
  29.         motor2.forward(); // 电机2正转
  30.         Serial.println("前进"); // 向串口输出“前进”
  31.         break;
  32.       case 'B': // 后退
  33.         motor1.setSpeed(200); // 设置电机1的速度为200
  34.         motor1.backward(); // 电机1反转
  35.         motor2.setSpeed(200); // 设置电机2的速度为200
  36.         motor2.backward(); // 电机2反转
  37.         Serial.println("后退"); // 向串口输出“后退”
  38.         break;
  39.       case 'L': // 左转
  40.         motor1.setSpeed(200); // 设置电机1的速度为200
  41.         motor1.backward(); // 电机1反转
  42.         motor2.setSpeed(200); // 设置电机2的速度为200
  43.         motor2.forward(); // 电机2正转
  44.         Serial.println("左转"); // 向串口输出“左转”
  45.         break;
  46.       case 'R': // 右转
  47.         motor1.setSpeed(200); // 设置电机1的速度为200
  48.         motor1.forward(); // 电机1正转
  49.         motor2.setSpeed(200); // 设置电机2的速度为200
  50.         motor2.backward(); // 电机2反转
  51.         Serial.println("右转"); // 向串口输出“右转”
  52.         break;
  53.       case 'S': // 停止
  54.         motor1.stop(); // 停止电机1
  55.         motor2.stop(); // 停止电机2
  56.         Serial.println("停止"); // 向串口输出“停止”
  57.         break;
  58.       default:
  59.         Serial.println("无效命令"); // 向串口输出“无效命令”
  60.         break;
  61.     }
  62.   }
  63. }
复制代码



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 19:35:28

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十八:2米PVC水管六个TT马达驱动火星车
  项目实验之四:不使用库,详细控制火星车的多种速度变化

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十八:2米PVC水管六个TT马达驱动火星车
  4.   项目实验之二:不使用库,详细控制火星车的多种速度变化
  5. */
  6. // 电机A
  7. #define ENA_PIN 9 // PWM引脚
  8. #define IN1_PIN 5 // 方向引脚1
  9. #define IN2_PIN 4 // 方向引脚2
  10. // 电机B
  11. #define ENB_PIN 6 // PWM引脚
  12. #define IN3_PIN 3 // 方向引脚1
  13. #define IN4_PIN 2 // 方向引脚2
  14. // 定义电机结构体
  15. struct Motor {
  16.   byte speed = 0; // 电机速度
  17.   byte input1 = LOW; // 方向引脚1状态
  18.   byte input2 = LOW; // 方向引脚2状态
  19. };
  20. // 创建电机对象
  21. Motor motorA, motorB;
  22. void setup() {
  23.   Serial.begin(115200);
  24.   // 设置PWM和方向引脚为输出
  25.   pinMode(ENA_PIN, OUTPUT);
  26.   pinMode(IN1_PIN, OUTPUT);
  27.   pinMode(IN2_PIN, OUTPUT);
  28.   pinMode(ENB_PIN, OUTPUT);
  29.   pinMode(IN3_PIN, OUTPUT);
  30.   pinMode(IN4_PIN, OUTPUT);
  31.   // 初始化电机
  32.   sendToMotor(motorA, ENA_PIN, IN1_PIN, IN2_PIN);
  33.   sendToMotor(motorB, ENB_PIN, IN3_PIN, IN4_PIN);
  34. }
  35. void loop() {
  36.   Serial.println("电机现在停止");
  37.   delay(2000);
  38.   // 设置电机方向为前进
  39.   setMotorDirection(motorA, HIGH, LOW);
  40.   setMotorDirection(motorB, HIGH, LOW);
  41.   Serial.println("逐渐增加电机速度到最大");
  42.   changeMotorSpeedGradually(0, 255);
  43.   Serial.println("电机现在全速运行");
  44.   delay(2000);
  45.   Serial.println("逐渐减少电机速度到最小");
  46.   changeMotorSpeedGradually(255, 0);
  47.   Serial.println("电机现在停止");
  48.   delay(2000);
  49.   // 设置电机方向为后退
  50.   setMotorDirection(motorA, LOW, HIGH);
  51.   setMotorDirection(motorB, LOW, HIGH);
  52.   Serial.println("逐渐增加电机速度到最大");
  53.   changeMotorSpeedGradually(0, 255);
  54.   Serial.println("电机现在全速运行");
  55.   delay(2000);
  56.   Serial.println("逐渐减少电机速度到最小");
  57.   changeMotorSpeedGradually(255, 0);
  58. }
  59. // 发送控制信号到电机
  60. void sendToMotor(Motor &motor, byte enPin, byte in1Pin, byte in2Pin) {
  61.   analogWrite(enPin, motor.speed); // 设置PWM信号
  62.   digitalWrite(in1Pin, motor.input1); // 设置方向引脚1
  63.   digitalWrite(in2Pin, motor.input2); // 设置方向引脚2
  64. }
  65. // 设置电机方向
  66. void setMotorDirection(Motor &motor, byte input1, byte input2) {
  67.   motor.input1 = input1;
  68.   motor.input2 = input2;
  69.   sendToMotor(motor, ENA_PIN, IN1_PIN, IN2_PIN);
  70.   sendToMotor(motor, ENB_PIN, IN3_PIN, IN4_PIN);
  71. }
  72. // 逐渐改变电机速度
  73. void changeMotorSpeedGradually(int startSpeed, int endSpeed) {
  74.   int step = (startSpeed < endSpeed) ? 1 : -1;
  75.   for (int speed = startSpeed; speed != endSpeed; speed += step) {
  76.     motorA.speed = speed;
  77.     motorB.speed = speed;
  78.     sendToMotor(motorA, ENA_PIN, IN1_PIN, IN2_PIN);
  79.     sendToMotor(motorB, ENB_PIN, IN3_PIN, IN4_PIN);
  80.     delay(20); // 添加小延迟以平滑速度变化
  81.   }
  82. }
复制代码



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 11:36:12

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

使用外径20mm的PVC水管,还有各种接口与三通,尝试做个越野版火星车,没想到用了二米长的水管子。

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 11:37:40

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图2

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 12:06:41

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

实验模块接线示意图

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 12:08:26

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

打开Arduino IDE,点开工具——管理库——搜索“L298N”——安装库

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 12:09:52

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十八:2米PVC水管六个TT马达驱动火星车
  项目实验之一:火星车的前进、后退与转向

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十八:2米PVC水管六个TT马达驱动火星车
  4.   项目实验之一:火星车的前进、后退与转向
  5. */
  6. #include <L298N.h>
  7. // 创建对象
  8. L298N motor1(9, 5, 4); // 第一个电机(并接右侧三个TT马达)
  9. L298N motor2(6, 3, 2); // 第二个电机(并接左侧三个TT马达)
  10. // 主程序开始
  11. void setup() {
  12.   // 初始化电机
  13.   motor1.setSpeed(0);
  14.   motor2.setSpeed(0);
  15. }
  16. void loop() {
  17.   // 前进:M1和M2正转
  18.   motor1.setSpeed(200);
  19.   motor1.forward();
  20.   motor2.setSpeed(200);
  21.   motor2.forward();
  22.   delay(1000);
  23.   motor1.stop();
  24.   motor2.stop();
  25.   delay(1000);
  26.   // 后腿:M1和M2反转
  27.   motor1.setSpeed(200);
  28.   motor1.backward();
  29.   motor2.setSpeed(200);
  30.   motor2.backward();
  31.   delay(1000);
  32.   motor1.stop();
  33.   motor2.stop();
  34.   delay(1000);
  35.   // 左转向:M1正转,M2反转
  36.   motor1.setSpeed(200);
  37.   motor1.forward();
  38.   motor2.setSpeed(200);
  39.   motor2.backward();
  40.   delay(1000);
  41.   motor1.stop();
  42.   motor2.stop();
  43.   delay(1000);
  44.   // 右转向:M1反转,M2正转
  45.   motor1.setSpeed(200);
  46.   motor1.backward();
  47.   motor2.setSpeed(200);
  48.   motor2.forward();
  49.   delay(1000);
  50.   motor1.stop();
  51.   motor2.stop();
  52.   delay(1000);
  53. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 12:12:21

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

实验记录视频

【花雕学编程】Arduino动手做(228)---2米PVC水管六个TT马达驱动火星车

https://www.bilibili.com/video/B ... a9be994cbb4a86cc987



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 12:26:26

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

本帖最后由 驴友花雕 于 2024-8-29 19:39 编辑

实验场景图


【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 13:18:23

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

Mind+图形编程

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 15:25:38

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

Linkboy仿真编程

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 19:36:56

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

本帖最后由 驴友花雕 于 2024-8-29 19:45 编辑

实验串口返回情况

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1

要点解读
1、结构简化:将电机的方向和速度控制封装到函数中,减少重复代码,提高可读性。
2、灵活性增强:通过传递电机对象和引脚参数,使代码更具通用性和灵活性。
3、逻辑清晰:将电机方向和速度控制逻辑分离,使代码更易于理解和维护。
4、平滑速度变化:通过逐步增加或减少速度,实现电机速度的平滑变化,减少机械冲击。
5、延迟控制:使用delay()函数控制速度变化的步进时间,确保每个动作有足够的时间完成。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 19:39:13

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

实验场景图

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 20:15:33

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十八:2米PVC水管六个TT马达驱动火星车
  项目实验之五:启动火星车,控制方向逐渐减少增加电机速度

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十八:2米PVC水管六个TT马达驱动火星车
  4.   项目实验之五:启动火星车,控制方向逐渐减少增加电机速度
  5. */
  6. // 电机A连接
  7. int enA = 9; // PWM引脚
  8. int in1 = 5; // 方向引脚1
  9. int in2 = 4; // 方向引脚2
  10. // 电机B连接
  11. int enB = 6; // PWM引脚
  12. int in3 = 3; // 方向引脚1
  13. int in4 = 2; // 方向引脚2
  14. void setup() {
  15.   // 设置引脚模式为输出
  16.   pinMode(enA, OUTPUT);
  17.   pinMode(enB, OUTPUT);
  18.   pinMode(in1, OUTPUT);
  19.   pinMode(in2, OUTPUT);
  20.   pinMode(in3, OUTPUT);
  21.   pinMode(in4, OUTPUT);
  22.   // 初始化电机状态为低电平
  23.   digitalWrite(in1, LOW);
  24.   digitalWrite(in2, LOW);
  25.   digitalWrite(in3, LOW);
  26.   digitalWrite(in4, LOW);
  27. }
  28. void loop() {
  29.   directionControl(); // 控制电机方向
  30.   delay(1000);
  31.   speedControl(); // 控制电机速度
  32.   delay(1000);
  33. }
  34. void directionControl() {
  35.   // 设置电机为最大速度
  36.   // PWM值范围从0到255
  37.   analogWrite(enA, 255);
  38.   analogWrite(enB, 255);
  39.   // 启动电机A和电机B
  40.   digitalWrite(in1, HIGH);
  41.   digitalWrite(in2, LOW);
  42.   digitalWrite(in3, HIGH);
  43.   digitalWrite(in4, LOW);
  44.   delay(2000);
  45.   // 改变电机方向
  46.   digitalWrite(in1, LOW);
  47.   digitalWrite(in2, HIGH);
  48.   digitalWrite(in3, LOW);
  49.   digitalWrite(in4, HIGH);
  50.   delay(2000);
  51.   // 关闭电机
  52.   digitalWrite(in1, LOW);
  53.   digitalWrite(in2, LOW);
  54.   digitalWrite(in3, LOW);
  55.   digitalWrite(in4, LOW);
  56. }
  57. void speedControl() {
  58.   // 启动电机
  59.   digitalWrite(in1, LOW);
  60.   digitalWrite(in2, HIGH);
  61.   digitalWrite(in3, LOW);
  62.   digitalWrite(in4, HIGH);
  63.   // 逐渐增加电机速度
  64.   for (int i = 0; i < 256; i++) {
  65.     analogWrite(enA, i);
  66.     analogWrite(enB, i);
  67.     delay(20);
  68.   }
  69.   // 逐渐减少电机速度
  70.   for (int i = 255; i >= 0; --i) {
  71.     analogWrite(enA, i);
  72.     analogWrite(enB, i);
  73.     delay(20);
  74.   }
  75.   // 关闭电机
  76.   digitalWrite(in1, LOW);
  77.   digitalWrite(in2, LOW);
  78.   digitalWrite(in3, LOW);
  79.   digitalWrite(in4, LOW);
  80. }
复制代码



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-29 20:18:53

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

代码要点解读
1、引脚定义:定义了电机A和电机B的PWM和方向控制引脚。
2、引脚初始化:在setup()函数中,将所有引脚设置为输出模式,并初始化为低电平。
3、方向控制:在directionControl()函数中,通过设置方向引脚的高低电平来控制电机的旋转方向,并通过PWM信号控制速度。
4、速度控制:在speedControl()函数中,通过逐步增加和减少PWM信号,实现电机速度的平滑变化。
5、延迟控制:使用delay()函数控制电机动作的持续时间,确保每个动作有足够的时间完成。

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-30 09:35:36

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十八:2米PVC水管六个TT马达驱动火星车
  项目实验之六:使用JDY-31 蓝牙模块来控制火星车的前进后退与转向

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-30 09:41:17

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图2
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-30 09:42:40

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图2
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-30 10:00:41

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十八:2米PVC水管六个TT马达驱动火星车
  项目实验之六:JDY-31蓝牙模块从模式与Arduino的回环测试

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十八:2米PVC水管六个TT马达驱动火星车
  4.   项目实验之六:JDY-31蓝牙模块从模式与Arduino的回环测试
  5.   JDY-31模块与Uno接线:
  6.   VCC         VCC
  7.   GND         GND
  8.   TXD         D0
  9.   RXD         D1
  10. */
  11. void setup() {
  12.   Serial.begin(9600); // 初始化串口通信,波特率设置为9600
  13.   Serial.println("JDY-31蓝牙模块准备就绪!"); // 向串口输出初始化完成信息
  14. }
  15. void loop() {
  16.   while (Serial.available()) // 检查串口是否有可读取的数据
  17.   {
  18.     char c = Serial.read(); // 读取串口数据
  19.     if (c == 'A') // 如果读取到的数据是字符'A'
  20.     {
  21.       Serial.println("Hello 火星车!"); // 向串口输出“Hello 火星车!”
  22.     }
  23.   }
  24.   delay(100); // 延迟100毫秒
  25. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-30 10:10:15

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

实验串口返回情况

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-8-30 10:13:14

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车

实验场景图

【花雕学编程】Arduino动手做(228)---2米PVC水管火星车图1
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail