0
4DC 모터로 작동하는 로봇을 만들고 있는데 블루투스를 연결할 때 약간의 문제가 있습니다. 내가 블루투스없이 모터에 대한 테스트 코드를 실행할 때, 모터는 최대의 힘을 발휘하며 아무런 문제가 없다. Arduino + AdaFruit Motor Shield 2.3 + 블루투스 전원 문제?
#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_PWMServoDriver.h"
// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
// Select which 'port' M1, M2, M3 or M4.
Adafruit_DCMotor *M1 = AFMS.getMotor(1);
Adafruit_DCMotor *M2 = AFMS.getMotor(2);
Adafruit_DCMotor *M3 = AFMS.getMotor(3);
Adafruit_DCMotor *M4 = AFMS.getMotor(4);
void setup() {
AFMS.begin(); // create with the default frequency 1.6KHz
//AFMS.begin(1000); // OR with a different frequency, say 1KHz
// turn on motor
M1->setSpeed(255);
M2->setSpeed(255);
M3->setSpeed(255);
M4->setSpeed(255);
M1->run(RELEASE);
M2->run(RELEASE);
M3->run(RELEASE);
M4->run(RELEASE);
Serial.begin(9600); // set up Serial library at 9600 bps
}
void loop()
{
M1->run(FORWARD);
M2->run(FORWARD);
M3->run(FORWARD);
M4->run(FORWARD);
delay (5000);
M1->run(BACKWARD);
M2->run(BACKWARD);
M3->run(BACKWARD);
M4->run(BACKWARD);
delay (5000);
}
내가 블루투스를 연결하고 모터 아래의 코드를 실행
이 낮은 토크로 실행하는 거의 로봇을 이동할 수 있습니다 여기에만 모터에 대한 테스트 코드입니다. 여기#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_PWMServoDriver.h"
// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
// Select which 'port' M1, M2, M3 or M4.
Adafruit_DCMotor *M1 = AFMS.getMotor(1);
Adafruit_DCMotor *M2 = AFMS.getMotor(2);
Adafruit_DCMotor *M3 = AFMS.getMotor(3);
Adafruit_DCMotor *M4 = AFMS.getMotor(4);
const int BTState = 11;
int state;
void setup() {
AFMS.begin(); // create with the default frequency 1.6KHz
//AFMS.begin(1000); // OR with a different frequency, say 1KHz
// turn on motor
M1->setSpeed(255);
M2->setSpeed(255);
M3->setSpeed(255);
M4->setSpeed(255);
M1->run(RELEASE);
M2->run(RELEASE);
M3->run(RELEASE);
M4->run(RELEASE);
pinMode(BTState, INPUT);
Serial.begin(9600); // set up Serial library at 9600 bps
}
void loop()
{
//Stop car when connection lost or bluetooth disconnected
if (digitalRead(BTState) == LOW) {
state = 'S';
}
//Save income data to variable 'state'
if (Serial.available() > 0) {
state = Serial.read();
}
//If state is equal with letter 'F', car will go forward!
if (state == 'F') {
M1->run(FORWARD);
M2->run(FORWARD);
M3->run(FORWARD);
M4->run(FORWARD);
}
//If state is equal with letter 'B', car will go backward
else if (state == 'B') {
M1->run(BACKWARD);
M2->run(BACKWARD);
M3->run(BACKWARD);
M4->run(BACKWARD);
}
//If state is equal with letter 'S', stop the car
else if (state == 'S') {
M1->run(RELEASE);
M2->run(RELEASE);
M3->run(RELEASE);
M4->run(RELEASE);
}
}
내 세트까지의 사진입니다 : 블루투스 올 때 내가 제대로 모든 것을 연결 한
하지만 난 이해가 안 돼요 왜 내가 앞으로 시작할 때 또는 블루투스를 통해 내 전화기 또는 컴퓨터에서 뒤로 명령 DC 모터의 최고 속도를 얻지 못하고 있습니다. 그것은 거의 내가 그들에게 충분한 힘을 얻지 못하고있는 것처럼 보인다.
내가 뭘 잘못하고 있니?
이 질문은 [arduino.se] 여기에보다 더 적합하다. –
안녕하세요 켄, 네,하지만 요점을 참조하십시오하지만 너무 행운이 질문을 게시했습니다. 저는 배선 문제가 아니라 코드 문제로 인해 누군가가 문제를 지적 할 수 있기를 바랍니다. – Slavisha