我试着用romeo板做小车,手机连接正常,代码是可以的,小车还是动不了
//------2016.6.29 by LL
//------适用于Romeo BLE mini 控制器
//https://www.dfrobot.com.cn/goods-1182.html
#include "GoBLE.h"
#include <Romeo_m.h>
#define LED 13
int joystickX, joystickY;
int buttonState[7];
unsigned int led_count;
void setup() {
Romeo_m.Initialise();
Goble.begin();
pinMode(LED,OUTPUT);
}
void loop() {
if (Goble.available())
{
readGoBle();
motorContrl();
}
delayLedBlink();//delay 10ms and led blink
}
//读取GoBle所有按键摇杆值
void readGoBle()
{
// read joystick value when there's valid command from bluetooth
joystickX = Goble.readJoystickX();
joystickY = Goble.readJoystickY();
// read button state when there's valid command from bluetooth
buttonState[SWITCH_UP] = Goble.readSwitchUp();
buttonState[SWITCH_DOWN] = Goble.readSwitchDown();
buttonState[SWITCH_LEFT] = Goble.readSwitchLeft();
buttonState[SWITCH_RIGHT] = Goble.readSwitchRight();
buttonState[SWITCH_SELECT] = Goble.readSwitchSelect();
buttonState[SWITCH_START] = Goble.readSwitchStart();
}
//根据GoBle按键值进行小车运动控制
//摇杆左右为转大弯,按键左右为原地转弯
void motorContrl()
{
if ((buttonState[SWITCH_UP] == PRESSED)||((joystickX>128)&&(joystickY>=64)&&(joystickY<=192)))
{
Romeo_m.motorControl(Reverse,200,Forward,200);//前进
return;//结束子函数
}
if ((buttonState[SWITCH_DOWN] == PRESSED)||((joystickX<128)&&(joystickY>=64)&&(joystickY<=192)))
{
Romeo_m.motorControl(Forward,150,Reverse,150);//后退
return;//结束子函数
}
if(buttonState[SWITCH_LEFT] == PRESSED)
{
Romeo_m.motorControl(Forward,100,Forward,100);//左转
return;//结束子函数
}
if((joystickY<128 )&&(joystickX>=64 )&&( joystickX<=192) )
{
Romeo_m.motorControl_M1(Reverse,80);//左转大弯
Romeo_m.motorControl_M2(Forward,200);
return;//结束子函数
}
if( buttonState[SWITCH_RIGHT] == PRESSED)
{
Romeo_m.motorControl(Reverse,100,Reverse,100);//右转
return;//结束子函数
}
if((joystickY>128)&&(joystickX>=64)&&(joystickX<=192))
{
Romeo_m.motorControl_M2(Forward,80); //右转大弯
Romeo_m.motorControl_M1(Reverse,200);
return;//结束子函数
}
Romeo_m.motorStop();//没有按键按下则停止
}
//led blink函数,每次执行延时10ms,100次时执行一次电平反向
void delayLedBlink()
{
delay(10);
led_count++;
if(led_count>100)
{
digitalWrite(LED,!digitalRead(LED));
led_count=0;
}
}
外接电源,换了电机,也不行(具体教程连接在这:https://mc.dfrobot.com.cn/thread-15527-1-1.html)
手机连接正常,代码是可以的,小车还是动不了。
如何判断 代码是可以的 还是接线正确?
可以尝试用 serial out 或者控制 6 个 led 显示收到控制 上下左右 select start。
当你把小车翻过来,控制移动看看马达会转吗?