Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Adafruit-MortorShield_sample Low_Power_Long_Distance_IR_Vision_Robot Low_Power_Long_Distance_IR_Vision_Robot
Diff: Adafruit_MotorShield.h
- Revision:
- 0:3d17b246f7fe
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Adafruit_MotorShield.h Wed Oct 15 02:16:15 2014 +0000
@@ -0,0 +1,105 @@
+/******************************************************************
+ This is the library for the Adafruit Motor Shield V2 for Arduino.
+ It supports DC motors & Stepper motors with microstepping as well
+ as stacking-support. It is *not* compatible with the V1 library!
+
+ It will only work with https://www.adafruit.com/products/1483
+
+ Adafruit invests time and resources providing this open
+ source code, please support Adafruit and open-source hardware
+ by purchasing products from Adafruit!
+
+ Written by Limor Fried/Ladyada for Adafruit Industries.
+ BSD license, check license.txt for more information.
+ All text above must be included in any redistribution.
+ ******************************************************************/
+
+#ifndef _Adafruit_MotorShield_h_
+#define _Adafruit_MotorShield_h_
+
+//#include <inttypes.h>
+//#include <Wire.h>
+//#include "utility/Adafruit_PWMServoDriver.h"
+#include "Adafruit_PWMServoDriver.h"
+
+//#define MOTORDEBUG
+
+#define MICROSTEPS 16 // 8 or 16
+
+#define MOTOR1_A 2
+#define MOTOR1_B 3
+#define MOTOR2_A 1
+#define MOTOR2_B 4
+#define MOTOR4_A 0
+#define MOTOR4_B 6
+#define MOTOR3_A 5
+#define MOTOR3_B 7
+
+#define FORWARD 1
+#define BACKWARD 2
+#define BRAKE 3
+#define RELEASE 4
+
+#define SINGLE 1
+#define DOUBLE 2
+#define INTERLEAVE 3
+#define MICROSTEP 4
+
+class Adafruit_MotorShield;
+
+class Adafruit_DCMotor
+{
+ public:
+ Adafruit_DCMotor(void);
+ friend class Adafruit_MotorShield;
+ void run(uint8_t);
+ void setSpeed(uint8_t);
+
+ private:
+ uint8_t PWMpin, IN1pin, IN2pin;
+ Adafruit_MotorShield *MC;
+ uint8_t motornum;
+};
+
+class Adafruit_StepperMotor {
+ public:
+ Adafruit_StepperMotor(void);
+ friend class Adafruit_MotorShield;
+
+ void step(uint16_t steps, uint8_t dir, uint8_t style = SINGLE);
+ void setSpeed(uint16_t);
+ uint8_t onestep(uint8_t dir, uint8_t style);
+ void release(void);
+ uint32_t usperstep, steppingcounter;
+
+ private:
+ uint8_t PWMApin, AIN1pin, AIN2pin;
+ uint8_t PWMBpin, BIN1pin, BIN2pin;
+ uint16_t revsteps; // # steps per revolution
+ uint8_t currentstep;
+ Adafruit_MotorShield *MC;
+ uint8_t steppernum;
+};
+
+class Adafruit_MotorShield
+{
+ public:
+// Adafruit_MotorShield(uint8_t addr = 0x60);
+ Adafruit_MotorShield(PinName sda, PinName scl, uint8_t addr = 0x60 << 1);
+ friend class Adafruit_DCMotor;
+ void begin(uint16_t freq = 1600);
+
+ void setPWM(uint8_t pin, uint16_t val);
+// void setPin(uint8_t pin, boolean val);
+ void setPin(uint8_t pin, uint16_t val);
+ Adafruit_DCMotor *getMotor(uint8_t n);
+ Adafruit_StepperMotor *getStepper(uint16_t steps, uint8_t n);
+ private:
+ uint8_t _addr;
+ uint16_t _freq;
+ Adafruit_DCMotor dcmotors[4];
+ Adafruit_StepperMotor steppers[2];
+ Adafruit_PWMServoDriver _pwm;
+};
+
+#endif