конфликт с сервоприводом и двигателями постоянного тока - PullRequest
0 голосов
/ 04 июня 2018

Я строил робота, избегающего препятствий, и проверял свой моторный щит (Adafruit Motor Shield V2 для Arduino).Я загрузил код для двигателей постоянного тока на arduino uno, основной код для простого движения, но мой сервопривод также, кажется, работает.

Как я могу остановить его и проверить только двигатели постоянного тока?

Соединения:

  • сервоприводы к ser1 на моторном щите.
  • ультразвуковые датчики gnd и vcc к gnd и 5v arduino соответственно
  • trig и echoдля A4 и A5 соответственно
  • двигатели постоянного тока для M1 и M2 на щитке двигателя
  • и, наконец, щит двигателя для Arduino.

Это код двигателя, который я обновил:

#include<AFMotor.h>
AF_DCMotor rmotor(1, MOTOR12_1KHZ);
AF_DCMotor lmotor(2, MOTOR12_1KHZ);

void setup() {
  Serial.begin(9600);
  rmotor.setSpeed(255);
  lmotor.setSpeed(255);
}
void loop() {
  rmotor.run(FORWARD);
  lmotor.run(FORWARD);
  delay(5000);
  rmotor.run(FORWARD);
  lmotor.run(BACKWARD); delay(1000);
  rmotor.run(FORWARD);
  lmotor.run(FORWARD);
  delay(5000);
  rmotor.run(BACKWARD);
  lmotor.run(FORWARD);
  delay(500); // put your main code here, to run repeatedly:
}

1 Ответ

0 голосов
/ 04 июня 2018

Вообще.Если вам не нужно проверять сервопривод, вы можете отключить его (тогда он будет отключен).Если вы хотите, чтобы он был подключен, но вы не хотите, чтобы он двигался, тогда вам действительно нужно установить его под углом, чтобы Arduino мог зафиксировать его в одном месте .

Так что вы, вероятно, просто хотите установить сервопривод на 90 градусов (средняя точка), возможно, что-то вроде:

#include<AFMotor.h>
#include <Servo.h>

AF_DCMotor rmotor(1, MOTOR12_1KHZ);
AF_DCMotor lmotor(2, MOTOR12_1KHZ);
Servo servo;

void setup() {
  Serial.begin(9600);
  rmotor.setSpeed(255);
  lmotor.setSpeed(255);

  servo.attach(9);
  server.write(90);  // set servo to mid-point
}
void loop() {
  rmotor.run(FORWARD);
  lmotor.run(FORWARD);
  delay(5000);
  rmotor.run(FORWARD);
  lmotor.run(BACKWARD); delay(1000);
  rmotor.run(FORWARD);
  lmotor.run(FORWARD);
  delay(5000);
  rmotor.run(BACKWARD);
  lmotor.run(FORWARD);
  delay(500); // put your main code here, to run repeatedly:
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...