Adafruit-MortorShield_sample

Dependencies:   Adafruit-MotorShield Adafruit-PWM-Servo-Driver mbed

Fork of Adafruit-PWM-Servo-Driver_sample by Shundo Kishi

Committer:
robo8080
Date:
Wed Oct 15 02:18:01 2014 +0000
Revision:
3:2d789dbc57cf
Parent:
2:0f6b9593286e
test2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
syundo0730 0:4323102e4255 1 #include "mbed.h"
robo8080 2:0f6b9593286e 2 #include "Adafruit_MotorShield.h"
syundo0730 0:4323102e4255 3 #include "Adafruit_PWMServoDriver.h"
syundo0730 0:4323102e4255 4
robo8080 2:0f6b9593286e 5 Serial pc(USBTX,USBRX);
robo8080 2:0f6b9593286e 6
robo8080 2:0f6b9593286e 7 // Create the motor shield object with the default I2C address
robo8080 2:0f6b9593286e 8 //Adafruit_MotorShield AFMS = Adafruit_MotorShield(p9, p10, 0x60 << 1);
robo8080 2:0f6b9593286e 9 Adafruit_MotorShield AFMS = Adafruit_MotorShield(D14, D15, 0x60 << 1);
robo8080 2:0f6b9593286e 10 // Or, create it with a different I2C address (say for stacking)
robo8080 2:0f6b9593286e 11 // Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61);
robo8080 2:0f6b9593286e 12
robo8080 2:0f6b9593286e 13 // Select which 'port' M1, M2, M3 or M4. In this case, M1
robo8080 2:0f6b9593286e 14 Adafruit_DCMotor *myMotor = AFMS.getMotor(1);
robo8080 2:0f6b9593286e 15 // You can also make another motor on port M2
robo8080 2:0f6b9593286e 16 //Adafruit_DCMotor *myOtherMotor = AFMS.getMotor(2);
syundo0730 0:4323102e4255 17
robo8080 2:0f6b9593286e 18 void setup() {
robo8080 2:0f6b9593286e 19 pc.baud(9600); // set up Serial library at 9600 bps
robo8080 2:0f6b9593286e 20 pc.printf("Adafruit Motorshield v2 - DC Motor test!\n\r");
robo8080 2:0f6b9593286e 21
robo8080 2:0f6b9593286e 22 AFMS.begin(); // create with the default frequency 1.6KHz
robo8080 2:0f6b9593286e 23 //AFMS.begin(1000); // OR with a different frequency, say 1KHz
robo8080 2:0f6b9593286e 24
robo8080 2:0f6b9593286e 25 // Set the speed to start, from 0 (off) to 255 (max speed)
robo8080 2:0f6b9593286e 26 myMotor->setSpeed(150);
robo8080 2:0f6b9593286e 27 myMotor->run(FORWARD);
robo8080 2:0f6b9593286e 28 // turn on motor
robo8080 2:0f6b9593286e 29 myMotor->run(RELEASE);
syundo0730 0:4323102e4255 30 }
syundo0730 0:4323102e4255 31
robo8080 2:0f6b9593286e 32 void loop() {
robo8080 2:0f6b9593286e 33 uint8_t i;
robo8080 2:0f6b9593286e 34
robo8080 2:0f6b9593286e 35 pc.printf("tick\n\r");
robo8080 2:0f6b9593286e 36
robo8080 2:0f6b9593286e 37 myMotor->run(FORWARD);
robo8080 2:0f6b9593286e 38 for (i=0; i<255; i++) {
robo8080 2:0f6b9593286e 39 myMotor->setSpeed(i);
robo8080 2:0f6b9593286e 40 wait_ms(10);
robo8080 2:0f6b9593286e 41 }
robo8080 2:0f6b9593286e 42 for (i=255; i!=0; i--) {
robo8080 2:0f6b9593286e 43 myMotor->setSpeed(i);
robo8080 2:0f6b9593286e 44 wait_ms(10);
robo8080 2:0f6b9593286e 45 }
robo8080 2:0f6b9593286e 46
robo8080 2:0f6b9593286e 47 pc.printf("tock\n\r");
robo8080 2:0f6b9593286e 48
robo8080 2:0f6b9593286e 49 myMotor->run(BACKWARD);
robo8080 2:0f6b9593286e 50 for (i=0; i<255; i++) {
robo8080 2:0f6b9593286e 51 myMotor->setSpeed(i);
robo8080 2:0f6b9593286e 52 wait_ms(10);
robo8080 2:0f6b9593286e 53 }
robo8080 2:0f6b9593286e 54 for (i=255; i!=0; i--) {
robo8080 2:0f6b9593286e 55 myMotor->setSpeed(i);
robo8080 2:0f6b9593286e 56 wait_ms(10);
robo8080 2:0f6b9593286e 57 }
robo8080 2:0f6b9593286e 58
robo8080 2:0f6b9593286e 59 pc.printf("tech\n\r");
robo8080 2:0f6b9593286e 60 myMotor->run(RELEASE);
robo8080 2:0f6b9593286e 61 wait(1.0);
syundo0730 0:4323102e4255 62 }
syundo0730 0:4323102e4255 63
syundo0730 0:4323102e4255 64 int main() {
robo8080 2:0f6b9593286e 65 setup();
robo8080 2:0f6b9593286e 66 while(1) {
robo8080 2:0f6b9593286e 67 loop();
robo8080 2:0f6b9593286e 68 }
robo8080 2:0f6b9593286e 69 }