如何在使用串行连接控制时,用Arduino控制BLDC电机?

2024-09-28 20:46:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图控制无刷直流电机(与电子稳定控制系统)与我的arduino。arduino通过串行连接接收命令,raspberry pi运行一个python程序,该程序反复发送数字以控制电机

我打算通过raspberry pi通过串行连接来控制电机的速度。到目前为止,我还不能在发送数据的同时旋转马达

include <Servo.h>
Servo ESC;     // create servo object to control the ESC

int incomingByte = 0;

void setup() {

  Serial.begin(9600);

  ESC.attach(3,1000,2000); // (pin, min pulse width, max pulse width in microseconds)

}

void loop() {
    ESC.write(Serial.parseInt());
    //incomingByte = Serial.parseInt();
}
import tkinter as tk
import serial

tracked_var = 0


def outputValue():
    print(tracked_var)
    ser.write(value.encode())
    window.after(50, outputValue)


def update_tracked_variable(value):
    global tracked_var
    tracked_var = value


def background(color):
    window.configure(bg=color)
    scale = tk.Scale(window, from_=0, to=20, command=update_tracked_variable)
    scale.pack()


ser = serial.Serial('/dev/ttyUSB0', 9600)
window = tk.Tk()
window.title("Drone Control")
background("black")
outputValue()
window.mainloop()

当我把数值发送到arduino时,我没有从马达得到任何移动。 这个代码从一个简单的电位器伺服控制器略有改变


Tags: 程序valuevardefserialpiwindowraspberry