Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
14 views13 pages

Arduino2 - 2353237

The document contains code for controlling a robot's left and right motors, including functions for moving forward, backward, and turning. It also includes LED control based on serial input and a robot controller that interprets commands for movement. The code is structured with setup and loop functions for initializing pins and executing motor commands based on received serial characters.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views13 pages

Arduino2 - 2353237

The document contains code for controlling a robot's left and right motors, including functions for moving forward, backward, and turning. It also includes LED control based on serial input and a robot controller that interprets commands for movement. The code is structured with setup and loop functions for initializing pins and executing motor commands based on received serial characters.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

3.

1 Left Motor Controller


void setup() {
pinMode(8, OUTPUT);
pinMode(11, OUTPUT);
pinMode(9, OUTPUT);
}

void loop() {
digitalWrite(11, HIGH);
digitalWrite(8, LOW);
analogWrite(9, 240);
}

void left_speed(int speed) {


if (speed > 0) {
digitalWrite(8, LOW);
analogWrite(9, speed);
} else {
speed = -speed;
digitalWrite(8, HIGH);
analogWrite(9, speed);
}
}
3.2 Left Motor Testing
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}

void left_speed(int speed) {


if (speed > 0) {
digitalWrite(8, LOW);
analogWrite(9, speed);
} else {
speed = -speed;
digitalWrite(8, HIGH);
analogWrite(9, speed);
}
}

void loop() {
left_speed(100);
delay(2000);
left_speed(0);
delay(200);
left_speed(-100);
delay(2000);
left_speed(0);
delay(200);
}
3.3 Right Motor Testing
void right_speed(int speed) {
if (speed > 0) {
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
analogWrite(10, speed);
} else {
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
analogWrite(10, -speed);
}
}

void setup() {
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(10, OUTPUT);
}

void loop() {
right_speed(100);
delay(2000);
right_speed(0);
delay(2000);
right_speed(-100);
delay(2000);
right_speed(0);
delay(2000);
}
3.4 Full Motor Control Functions
const int leftMotorDirectionPin1 = 8;
const int leftMotorDirectionPin2 = 9;
const int leftMotorSpeedPin = 11;

const int rightMotorDirectionPin1 = 12;


const int rightMotorDirectionPin2 = 13;
const int rightMotorSpeedPin = 10;

void setup() {
pinMode(leftMotorDirectionPin1, OUTPUT);
pinMode(leftMotorDirectionPin2, OUTPUT);
pinMode(leftMotorSpeedPin, OUTPUT);

pinMode(rightMotorDirectionPin1, OUTPUT);
pinMode(rightMotorDirectionPin2, OUTPUT);
pinMode(rightMotorSpeedPin, OUTPUT);
}

void forward(int speed) {


left_speed(speed);
right_speed(speed);
}

void backward(int speed) {


left_speed(-speed);
right_speed(-speed);
}
void turnleft(int speed) {
left_speed(speed / 2);
right_speed(speed);
}

void turnright(int speed) {


left_speed(speed);
right_speed(speed / 2);
}

void left_speed(int speed) {


if (speed > 0) {
digitalWrite(leftMotorDirectionPin1, LOW);
digitalWrite(leftMotorDirectionPin2, HIGH);
analogWrite(leftMotorSpeedPin, speed);
} else {
digitalWrite(leftMotorDirectionPin1, HIGH);
digitalWrite(leftMotorDirectionPin2, LOW);
analogWrite(leftMotorSpeedPin, -speed);
}
}

void right_speed(int speed) {


if (speed > 0) {
digitalWrite(rightMotorDirectionPin1, LOW);
digitalWrite(rightMotorDirectionPin2, HIGH);
analogWrite(rightMotorSpeedPin, speed);
} else {
digitalWrite(rightMotorDirectionPin1, HIGH);
digitalWrite(rightMotorDirectionPin2, LOW);
analogWrite(rightMotorSpeedPin, -speed);
}
}

void loop() {
forward(100);
delay(2000);

forward(0);
delay(2000);

turnleft(100);
delay(2000);

forward(0);
delay(2000);

backward(100);
delay(2000);

forward(0);
delay(2000);

turnright(100);
delay(2000);

forward(0);
delay(2000);
}
3.5 Full Motor Testing
void loop() {
forward(100);
delay(2000);

forward(0);
delay(2000);

turnleft(100);
delay(2000);

forward(0);
delay(2000);

backward(100);
delay(2000);

forward(0);
delay(2000);

turnright(100);
delay(2000);
forward(0);
delay(2000);
}
4.1 LED Controller 1
void setup() {
Serial.begin(115200);
pinMode(13, OUTPUT);
}

void loop() {
if (Serial.available()) {
char receivedChar = Serial.read();
Serial.println(receivedChar);

if (receivedChar == 'O') {
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}
}
}
4.2 LED Controller 2
void setup() {
Serial.begin(115200);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available()) {
char receivedChar = Serial.read();

if (receivedChar == 'O') {
digitalWrite(13, HIGH);
} else if (receivedChar == 'F') {
digitalWrite(13, LOW);
}
}
}
4.3 Robot Controller
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
Serial.begin(9600);
}

void loop() {
if (Serial.available()) {
char commandrobot = Serial.read();
if (commandrobot == 'W') {
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
analogWrite(9, 250);
analogWrite(10, 250);
} else if (commandrobot == 'S') {
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
analogWrite(9, 250);
analogWrite(10, 250);
} else if (commandrobot == 'A') {
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
digitalWrite(13, LOW);
digitalWrite(12, LOW);
analogWrite(9, 250);
analogWrite(10, 0);
} else if (commandrobot == 'D') {
digitalWrite(8, LOW);
digitalWrite(11, LOW);
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
analogWrite(9, 0);
analogWrite(10, 250);
} else {
digitalWrite(8, LOW);
digitalWrite(11, LOW);
digitalWrite(13, LOW);
digitalWrite(12, LOW);
analogWrite(9, 0);
analogWrite(10, 0);
}
}
}
4.4 Robot Headlights
void setup() {
for (int i = 6; i <= 13; i++) {
pinMode(i, OUTPUT);
}
Serial.begin(115200);
}

void stop() {
for (int i = 6; i <= 13; i++) {
digitalWrite(i, LOW);
}
}

void forward(int speed) {


stop();
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
analogWrite(9, speed);
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
analogWrite(10, speed);
}

void backward(int speed) {


stop();
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
analogWrite(9, speed);
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
analogWrite(10, speed);
}

void turnleft(int speed) {


stop();
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
analogWrite(9, speed);
digitalWrite(6, HIGH);
}

void turnright(int speed) {


stop();
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
analogWrite(9, speed);
digitalWrite(7, HIGH);
}

void loop() {
if (Serial.available() > 0) {
char temp = Serial.read();
if (temp == 'W') forward(100);
else if (temp == 'S') backward(100);
else if (temp == 'A') turnleft(100);
else if (temp == 'D') turnright(100);
else stop();
}
}

You might also like