Components and supplies
Arduino USB Host Shield
Arduino Proto Shield
Arduino MotorShield Rev3
Arduino UNO
IR Sensor
Tools and machines
MECANUM WHEELS
DC Motor
IMU 6 DOF
Project description
Code
Slave 2
arduino
1// Start the I2C Bus as Slave 2 2 3#include <Wire.h> 4void setup() 5{ 6 Wire.begin(2); // Adress 2 7 Wire.onReceive(reciveEvent); 8 9 //Setup Channel A 10 pinMode(12, OUTPUT); //Initiates Motor Channel A pin 11 pinMode(9, OUTPUT); //Initiates Brake Channel A pin 12 13 //Setup Channel B 14 pinMode(13, OUTPUT); //Initiates Motor Channel A pin 15 pinMode(8, OUTPUT); //Initiates Brake Channel A pin 16} 17 18void loop() 19{ 20} 21 22void reciveEvent ( int howMany) 23{ 24 char c = Wire.read(); 25 if ( c == 'A') 26 { 27 28 //Motor A forward @ full speed 29 digitalWrite(12, HIGH); //Establishes forward direction of Channel A 30 digitalWrite(9, LOW); //Disengage the Brake for Channel A 31 analogWrite(3, 200); //Spins the motor on Channel A at full speed 32 33 //Motor B forward @ full speed 34 digitalWrite(13, HIGH); //Establishes forward direction of Channel B 35 digitalWrite(8, LOW); //Disengage the Brake for Channel B 36 analogWrite(11, 200); //Spins the motor on Channel B at full speed 37 38 } 39 else if ( c == 'B') 40 { 41 //Motor A backword @ full speed 42 digitalWrite(12, LOW); //Establishes backword direction of Channel A 43 digitalWrite(9, LOW); //Disengage the Brake for Channel A 44 analogWrite(3, 200); //Spins the motor on Channel A at full speed 45 46 //Motor B backword @ full speed 47 digitalWrite(13, LOW); //Establishes backword direction of Channel B 48 digitalWrite(8, LOW); //Disengage the Brake for Channel B 49 analogWrite(11, 200); //Spins the motor on Channel B at full speed 50 } 51 52 else if ( c == 'D') 53 { 54 //Motor A backword @ full speed 55 digitalWrite(12, LOW); //Establishes backword direction of Channel A 56 digitalWrite(9, LOW); //Disengage the Brake for Channel A 57 analogWrite(3, 200); //Spins the motor on Channel A at full speed 58 59 //Motor B backword @ full speed 60 digitalWrite(13, HIGH); //Establishes backword direction of Channel B 61 digitalWrite(8, LOW); //Disengage the Brake for Channel B 62 analogWrite(11, 200); //Spins the motor on Channel B at full speed 63 } 64 else if ( c == 'E') 65 { 66 //Motor A backword @ full speed 67 digitalWrite(12, HIGH); //Establishes backword direction of Channel A 68 digitalWrite(9, LOW); //Disengage the Brake for Channel A 69 analogWrite(3, 200); //Spins the motor on Channel A at full speed 70 71 //Motor B backword @ full speed 72 digitalWrite(13, LOW); //Establishes backword direction of Channel B 73 digitalWrite(8, LOW); //Disengage the Brake for Channel B 74 analogWrite(11, 200); //Spins the motor on Channel B at full speed 75 } 76 else if ( c == 'F') 77 { 78 //Motor A backword @ full speed 79 digitalWrite(12, HIGH); //Establishes backword direction of Channel A 80 digitalWrite(9, LOW); //Disengage the Brake for Channel A 81 analogWrite(3, 200); //Spins the motor on Channel A at full speed 82 83 //Motor B backword @ full speed 84 digitalWrite(13, LOW); //Establishes backword direction of Channel B 85 digitalWrite(8, LOW); //Disengage the Brake for Channel B 86 analogWrite(11, 200); //Spins the motor on Channel B at full speed 87 } 88 else if ( c == 'G') 89 { 90 //Motor A backword @ full speed 91 digitalWrite(12, LOW); //Establishes backword direction of Channel A 92 digitalWrite(9, LOW); //Disengage the Brake for Channel A 93 analogWrite(3, 200); //Spins the motor on Channel A at full speed 94 95 //Motor B backword @ full speed 96 digitalWrite(13, HIGH); //Establishes backword direction of Channel B 97 digitalWrite(8, LOW); //Disengage the Brake for Channel B 98 analogWrite(11, 200); //Spins the motor on Channel B at full speed 99 } 100 else if ( c == 'C') 101 { 102 103 digitalWrite(8, HIGH); //Engage the Brake for Channel B 104 digitalWrite(9, HIGH); //Engage the Brake for Channel A 105 106 } 107 108} 109
Slave 1
arduino
1// Start the I2C Bus as Slave 1 2 3#include <Wire.h> 4void setup() 5{ 6 Wire.begin(1); // Adress 1 7 Wire.onReceive(reciveEvent); 8 9 //Setup Channel A 10 pinMode(12, OUTPUT); //Initiates Motor Channel A pin 11 pinMode(9, OUTPUT); //Initiates Brake Channel A pin 12 13 //Setup Channel B 14 pinMode(13, OUTPUT); //Initiates Motor Channel A pin 15 pinMode(8, OUTPUT); //Initiates Brake Channel A pin 16} 17 18void loop() 19{ 20} 21 22void reciveEvent ( int howMany) 23{ 24 char c = Wire.read(); 25 if ( c == 'A') 26 { 27 28 //Motor A forward @ full speed 29 digitalWrite(12, HIGH); //Establishes forward direction of Channel A 30 digitalWrite(9, LOW); //Disengage the Brake for Channel A 31 analogWrite(3, 200); //Spins the motor on Channel A at full speed 32 33 //Motor B forward @ full speed 34 digitalWrite(13, HIGH); //Establishes forward direction of Channel B 35 digitalWrite(8, LOW); //Disengage the Brake for Channel B 36 analogWrite(11, 200); //Spins the motor on Channel B at full speed 37 38 } 39 else if ( c == 'B') 40 { 41 //Motor A backword @ full speed 42 digitalWrite(12, LOW); //Establishes backword direction of Channel A 43 digitalWrite(9, LOW); //Disengage the Brake for Channel A 44 analogWrite(3, 200); //Spins the motor on Channel A at full speed 45 46 //Motor B backword @ full speed 47 digitalWrite(13, LOW); //Establishes backword direction of Channel B 48 digitalWrite(8, LOW); //Disengage the Brake for Channel B 49 analogWrite(11, 200); //Spins the motor on Channel B at full speed 50 } 51 52 else if ( c == 'D') 53 { 54 //Motor A backword @ full speed 55 digitalWrite(12, LOW); //Establishes backword direction of Channel A 56 digitalWrite(9, LOW); //Disengage the Brake for Channel A 57 analogWrite(3, 200); //Spins the motor on Channel A at full speed 58 59 //Motor B backword @ full speed 60 digitalWrite(13, HIGH); //Establishes backword direction of Channel B 61 digitalWrite(8, LOW); //Disengage the Brake for Channel B 62 analogWrite(11, 200); //Spins the motor on Channel B at full speed 63 } 64 65 else if ( c == 'E') 66 { 67 //Motor A backword @ full speed 68 digitalWrite(12, HIGH); //Establishes backword direction of Channel A 69 digitalWrite(9, LOW); //Disengage the Brake for Channel A 70 analogWrite(3, 200); //Spins the motor on Channel A at full speed 71 72 //Motor B backword @ full speed 73 digitalWrite(13, LOW); //Establishes backword direction of Channel B 74 digitalWrite(8, LOW); //Disengage the Brake for Channel B 75 analogWrite(11, 200); //Spins the motor on Channel B at full speed 76 } 77 else if ( c == 'F') 78 { 79 //Motor A backword @ full speed 80 digitalWrite(12, LOW); //Establishes backword direction of Channel A 81 digitalWrite(9, LOW); //Disengage the Brake for Channel A 82 analogWrite(3, 200); //Spins the motor on Channel A at full speed 83 84 //Motor B backword @ full speed 85 digitalWrite(13, HIGH); //Establishes backword direction of Channel B 86 digitalWrite(8, LOW); //Disengage the Brake for Channel B 87 analogWrite(11, 200); //Spins the motor on Channel B at full speed 88 } 89 else if ( c == 'G') 90 { 91 //Motor A backword @ full speed 92 digitalWrite(12, HIGH); //Establishes backword direction of Channel A 93 digitalWrite(9, LOW); //Disengage the Brake for Channel A 94 analogWrite(3, 200); //Spins the motor on Channel A at full speed 95 96 //Motor B backword @ full speed 97 digitalWrite(13, LOW); //Establishes backword direction of Channel B 98 digitalWrite(8, LOW); //Disengage the Brake for Channel B 99 analogWrite(11, 200); //Spins the motor on Channel B at full speed 100 } 101 else if ( c == 'C') 102 { 103 104 digitalWrite(8, HIGH); //Engage the Brake for Channel B 105 digitalWrite(9, HIGH); //Engage the Brake for Channel A 106 107 } 108 109} 110
Master
arduino
1//This sketch created by Dimitris Kagioulis.You can modify it at your need. 2//Library belongs to Kristian Sloth Lauszus 3 4#include <PS3BT.h> 5#include <Wire.h> 6 7 8USB Usb; 9BTD Btd(&Usb); 10PS3BT PS3(&Btd); 11 12int sensor1 = A0; 13int sensor2 = A1; 14int sensor3 = A2; 15 16void setup() { 17 18 Serial.begin(9600); 19 Wire.begin(); // 0 adress of Master 20 21 if (Usb.Init() == -1) { 22 Serial.print(F("\ \ 23OSC did not start")); 24 while (1); //halt 25 } 26 27 pinMode(sensor1, INPUT); 28 pinMode(sensor2, INPUT); 29 pinMode(sensor3, INPUT); 30 31} 32 33void loop() 34{ 35 36 long safety1 = digitalRead(sensor1); 37 long safety2 = digitalRead(sensor2); 38 long safety3 = digitalRead(sensor3); 39 40 Usb.Task(); 41 42 char c = Serial.read(); 43 44 45 46 47 if (PS3.PS3Connected || PS3.PS3NavigationConnected) { 48 49 if (PS3.getButtonPress(UP)) { 50 if(safety1 == LOW){ 51 Wire.beginTransmission(1); // transmit to device #1 52 Wire.write( 'A' ); 53 Wire.endTransmission(); // stop transmitting 54 55 Wire.beginTransmission(2); // transmit to device #2 56 Wire.write( 'A' ); 57 Wire.endTransmission(); // stop transmitting 58 } 59 else if (safety1 == HIGH){ 60 Wire.beginTransmission(1); // transmit to device #1 61 Wire.write( 'C' ); 62 Wire.endTransmission(); // stop transmitting 63 64 Wire.beginTransmission(2); // transmit to device #2 65 Wire.write( 'C' ); 66 Wire.endTransmission(); // stop transmitting 67 } 68 } 69 else if (PS3.getButtonPress(DOWN)) { 70 Wire.beginTransmission(1); // transmit to device #1 71 Wire.write( 'B' ); 72 Wire.endTransmission(); // stop transmitting 73 74 Wire.beginTransmission(2); // transmit to device #2 75 Wire.write( 'B' ); 76 Wire.endTransmission(); // stop transmitting 77 78 } 79 80 else if (PS3.getButtonPress(RIGHT)) { 81 if(safety2 == LOW){ 82 Wire.beginTransmission(1); // transmit to device #1 83 Wire.write( 'D' ); 84 Wire.endTransmission(); // stop transmitting 85 86 Wire.beginTransmission(2); // transmit to device #2 87 Wire.write( 'D' ); 88 Wire.endTransmission(); // stop transmitting 89 } 90 else if (safety2 == HIGH){ 91 Wire.beginTransmission(1); // transmit to device #1 92 Wire.write( 'C' ); 93 Wire.endTransmission(); // stop transmitting 94 95 Wire.beginTransmission(2); // transmit to device #2 96 Wire.write( 'C' ); 97 Wire.endTransmission(); // stop transmitting 98 } 99 } 100 else if (PS3.getButtonPress(LEFT)) { 101 if(safety3 == LOW){ 102 Wire.beginTransmission(1); // transmit to device #1 103 Wire.write( 'E' ); 104 Wire.endTransmission(); // stop transmitting 105 106 Wire.beginTransmission(2); // transmit to device #2 107 Wire.write( 'E' ); 108 Wire.endTransmission(); // stop transmitting 109 } 110 else if (safety3 == HIGH){ 111 Wire.beginTransmission(1); // transmit to device #1 112 Wire.write( 'C' ); 113 Wire.endTransmission(); // stop transmitting 114 115 Wire.beginTransmission(2); // transmit to device #2 116 Wire.write( 'C' ); 117 Wire.endTransmission(); // stop transmitting 118 } 119 } 120 else if (PS3.getButtonPress(CIRCLE)) { 121 122 Wire.beginTransmission(1); // transmit to device #1 123 Wire.write( 'F' ); 124 Wire.endTransmission(); // stop transmitting 125 126 Wire.beginTransmission(2); // transmit to device #2 127 Wire.write( 'F' ); 128 Wire.endTransmission(); // stop transmitting 129 130 } 131 else if (PS3.getButtonPress(SQUARE)) { 132 133 Wire.beginTransmission(1); // transmit to device #1 134 Wire.write( 'G' ); 135 Wire.endTransmission(); // stop transmitting 136 137 Wire.beginTransmission(2); // transmit to device #2 138 Wire.write( 'G' ); 139 Wire.endTransmission(); // stop transmitting 140 } 141 else 142 { 143 Wire.beginTransmission(1); // transmit to device #1 144 Wire.write( 'C' ); 145 Wire.endTransmission(); // stop transmitting 146 147 Wire.beginTransmission(2); // transmit to device #2 148 Wire.write( 'C' ); 149 Wire.endTransmission(); // stop transmitting 150 } 151 152 153 if (PS3.PS3Connected) { 154 155 if (PS3.getButtonClick(PS)) { 156 PS3.disconnect(); 157 } 158 } 159 160 } 161 162 } 163 164 165 166
Slave 1
arduino
1// Start the I2C Bus as Slave 1 2 3#include <Wire.h> 4void setup() 5 6{ 7 Wire.begin(1); // Adress 1 8 Wire.onReceive(reciveEvent); 9 10 11 //Setup Channel A 12 pinMode(12, OUTPUT); //Initiates Motor Channel A pin 13 14 pinMode(9, OUTPUT); //Initiates Brake Channel A pin 15 16 //Setup Channel B 17 18 pinMode(13, OUTPUT); //Initiates Motor Channel A pin 19 pinMode(8, OUTPUT); 20 //Initiates Brake Channel A pin 21} 22 23void loop() 24{ 25} 26 27void 28 reciveEvent ( int howMany) 29{ 30 char c = Wire.read(); 31 if ( c == 'A') 32 33 { 34 35 //Motor A forward @ full speed 36 digitalWrite(12, HIGH); //Establishes 37 forward direction of Channel A 38 digitalWrite(9, LOW); //Disengage the Brake 39 for Channel A 40 analogWrite(3, 200); //Spins the motor on Channel A at full 41 speed 42 43 //Motor B forward @ full speed 44 digitalWrite(13, HIGH); //Establishes 45 forward direction of Channel B 46 digitalWrite(8, LOW); //Disengage the Brake 47 for Channel B 48 analogWrite(11, 200); //Spins the motor on Channel B at full 49 speed 50 51 } 52 else if ( c == 'B') 53 { 54 //Motor A backword @ full 55 speed 56 digitalWrite(12, LOW); //Establishes backword direction of Channel A 57 58 digitalWrite(9, LOW); //Disengage the Brake for Channel A 59 analogWrite(3, 60 200); //Spins the motor on Channel A at full speed 61 62 //Motor B backword 63 @ full speed 64 digitalWrite(13, LOW); //Establishes backword direction of Channel 65 B 66 digitalWrite(8, LOW); //Disengage the Brake for Channel B 67 analogWrite(11, 68 200); //Spins the motor on Channel B at full speed 69 } 70 71 else if ( 72 c == 'D') 73 { 74 //Motor A backword @ full speed 75 digitalWrite(12, LOW); 76 //Establishes backword direction of Channel A 77 digitalWrite(9, LOW); //Disengage 78 the Brake for Channel A 79 analogWrite(3, 200); //Spins the motor on Channel 80 A at full speed 81 82 //Motor B backword @ full speed 83 digitalWrite(13, HIGH); 84 //Establishes backword direction of Channel B 85 digitalWrite(8, LOW); //Disengage 86 the Brake for Channel B 87 analogWrite(11, 200); //Spins the motor on Channel 88 B at full speed 89 } 90 91 else if ( c == 'E') 92 { 93 //Motor A backword 94 @ full speed 95 digitalWrite(12, HIGH); //Establishes backword direction of Channel 96 A 97 digitalWrite(9, LOW); //Disengage the Brake for Channel A 98 analogWrite(3, 99 200); //Spins the motor on Channel A at full speed 100 101 //Motor B backword 102 @ full speed 103 digitalWrite(13, LOW); //Establishes backword direction of Channel 104 B 105 digitalWrite(8, LOW); //Disengage the Brake for Channel B 106 analogWrite(11, 107 200); //Spins the motor on Channel B at full speed 108 } 109 else if ( c == 110 'F') 111 { 112 //Motor A backword @ full speed 113 digitalWrite(12, LOW); //Establishes 114 backword direction of Channel A 115 digitalWrite(9, LOW); //Disengage the Brake 116 for Channel A 117 analogWrite(3, 200); //Spins the motor on Channel A at full 118 speed 119 120 //Motor B backword @ full speed 121 digitalWrite(13, HIGH); //Establishes 122 backword direction of Channel B 123 digitalWrite(8, LOW); //Disengage the Brake 124 for Channel B 125 analogWrite(11, 200); //Spins the motor on Channel B at full 126 speed 127 } 128 else if ( c == 'G') 129 { 130 //Motor A backword @ full speed 131 132 digitalWrite(12, HIGH); //Establishes backword direction of Channel A 133 digitalWrite(9, 134 LOW); //Disengage the Brake for Channel A 135 analogWrite(3, 200); //Spins 136 the motor on Channel A at full speed 137 138 //Motor B backword @ full speed 139 140 digitalWrite(13, LOW); //Establishes backword direction of Channel B 141 digitalWrite(8, 142 LOW); //Disengage the Brake for Channel B 143 analogWrite(11, 200); //Spins 144 the motor on Channel B at full speed 145 } 146 else if ( c == 'C') 147 { 148 149 150 digitalWrite(8, HIGH); //Engage the Brake for Channel B 151 digitalWrite(9, 152 HIGH); //Engage the Brake for Channel A 153 154 } 155 156} 157
Master
arduino
1//This sketch created by Dimitris Kagioulis.You can modify it at your 2 need. 3//Library belongs to Kristian Sloth Lauszus 4 5#include <PS3BT.h> 6#include 7 <Wire.h> 8 9 10USB Usb; 11BTD Btd(&Usb); 12PS3BT PS3(&Btd); 13 14int sensor1 15 = A0; 16int sensor2 = A1; 17int sensor3 = A2; 18 19void setup() { 20 21 Serial.begin(9600); 22 23 Wire.begin(); // 0 adress of Master 24 25 if (Usb.Init() == -1) { 26 Serial.print(F("\ \ 27OSC 28 did not start")); 29 while (1); //halt 30 } 31 32 pinMode(sensor1, INPUT); 33 34 pinMode(sensor2, INPUT); 35 pinMode(sensor3, INPUT); 36 37} 38 39void loop() 40 41{ 42 43 long safety1 = digitalRead(sensor1); 44 long safety2 = digitalRead(sensor2); 45 46 long safety3 = digitalRead(sensor3); 47 48 Usb.Task(); 49 50 char c 51 = Serial.read(); 52 53 54 55 56 if (PS3.PS3Connected || PS3.PS3NavigationConnected) 57 { 58 59 if (PS3.getButtonPress(UP)) { 60 if(safety1 == LOW){ 61 Wire.beginTransmission(1); 62 // transmit to device #1 63 Wire.write( 'A' ); 64 Wire.endTransmission(); 65 // stop transmitting 66 67 Wire.beginTransmission(2); // transmit to device 68 #2 69 Wire.write( 'A' ); 70 Wire.endTransmission(); // stop 71 transmitting 72 } 73 else if (safety1 == HIGH){ 74 Wire.beginTransmission(1); 75 // transmit to device #1 76 Wire.write( 'C' ); 77 Wire.endTransmission(); 78 // stop transmitting 79 80 Wire.beginTransmission(2); // transmit to device 81 #2 82 Wire.write( 'C' ); 83 Wire.endTransmission(); // stop 84 transmitting 85 } 86 } 87 else if (PS3.getButtonPress(DOWN)) { 88 Wire.beginTransmission(1); 89 // transmit to device #1 90 Wire.write( 'B' ); 91 Wire.endTransmission(); 92 // stop transmitting 93 94 Wire.beginTransmission(2); // transmit to device 95 #2 96 Wire.write( 'B' ); 97 Wire.endTransmission(); // stop 98 transmitting 99 100 } 101 102 else if (PS3.getButtonPress(RIGHT)) 103 { 104 if(safety2 == LOW){ 105 Wire.beginTransmission(1); // transmit to 106 device #1 107 Wire.write( 'D' ); 108 Wire.endTransmission(); // 109 stop transmitting 110 111 Wire.beginTransmission(2); // transmit to device #2 112 113 Wire.write( 'D' ); 114 Wire.endTransmission(); // stop transmitting 115 116 } 117 else if (safety2 == HIGH){ 118 Wire.beginTransmission(1); 119 // transmit to device #1 120 Wire.write( 'C' ); 121 Wire.endTransmission(); 122 // stop transmitting 123 124 Wire.beginTransmission(2); // transmit to device 125 #2 126 Wire.write( 'C' ); 127 Wire.endTransmission(); // stop 128 transmitting 129 } 130 } 131 else if (PS3.getButtonPress(LEFT)) 132 { 133 if(safety3 == LOW){ 134 Wire.beginTransmission(1); // transmit 135 to device #1 136 Wire.write( 'E' ); 137 Wire.endTransmission(); 138 // stop transmitting 139 140 Wire.beginTransmission(2); // transmit to device 141 #2 142 Wire.write( 'E' ); 143 Wire.endTransmission(); // stop 144 transmitting 145 } 146 else if (safety3 == HIGH){ 147 Wire.beginTransmission(1); 148 // transmit to device #1 149 Wire.write( 'C' ); 150 Wire.endTransmission(); 151 // stop transmitting 152 153 Wire.beginTransmission(2); // transmit to device 154 #2 155 Wire.write( 'C' ); 156 Wire.endTransmission(); // stop 157 transmitting 158 } 159 } 160 else if (PS3.getButtonPress(CIRCLE)) 161 { 162 163 Wire.beginTransmission(1); // transmit to device #1 164 Wire.write( 165 'F' ); 166 Wire.endTransmission(); // stop transmitting 167 168 169 Wire.beginTransmission(2); // transmit to device #2 170 Wire.write( 'F' ); 171 172 Wire.endTransmission(); // stop transmitting 173 174 175 } 176 else if (PS3.getButtonPress(SQUARE)) { 177 178 Wire.beginTransmission(1); 179 // transmit to device #1 180 Wire.write( 'G' ); 181 Wire.endTransmission(); 182 // stop transmitting 183 184 Wire.beginTransmission(2); // transmit to device 185 #2 186 Wire.write( 'G' ); 187 Wire.endTransmission(); // stop 188 transmitting 189 } 190 else 191 { 192 Wire.beginTransmission(1); // transmit 193 to device #1 194 Wire.write( 'C' ); 195 Wire.endTransmission(); 196 // stop transmitting 197 198 Wire.beginTransmission(2); // transmit to device 199 #2 200 Wire.write( 'C' ); 201 Wire.endTransmission(); // stop 202 transmitting 203 } 204 205 206 if (PS3.PS3Connected) { 207 208 if (PS3.getButtonClick(PS)) 209 { 210 PS3.disconnect(); 211 } 212 } 213 214 } 215 216 } 217 218 219 220 221
Slave 2
arduino
1// Start the I2C Bus as Slave 2 2 3#include <Wire.h> 4void setup() 5 6{ 7 Wire.begin(2); // Adress 2 8 Wire.onReceive(reciveEvent); 9 10 11 //Setup Channel A 12 pinMode(12, OUTPUT); //Initiates Motor Channel A pin 13 14 pinMode(9, OUTPUT); //Initiates Brake Channel A pin 15 16 //Setup Channel B 17 18 pinMode(13, OUTPUT); //Initiates Motor Channel A pin 19 pinMode(8, OUTPUT); 20 //Initiates Brake Channel A pin 21} 22 23void loop() 24{ 25} 26 27void 28 reciveEvent ( int howMany) 29{ 30 char c = Wire.read(); 31 if ( c == 'A') 32 33 { 34 35 //Motor A forward @ full speed 36 digitalWrite(12, HIGH); //Establishes 37 forward direction of Channel A 38 digitalWrite(9, LOW); //Disengage the Brake 39 for Channel A 40 analogWrite(3, 200); //Spins the motor on Channel A at full 41 speed 42 43 //Motor B forward @ full speed 44 digitalWrite(13, HIGH); //Establishes 45 forward direction of Channel B 46 digitalWrite(8, LOW); //Disengage the Brake 47 for Channel B 48 analogWrite(11, 200); //Spins the motor on Channel B at full 49 speed 50 51 } 52 else if ( c == 'B') 53 { 54 //Motor A backword @ full 55 speed 56 digitalWrite(12, LOW); //Establishes backword direction of Channel A 57 58 digitalWrite(9, LOW); //Disengage the Brake for Channel A 59 analogWrite(3, 60 200); //Spins the motor on Channel A at full speed 61 62 //Motor B backword 63 @ full speed 64 digitalWrite(13, LOW); //Establishes backword direction of Channel 65 B 66 digitalWrite(8, LOW); //Disengage the Brake for Channel B 67 analogWrite(11, 68 200); //Spins the motor on Channel B at full speed 69 } 70 71 else if ( 72 c == 'D') 73 { 74 //Motor A backword @ full speed 75 digitalWrite(12, LOW); 76 //Establishes backword direction of Channel A 77 digitalWrite(9, LOW); //Disengage 78 the Brake for Channel A 79 analogWrite(3, 200); //Spins the motor on Channel 80 A at full speed 81 82 //Motor B backword @ full speed 83 digitalWrite(13, HIGH); 84 //Establishes backword direction of Channel B 85 digitalWrite(8, LOW); //Disengage 86 the Brake for Channel B 87 analogWrite(11, 200); //Spins the motor on Channel 88 B at full speed 89 } 90 else if ( c == 'E') 91 { 92 //Motor A backword 93 @ full speed 94 digitalWrite(12, HIGH); //Establishes backword direction of Channel 95 A 96 digitalWrite(9, LOW); //Disengage the Brake for Channel A 97 analogWrite(3, 98 200); //Spins the motor on Channel A at full speed 99 100 //Motor B backword 101 @ full speed 102 digitalWrite(13, LOW); //Establishes backword direction of Channel 103 B 104 digitalWrite(8, LOW); //Disengage the Brake for Channel B 105 analogWrite(11, 106 200); //Spins the motor on Channel B at full speed 107 } 108 else if ( c == 109 'F') 110 { 111 //Motor A backword @ full speed 112 digitalWrite(12, HIGH); //Establishes 113 backword direction of Channel A 114 digitalWrite(9, LOW); //Disengage the Brake 115 for Channel A 116 analogWrite(3, 200); //Spins the motor on Channel A at full 117 speed 118 119 //Motor B backword @ full speed 120 digitalWrite(13, LOW); //Establishes 121 backword direction of Channel B 122 digitalWrite(8, LOW); //Disengage the Brake 123 for Channel B 124 analogWrite(11, 200); //Spins the motor on Channel B at full 125 speed 126 } 127 else if ( c == 'G') 128 { 129 //Motor A backword @ full speed 130 131 digitalWrite(12, LOW); //Establishes backword direction of Channel A 132 digitalWrite(9, 133 LOW); //Disengage the Brake for Channel A 134 analogWrite(3, 200); //Spins 135 the motor on Channel A at full speed 136 137 //Motor B backword @ full speed 138 139 digitalWrite(13, HIGH); //Establishes backword direction of Channel B 140 digitalWrite(8, 141 LOW); //Disengage the Brake for Channel B 142 analogWrite(11, 200); //Spins 143 the motor on Channel B at full speed 144 } 145 else if ( c == 'C') 146 { 147 148 149 digitalWrite(8, HIGH); //Engage the Brake for Channel B 150 digitalWrite(9, 151 HIGH); //Engage the Brake for Channel A 152 153 } 154 155} 156
Downloadable files
I2C INTERFERANCE
Master and Slave
I2C INTERFERANCE
I2C INTERFERANCE
Master and Slave
I2C INTERFERANCE
Comments