问题标签 [motordriver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3092 浏览

arduino - 用 arduino uno 控制两个直流电机

所以我使用这个示例代码来运行我的两个电机......但该代码仅适用于一个电机......我如何修改此代码以使另一个电机工作?我尝试用频道 b 替换频道 a,但由于某种原因不起作用?

0 投票
2 回答
1745 浏览

c++ - 使用 Arduino Mega 和 Simple-H HV Motor Shield 控制直流电机

我正在尝试使用 Simple-H HV Motor Shield 和 H 桥连接来控制单个直流电机。我需要使用串行监视器控制速度和方向(例如“f 220”表示以 220 的速度前进)。这是我的代码:

M1 使电机前进,M2 使电机后退。

这是错误:没有匹配函数调用'HardwareSerial::print()'

我不知道这是否是正确的编码方式。我只想在编程方面得到一些帮助,因为我对 Arduino 编码很陌生。

0 投票
2 回答
388 浏览

arduino - Arduino SoftwareServo 和 Init ESC

我连接了 4 个 esc,我想使用 SoftwareServo 控制它们。

通过这样做,我可以使用 Servo.h 控制它们:

我必须这样做来初始化 ESC,但我无法使用 SoftwareServo.h 获得相同的效果;我一定做错了什么:

0 投票
2 回答
749 浏览

c++ - 使用制造商的 DLL 通过 USB 使用 C++ 控制步进控制器

简介 上完大学课程后,我正在重新自学 C++。我最近购买了一个 Arcus Performax PMX-4EX-SA-TB9 步进电机控制器,它有一个我打算使用的 USB 连接。该公司提供使用其专有代码手动控制步进器的软件,并在其软件中提供一个终端,您可以在其中向控制器发送单行代码以控制步进器。您可以控制加速度和最高速度以及各种东西。玩起来很有趣,但现在我想更进一步。在线手册讨论了使用 C++ 为步进器编写自己的程序,我下载了我认为我需要的文件。我有一个 DLL 文件、一个 lib 文件和一个头文件。因此,我了解到 DLL 文件是在可执行文件运行时使用的动态链接库。我通读了 lib 文件和头文件,发现我认为头文件中的一些函数声明类似于一些电机命令。我将在下面插入头文件。

我的问题

我可以使用 DLL 文件以及 lib 和头文件来使用我在头文件中看到的函数来控制这个设备吗?我如何加载这一切?有人愿意使用下面包含的 fnPerformaxComDoMove 函数编写一个简短的小示例吗?这样我就可以从那里走了?我正在使用 Visual Studio C++ 2013,并且我已经完成了有关创建和使用我自己制作的 DLL 的在线教程,但与这个相比,这些都显得如此简单。

我的理解

我相信,由于我得到了一个 DLL、头文件和 lib 文件,我将使用 _declspec(dllexport) 定义而不是导入版本。所有的函数声明都以“BOOL”开头,然后是“PERFORMAXCOM_API”,然后是“_stdcall”,我只习惯于查看类型,然后是函数名,然后是括号中的参数。在所有不同的功能之前,“PERFORMAX_API”和“_stdcall”是什么意思?我知道 DWORD 是双字,是一个 32 位整数,但有些参数要求一个轴,比如 x、y 和 z……当他们本来可以要求一个字符时,为什么他们想要一个数字?非常感谢任何可以帮助我提供任何信息的人。我非常想学习如何使用它。

标题

0 投票
1 回答
1727 浏览

arduino-uno - Arduino/MPU6050/AdafruitMotorShieldV2:打开电机时脚本挂起/冻结

一般来说,我是机器人和电子产品的新手,所以请不要以为我尝试了任何你认为显而易见的东西。

我正在尝试创建一个基本上可以自行运行的推车(简单的 AI 例程来避开障碍物,从 pt.A 到 pt.B 拐角处,跟随路线等)。我正在将 Adafruit Arduino Uno R3 与 Adafruit Motor Shield v2 和 MPU-6050 放在一起。我正在使用电机屏蔽上的“面包板”作为电路,在那里焊接所有东西。

我可以使用自己的脚本让所有部件独立工作:Motor Shield 使用 Adafruit 库按预期驱动 4 个电机;我正在使用 MPU-6050 的“JRowberg”库,并从示例 MPU6050_DMP6.ino 开始,只要推车电机关闭,它就可以正常工作。我对下面示例脚本的唯一更改是电机启动和一些简单的电机命令。

只要我关闭关闭电机的开关,一切似乎都很好:它会连续输出到串行窗口,其中包含欧拉数据,我认为这是正确的。然而,在我打开电机电源几秒钟后(车轮开始转动),它只是挂起/冻结:串行窗口的输出停止(有时在中线),车轮继续转动他们最后一次变化的速度。有时我会看到“FIFO 溢出”错误,但并非总是如此。有时我会在某些浮点值挂起之前看到“nan”,但并非总是如此。

我尝试过的一些事情,所有这些都改变了注意事项: * 我已经将 MPU-6050 板换成了同一制造商的另一块板。* 我尝试使用带状电缆将 MPU-6050 从电机上移开。* 我已经使用 JRowber 的建议更改了 I2C 时钟(更改 .h 文件并更改 TWBR 变量的值),但我认为我没有尝试过所有可能的值。* 我已经在 AFMS.begin() 命令中更改了 MotorShield 的速度,但同样,可能还有其他值我没有尝试过,而且我不确定它和 TWBR 值需要如何同步成为。

还有其他一些事情,都无济于事。

下面是一个对我来说失败的示例脚本:

0 投票
0 回答
1035 浏览

arduino - 用arduino控制两个电机

我使用带有 TB6612FNG 电机驱动器的 arduino 来控制两个直流电机。我关注这个链接http://bildr.org/2012/04/tb6612fng-arduino/ 我遇到的问题是当我运行下面的代码时电机不运行。如果我注释掉“move(2, 255, 1)”,那么其中一个电机会旋转。为什么两个电机都不转?有什么帮助吗?

//电机A连接在A01和A02之间 //电机B连接在B01和B02之间

0 投票
1 回答
2351 浏览

arduino - 所有 PWM 引脚上的 Arduino Uno 频率相同

我正在控制一个带有逆变器/驱动器 IC 的 BLDC 电机来进行开关工作。我需要为驱动器提供 6 个相同频率的 PWM 信号。确切的频率并不重要,只要它在 5kHz 到 10kHz 之间并且所有 PWM 引脚都相同。

我目前正在使用 Arduino Uno,我不确定如何将每个 PWM 引脚(3、5、6、9、10、11)编程为与定时器(0、1 和 2)相同的频率,特别是引脚具有不同的时钟速度。

  • 引脚 5 和 6:由定时器 0 控制,基频 62500Hz
  • 引脚 9 和 10:由 timer1 控制,基频 31250Hz
  • 引脚 11 和 3:由定时器 2 控制,基频 31250Hz

timer1 和 timer2 可以,可以按预分频器值 8 (7812.5Hz) 缩小。不确定如何让 timer0 达到相同的频率?

http://playground.arduino.cc/Main/TimerPWMCheatsheet

我确信解决方法相对简单。是否可以将 timer0 的频率除以一个不是预分频器值的数字,比如 40?

提前致谢。

拍。

0 投票
2 回答
1185 浏览

c++ - 为 400hz PWM 使用 4 个 16 位定时器

我正在处理基于 arduino mega 的四轴飞行器,并试图为 4 个电机制作 PWM 频率 - 每个电机 400hz。
我发现了一个有趣的解决方案,其中使用 4 个 ATmega2560 16 位定时器来控制 4 个带 PWM 的 ESC,因此它可以达到 400hz 的频率。700 到 2000µs 是 ESC 处理的正常脉冲宽度。
1 秒/REFRESH_INTERVAL = 1/0.0025 = 400hz。

问题是要使其工作每个 PWM 应由 1 个 16 位定时器控制。否则,比如说,1 个计时器上的 2 个 escs 将提供 200hz。所以所有的 16 位定时器都忙于控制 4 个 ESC,但我仍然需要从接收器读取输入 PPM。为此,我至少需要一个我不再拥有的 16 位计时器。
它仍然是一个 8 位定时器空闲位,它只能读取 0..255 个数字,而正常的数字 escs 操作是 1000..2000 等等。

那么如果我对 pwm 和 ppm 读数都使用相同的 16 位计时器会发生什么?它会起作用吗?会不会大幅度降低速度?
我有 arduino 与 Raspberry Pi 一起工作,它控制数据过滤、调试和其他东西,将 ppm 读数移动到 Raspberry 是否更好?

0 投票
0 回答
190 浏览

c - RobotC - 无法识别电机的简单错误

我们正在为 FTC 编写远程操作程序。我们的机器人是全轮式的:

/\ /

在顶部,我们将四个电机定义为 motor_LF、motor_LB、motor_RF 和 motor_RB

不幸的是,在实际移动电机的最后几行中,我们收到错误消息,指出电机变量未定义。

任何帮助表示赞赏。

我们是第一次尝试机器人。我们对其进行配置并具有以下代码:

0 投票
1 回答
1638 浏览

arduino - 使用 arduino 代码控制两个直流电机和伺服

代码似乎不起作用,但我也刚刚开始学习如何编写 arduino。我正在尝试运行两个直流电机和一个伺服作为机器人汽车的转向。我应该如何编写它才能正常工作。我要做的就是使用两个电机来驱动汽车前进,并使用伺服器为汽车提供方向。如何改进此代码?