Full name: Phan Chí Vỹ
Student’s ID: 2252938
3. Motor Controller
3.1 Left Motor Controller
void setup(){
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(11, OUTPUT);
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
analogWrite(9, 100);
void left_speed ( int speed )
// TODO : Implement your code here
if( speed > 0)
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
analogWrite(9, speed);
else
speed = 0 - speed;
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
analogWrite(9, speed);
}
Full name: Phan Chí Vỹ
Student’s ID: 2252938
void loop(){
for(int i = 0; i < 200; i+=20){
analogWrite(9, i);
delay(1000);
3.2 Left Motor Testing
void setup(){
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(11, OUTPUT);
void left_speed ( int speed )
// TODO : Implement your code here
if( speed > 0)
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
analogWrite(9, speed);
else
speed = 0 - speed;
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
Full name: Phan Chí Vỹ
Student’s ID: 2252938
analogWrite(9, speed);
void loop()
left_speed(100);
delay(2000);
left_speed(0);
delay(2000);
left_speed(-100);
delay(2000);
left_speed(0);
delay(2000);
3.3 Right Motor Testing
void setup(){
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
void left_speed ( int speed )
{
Full name: Phan Chí Vỹ
Student’s ID: 2252938
// TODO : Implement your code here
if( speed > 0)
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
analogWrite(9, speed);
else
speed = 0 - speed;
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
analogWrite(9, speed);
void right_speed ( int speed )
// TODO : Implement your code here
if( speed > 0)
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
analogWrite(10, speed);
else
speed = 0 - speed;
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
Full name: Phan Chí Vỹ
Student’s ID: 2252938
analogWrite(10, speed);
void loop()
right_speed(100);
delay(2000);
right_speed(0);
delay(2000);
right_speed(-100);
delay(2000);
right_speed(0);
delay(2000);
right_speed(300);
delay(2000);
If analogWrite(10, 300) was used then the rpm would be about 45 which is 300 minus 255 ( the signal is
the maximum voltage)
3.4 Full Motor Control Functions
void setup(){
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
Full name: Phan Chí Vỹ
Student’s ID: 2252938
}
void left_speed ( int speed )
// TODO : Implement your code here
if( speed > 0)
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
analogWrite(9, speed);
else
speed = 0 - speed;
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
analogWrite(9, speed);
void right_speed ( int speed )
// TODO : Implement your code here
if( speed > 0)
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
analogWrite(10, speed);
else
Full name: Phan Chí Vỹ
Student’s ID: 2252938
{
speed = 0 - speed;
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
analogWrite(10, speed);
void forward (int speed ) {
// TODO
left_speed(speed);
right_speed(speed);
void backward (int speed ) {
// TODO
left_speed(0 - speed);
right_speed(0 - speed);
void turnleft (int speed ) {
// TODO
right_speed(speed);
left_speed(0);
void turnright (int speed ) {
// TODO
left_speed(speed);
Full name: Phan Chí Vỹ
Student’s ID: 2252938
right_speed(0);
3.5 Full Motor Testing
void setup(){
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
void left_speed ( int speed )
// TODO : Implement your code here
if( speed > 0)
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
analogWrite(9, speed);
else
speed = 0 - speed;
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
analogWrite(9, speed);
}
Full name: Phan Chí Vỹ
Student’s ID: 2252938
}
void right_speed ( int speed )
// TODO : Implement your code here
if( speed > 0)
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
analogWrite(10, speed);
else
speed = 0 - speed;
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
analogWrite(10, speed);
void forward (int speed ) {
// TODO
left_speed(speed);
right_speed(speed);
void backward (int speed ) {
// TODO
left_speed(0 - speed);
Full name: Phan Chí Vỹ
Student’s ID: 2252938
right_speed(0 - speed);
void turnleft (int speed ) {
// TODO
right_speed(speed);
left_speed(0);
void turnright (int speed ) {
// TODO
left_speed(speed);
right_speed(0);
void loop()
forward(100);
delay(2000);
turnright(100);
delay(2000);
backward(100);
delay(2000);
turnleft(50);
delay(2000);
forward(300);
delay(4000);
4.1 LED Controller 1
void setup(){
Full name: Phan Chí Vỹ
Student’s ID: 2252938
pinMode(13, OUTPUT);
[Link](115200);
[Link]("Hello TinkerCad");
void loop()
if([Link]())
char temp = [Link]();
if(temp == 'O')
digitalWrite(13, HIGH);
else
digitalWrite(13, LOW);
4.2 LED Controller 2
void setup(){
pinMode(13, OUTPUT);
[Link](115200);
[Link]("Hello TinkerCad");
void loop()
if([Link]())
{
Full name: Phan Chí Vỹ
Student’s ID: 2252938
char temp = [Link]();
if(temp == 'O')
digitalWrite(13, HIGH);
if(temp == ‘F’)
digitalWrite(13, LOW);
4.3 Robot Controller
void setup(){
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
[Link](115200);
[Link]("Hello TinkerCad");
void left_speed ( int speed )
// TODO : Implement your code here
if( speed > 0)
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
analogWrite(9, speed);
else
Full name: Phan Chí Vỹ
Student’s ID: 2252938
{
speed = 0 - speed;
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
analogWrite(9, speed);
void right_speed ( int speed )
// TODO : Implement your code here
if( speed > 0)
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
analogWrite(10, speed);
else
speed = 0 - speed;
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
analogWrite(10, speed);
void forward (int speed ) {
// TODO
left_speed(speed);
Full name: Phan Chí Vỹ
Student’s ID: 2252938
right_speed(speed);
void backward (int speed ) {
// TODO
left_speed(0 - speed);
right_speed(0 - speed);
void turnleft (int speed ) {
// TODO
right_speed(speed);
left_speed(0);
void turnright (int speed ) {
// TODO
left_speed(speed);
right_speed(0);
void loop()
if([Link]())
char temp = [Link]();
if(temp == 'W')
forward(100);
else if(temp == 'S')
Full name: Phan Chí Vỹ
Student’s ID: 2252938
backward(100);
else if(temp == 'A')
turnleft(100);
else if(temp == 'D')
turnright(100);
else
left_speed(0);
right_speed(0);
4.4 Robot Headlights
void setup(){
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
[Link](115200);
[Link]("Hello TinkerCad");
void left_speed ( int speed )
{
Full name: Phan Chí Vỹ
Student’s ID: 2252938
// TODO : Implement your code here
if( speed > 0)
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
analogWrite(9, speed);
else
speed = 0 - speed;
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
analogWrite(9, speed);
void right_speed ( int speed )
// TODO : Implement your code here
if( speed > 0)
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
analogWrite(10, speed);
else
speed = 0 - speed;
digitalWrite(13, LOW);
Full name: Phan Chí Vỹ
Student’s ID: 2252938
digitalWrite(12, HIGH);
analogWrite(10, speed);
void forward (int speed ) {
// TODO
left_speed(speed);
right_speed(speed);
void backward (int speed ) {
// TODO
left_speed(0 - speed);
right_speed(0 - speed);
void turnleft (int speed ) {
// TODO
right_speed(speed);
left_speed(0);
void turnright (int speed ) {
// TODO
left_speed(speed);
right_speed(0);
}
Full name: Phan Chí Vỹ
Student’s ID: 2252938
void loop()
if([Link]())
char temp = [Link]();
digitalWrite(5, LOW);
digitalWrite(6, LOW);
if(temp == 'W')
forward(100);
else if(temp == 'S')
backward(100);
else if(temp == 'A')
turnleft(100);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
else if(temp == 'D')
turnright(100);
digitalWrite(6, HIGH);
digitalWrite(5, LOW);
else
left_speed(0);
right_speed(0);
}
Full name: Phan Chí Vỹ
Student’s ID: 2252938
}