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.
MD03.cpp
00001 /* 00002 * MD03 : 24v 20A H-bridge motor driver in I2C bus 00003 */ 00004 #include "mbed.h" 00005 #include "MD03.h" 00006 00007 MD03::MD03(PinName sda, PinName scl, int i2cAddress) : _i2c(sda, scl) { 00008 _writeOpcode = i2cAddress & 0xFE; 00009 _readOpcode = i2cAddress | 0x01; 00010 00011 _i2c.frequency(100000); 00012 } 00013 00014 void MD03::set_speed(int speed) 00015 { 00016 char data[2]; 00017 00018 data[0] = MD03_SPEED; 00019 data[1] = ((speed * 255)/100); 00020 _i2c.write(_writeOpcode, data, 2); 00021 } 00022 00023 void MD03::set_accel(int acceleration) 00024 { 00025 char data[2]; 00026 00027 data[0] = MD03_ACCELERATION; 00028 data[1] = 255 - ((acceleration * 255)/100); 00029 _i2c.write(_writeOpcode, data, 2); 00030 } 00031 00032 void MD03::stop(void) 00033 { 00034 char data[2]; 00035 00036 data[0] = MD03_COMMAND; 00037 data[1] = MD03_CMD_STOP; 00038 _i2c.write(_writeOpcode, data, 2); 00039 } 00040 00041 void MD03::move_forward(void) 00042 { 00043 char data[2]; 00044 00045 data[0] = MD03_COMMAND; 00046 data[1] = MD03_CMD_FORWARD; 00047 _i2c.write(_writeOpcode, data, 2); 00048 } 00049 00050 void MD03::move_reverse(void) 00051 { 00052 char data[2]; 00053 00054 data[0] = MD03_COMMAND; 00055 data[1] = MD03_CMD_REVERSE; 00056 _i2c.write(_writeOpcode, data, 2); 00057 } 00058 00059 char MD03::read_reg(int reg) 00060 { 00061 char data[2]; 00062 00063 data[0] = reg; 00064 _i2c.write(_writeOpcode, data, 1); 00065 _i2c.read(_readOpcode, data, 1); 00066 return data[0]; 00067 }
Generated on Wed Jul 27 2022 14:51:48 by
1.7.2