This class interface the MDSMC (Micro Dual Serial Motor Controller) by Pololu with our mbed module
Diff: MDSMC.h
- Revision:
- 0:e869912db757
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MDSMC.h Fri Nov 16 20:26:54 2012 +0000
@@ -0,0 +1,70 @@
+/*THIS CLASS INTERFACE THE MDSMC by pololu (Micro Dual Serial Motor Controller)
+WITH OUR MBED MODULE. THE MDSMC MUST BE USED WITH UART MODULE*/
+
+#ifndef MBED_MDSMC_H
+#define MBED_MDSMC_H
+
+#include "mbed.h"
+
+#define Start 0x80
+#define ChangeConfig 0x02
+#define Setting1 0x7F
+#define Setting2 0x13
+#define Device 0x00
+#define Forward1 0x7F
+#define Reverse1 0x7E
+#define Forward2 0x27
+#define Reverse2 0x26
+#define Right 0x21
+#define Left 0x05
+
+class MDSMC
+{
+ public:
+ /* - Declare Mbed connections
+ ** - Select serial pin with "PinName data" parameter;
+ ** - select reset pin with "PinName CLR" parameter;
+ ** - select motor mode with "nM" parameter if you set nM = 1 the MDSMC drive one motor,
+ ** if you set nM = 2 the MDSMC drive two motors;
+ ** - select the baud rate with "bps" parameter you can select a bps value between 2000
+ ** and 19200.*/
+ MDSMC(PinName TX, PinName RX, PinName CLR, int bps, int nM);
+
+ /* - Give direction and speed*/
+ void use(char direction, char speed);
+
+ protected:
+ Serial _serialMDSMC;
+ DigitalOut _CLR;
+ void reset();
+};
+typedef unsigned char BYTE;
+
+#endif
+
+/*example used to test the class
+
+#include "mbed.h"
+#include "MDSMC.h"
+
+MDSMC(USBTX,USBRX,p5);
+
+int main()
+{
+ MDSMC.init(1,9600);
+ wait(1);
+ MDSMC.use(Forward1, 80);
+ wait(1);
+ MDSMC.use(Reverse1, 80);
+ wait(2);
+ MDSMC.init(2,9600);
+ wait(1);
+ MDSMC.use(Forward2, 80);
+ wait(1);
+ MDSMC.use(Reverse2, 80);
+ wait(1);
+ MDSMC.use(Right, 50);
+ wait(1);
+ MDSMC.use(Left, 50);
+}
+*/
\ No newline at end of file