02雙A+PWM控制mBot

App Invenotr端

除了前、後、左、右、停止外

再加上「低速」、「中速」、「高速」

Arduino端

#include <Arduino.h>

#include <Wire.h>

#include <Servo.h>

#include <SoftwareSerial.h>

#include <MeMCore.h>

double angle_rad = PI/180.0;

double angle_deg = 180.0/PI;

MBotDCMotor motor(0);

SoftwareSerial BT(0,1);

char val;

int pwm;

void setup(){

Serial.begin(9600); //for arduino serial port mointor

BT.begin(9600);

pwm=0;

}

void loop(){

if(BT.available() ) {

val=BT.read();

// Serial.println(val);

switch (val) {

case 'f' :

motor.move(1,pwm);

break;

case 'b' :

motor.move(2,pwm);

break;

case 'l' :

motor.move(3,pwm);

break;

case 'r' :

motor.move(4,pwm);

break;

case 's' :

motor.move(1,0);

break;

case 'x' :

lowspeed();

break;

case 'y' :

midspeed();

break;

case 'z' :

highspeed();

break;

}

}

}

void lowspeed(){

pwm=50;

}

void midspeed(){

pwm=150;

}

void highspeed(){

pwm=250;

}

#include <Arduino.h>

#include <Wire.h>

#include <Servo.h>

#include <SoftwareSerial.h>

#include <MeMCore.h>

double angle_rad = PI/180.0;

double angle_deg = 180.0/PI;

MeRGBLed rgbled_7(7, 7==7?2:4);

MBotDCMotor motor(0);

SoftwareSerial BT(0,1);

char val;

int pwm;

void setup(){

Serial.begin(9600); //for arduino serial port mointor

BT.begin(9600);

pwm=0;

}

void loop(){

if(BT.available() ) {

val=BT.read();

// Serial.println(val);

switch (val) {

case 'f' :

motor.move(1,pwm);

rgbled_7.setColor(1,0,255,0);

rgbled_7.show();

rgbled_7.setColor(2,0,255,0);

rgbled_7.show();

break;

case 'b' :

motor.move(2,pwm);

rgbled_7.setColor(1,255,0,0);

rgbled_7.show();

rgbled_7.setColor(2,255,0,0);

rgbled_7.show();

break;

case 'l' :

motor.move(3,pwm);

rgbled_7.setColor(1,0,0,0);

rgbled_7.show();

rgbled_7.setColor(2,0,0,255);

rgbled_7.show();

break;

case 'r' :

rgbled_7.setColor(1,0,0,255);

rgbled_7.show();

rgbled_7.setColor(2,0,0,0);

rgbled_7.show();

motor.move(4,pwm);

break;

case 's' :

motor.move(1,0);

rgbled_7.setColor(1,0,0,0);

rgbled_7.show();

rgbled_7.setColor(2,0,0,0);

rgbled_7.show();

break;

case 'x' :

lowspeed();

break;

case 'y' :

midspeed();

break;

case 'z' :

highspeed();

break;

}

}

}

void lowspeed(){

pwm=50;

}

void midspeed(){

pwm=150;

}

void highspeed(){

pwm=250;

}