组合2个伺服和传感器超过1系列

2024-09-29 21:39:44 发布

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

我试图连接在同一个串行2伺服和距离传感器。在Arduino,我有这个代码。如果我为我的伺服写上Arduino的串行监视器值,比如120120,它就工作了。我用python编写了一个程序,根据传感器的结果更改值,但是程序发送值,但是什么都没有发生。你能帮我一下我做错了什么吗?你知道吗

#include <NewPing.h>
#include <Servo.h>
#define TRIGGER_PIN   12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN      11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE  200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

Servo servo1;  
Servo servo2; 
int num1,num2;  

void setup()
{
  servo1.attach(9);
  servo2.attach(10);
  Serial.begin(115200); // Open serial at 115200 baud to see ping results.
}

void loop()
{
   Serial.println(sonar.ping_cm(),DEC); 
   num1= Serial.parseInt(); 
   num2= Serial.parseInt();          
   servo1.write(num1);     
   servo2.write(num2); 
}

用python编写的程序

if  mean10 > 8:
             ser.write( "130,130".encode())                
else:
             ser.write( "30,30".encode())

Tags: to程序pinserialsensorpingarduinowrite
1条回答
网友
1楼 · 发布于 2024-09-29 21:39:44

这是我尝试的结果。希望你也能成功。你知道吗

Arduino代码:

Serial.println(sonar.ping_cm(),DEC); 
num = Serial.parseInt();
num1= num / 1000;
num2= num % 1000;         
servo1.write(num1);     
servo2.write(num2);

Python代码:

if  mean10 > 8:
    data = "130" + "130"
    ser.write(data.encode())                
else:
    data = "030" + "030"
    ser.write(data.encode())

或者:

Arduino侧:

Serial.println(sonar.ping_cm(),DEC); 
num = Serial.parseInt();
if(num == 1){
    num1 = 30;
    num2 = 30;
}
else if(num == 2){
    num1 = 130;
    num2 = 130;
}
servo1.write(num1);     
servo2.write(num2);

Python代码:

if  mean10 > 8:
    data = 1
    ser.write(data)                
else:
    data = 2
    ser.write(data)

相关问题 更多 >

    热门问题