问题标签 [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.
math - 使用两个电机轴绘制曲线
我正在尝试使用二维轴上的两个电机绘制一个圆或任何可能接近曲线(例如正弦)的东西。基本上我正在运行一个带有两个 nema17 步进电机的树莓派和 Adafruit 电机帽。
我想实现一些“平滑”,但似乎我只能得到真正“混叠”的结果,我想知道这是否是因为我正在驱动步进电机。(但我相信 3D 打印机使用步进电机并取得一些不错的效果)
做一些数学运算,我可以计算出每个电机的速度: X = R cos(t) 和 Y = R sin(t) 所以 Vx = -R sin(t) 和 Vy = R cos(t)
但我不确定这是最好的方法,因为我不确定我是否可以驱动步进电机的速度,但只能在步骤之间做一些延迟。
我还考虑过计算曲线的所有 x 和 y 位置,但我再次不确定我的构建精度是否足够高。
为了完成,我正在使用 Adafruit 库:https ://github.com/adafruit/Adafruit-Motor-HAT-Python-Library所以我并没有真正深入研究硬件代码,而只是使用库提供的功能。基本上,我可以单独运行每个电机 x 步。这是步进卡:https ://www.adafruit.com/product/2348
构建(这是非常 DIY):https ://www.youtube.com/watch?v=uqSTZiI4KuY
verilog - 使用 FPGA 控制 4 个电机
我正在尝试使用 FPGA 控制 4 个电机。(Verilog HDL)我使用always块和自定义模块编写了一个代码(它控制一个伺服电机,它的输入值-L_CTRL和R_CTRL确定伺服电机是向左还是向右旋转一步)
这是自定义模块代码:
我编写了控制 4 个电机的代码:
我猜在侧面调用模块总是阻塞会导致错误。是否有任何替代算法/方法来解决这个问题?
谢谢。
stm32 - 为什么STM32上的timer break输入每次都不起作用?
我正在使用 STM32F030C6 进行 BLDC 电机控制项目,但我对在限流电路中发现的错误感到困惑。
我正在应用逐周期电流限制。在外部,我有一个(足够快的)运算放大器放大器测量组合三相接地路径中的电流。还有一个高速比较器将放大值与设定值进行比较。该比较器的输出被馈送到 PB12 上的 TIM1_BKIN 输入。当电流上升太高时,比较器翻转,STM32 关闭 PWM。
通常这可以完美地工作(参见示波器图像中的第一个周期)。比较器输出 (CH2) 变低,测量电流 (CH1) 立即开始下降。
顺便说一句,当信号耦合到我的探头中时,您可以看到 H 桥切换,从而导致尖峰。
第二次 - 实际上这种情况发生了很多次 - 中断输入似乎对下降沿没有反应,因为电流不断上升并在 4.6us 后关闭。
为了消除软件禁用 BRK 输入的可能性,我在 TIM1_BDTR 寄存器上激活了锁定级别 1。执行此操作的代码是使用 STM32CubeMX 4.14.0 生成的。
我不明白为什么会发生这种情况,因为 BRK 输入是异步工作的,甚至不需要中断。有任何想法或要求提供更多信息吗?
image - 在树莓派上使用图像处理驱动电机
我有一个关于在驱动电机时处理图像的问题。我做了一些研究,可能我需要使用多处理。但是,我不知道如何同时运行两个处理器。
假设我有两个函数,即 imageProcessing() 和 DrivingMotor()。使用来自 imageProcessing() 的信息,我需要同时更新我的 DrivingMotor() 函数。我该如何处理这个问题?
arduino - 直流电机步进电机的速度控制(电机:NEMA 17;驱动器:drv8825)[频率调节]
我正在做一个学校项目,使用一些由 drv8825 驱动器驱动的步进电机(实际上,它将是一台桥式起重机)和一个 Arduino UNO。首先,我们没有一大笔钱可以花。现在,问题是这样的:我们将使用 PID 控制,通过 MPU6050 acc+gyro 来控制电机的速度(负载应该在运动过程中尽可能牢固),并且唯一的改变步进电机速度的两种方法是:
1)通过延迟方法,例如:
使用这种方法,Arduino会一直忙,所以我将无法连续检查传感器的值,以达到正确的速度。因此,我不能使用这种方法。
2)通过外部调节drv8825的时钟频率,例如使用“电压频率转换器”(可变电压可以由“Arduino PWM”+“低通滤波器”给出)或使用“非稳态多谐振荡器” (“非稳态振荡器”)用“数字电位器”改变频率。我已经尝试过“电压频率转换器”的方法,但由于电路的噪音它没有工作。
我希望你能帮助我找出在程序期间连续改变步进电机速度的更好方法(以及找到更好的方法来制作可变频率,如第 2 点所示)。
arduino - 使用 L293D 控制器,电机只旋转一个方向
您好,我有一辆遥控车,它有两个 3v 电机(一个用于左/右,另一个用于前/后)。左右电机工作正常,但是当我尝试旋转另一个电机时,它只会向后旋转。我已经单独尝试过电机,它在没有控制器的情况下双向工作。
我的代码如下:
这也是接线:
绿色和橙色线用于蓝牙模块。
你知道我该如何解决这个问题并让它发挥作用吗?
谢谢你。
arduino - 根据书面代码运行带有 H 桥和 Arduino 的电机的 Arduino 代码问题
所以我有一个问题,当我用超声波传感器运行我的代码时,h桥与电机一起旋转,一个电机始终旋转,另一个电机每 6 秒旋转 2 秒,但我不知道为什么。有什么帮助吗?
这是代码:
arduino - 使用 2 个步进电机(Arduino)画一个圆
我想用 2 个步进电机(42H48)和 2 个驱动器(TB6560)画一个圆。
硬件是这样的:
现在,我只能控制这些电机来绘制钻石形状。
使用脉冲画圆的任何好方法?
我用谷歌搜索了“bresenham 算法”,但我不知道如何使用脉冲来实现这个算法。
motordriver - 使用 BBC Micro:bit 在 12v 电源上运行电机驱动板 L298N
抱歉,如果我的查询听起来很奇怪。我正在尝试确定如果我执行以下操作,我的 micro:bit 是否会受到严重影响:
我有它的电池组的 GND 线和 9v 电池的 GND 线穿过驱动器的 POWER GND 引脚。目前,使用的是驱动器的 5V 引脚,而不是 12V 电源。我已经编写了 2 轮(直流齿轮电机)越野车,并希望将其“升级”为 4 轮“怪物”越野车。
如果我使用 12V 引脚(并为电源提供 12V 电压,GND 是否会对 micro:bit 产生严重影响?
感谢您的帮助,我是新手,这也是我的第一个问题。任何有关电子产品的帮助表示赞赏!
arduino - 使用 arduino 以线性正弦运动运行直流电机,控制赫兹和方向变化
在网上搜索了一番后,我能够以正弦方式运行 2 线直流电机。它是一个解构的打印机托架,由 Arduino Uno 和 L298N 电机驱动器驱动。我正在使用电位器来控制频率。该代码运行良好,但我需要一些帮助。
有没有一种简单的方法来控制它的运行频率?可能喜欢将其设置为 1.5、1.6、1.7 等赫兹,并让正弦函数运行电机?我目前正在测量赫兹,但我无法让它每隔一段时间准确运行。
有没有更优雅的方法来控制方向的反转?当罪波达到最小值时,我正在反转。但是在较低的频率下,它会保持最少几个样本,有时我的方法不起作用......我目前正在以一定的速度对样本进行计数,并且硬编码可以反转。
我是 Arduino 新手,因此感谢您提供任何帮助或建议。