Student ID: 2252333
Full name: Phạm Nguyễn Hải Khánh
Section 3.1: Left motor controller
void setup() {
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
}
void left_motor(int speed){
if (speed>0) {
analogWrite(9,speed);
digitalWrite(10,LOW);
}
else {
digitalWrite(9,LOW);
analogWrite(10,0-speed);
}
}
void loop() {
left_motor(250);
delay(2000);
left_motor(0);
delay(2000);
}
Section 3.2: Left motor testing
void setup() {
// put your setup code here, to run once:
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}
void left_motor(int speed){
if (speed>0) {
analogWrite(9,speed);
digitalWrite(10,LOW);
}
else {
digitalWrite(9,LOW);
analogWrite(10,0-speed);
}
}
void loop() {
// put your main code here, to run repeatedly:
left_motor(250);
delay(2000);
left_motor(0);
delay(2000);
left_motor(-250);
delay(2000);
left_motor(0);
delay(2000);
}
Section 3.3: Right motor testing
void setup() {
// put your setup code here, to run once:
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}
void right_motor(int speed){
if (speed>0) {
analogWrite(11,speed);
digitalWrite(12,LOW);
}
else {
digitalWrite(11,LOW);
analogWrite(12,0-speed);
}
}
void loop() {
// put your main code here, to run repeatedly:
right_motor(250);
delay(2000);
right_motor(0);
delay(2000);
right_motor(-250);
delay(2000);
right_motor(0);
delay(2000);
}
Section 3.4 &; 3.5: Full motor testing
void setup() {
// put your setup code here, to run once:
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}
void left_motor(int speed){
if (speed>0) {
analogWrite(9,speed);
digitalWrite(10,LOW);
}
else {
digitalWrite(9,LOW);
analogWrite(10,0-speed);
}
}
void right_motor(int speed){
if (speed>0) {
analogWrite(11,speed);
digitalWrite(12,LOW);
}
else {
digitalWrite(11,LOW);
analogWrite(12,0-speed);
}
}
void turn_left(int speed){
}
void forward(int speed){
left_motor(250);
right_motor(250);
}
void backward(int speed){
left_motor(-250);
right_motor(-250);
}
void turn_left(){
left_motor(0);
right_motor(250);
delay(1500);
right_motor(0);
}
void turn_right(){
left_motor(250);
right_motor(0);
delay(1500);
left_motor(0);
}
void loop() {
// put your main code here, to run repeatedly:
forward(200);
delay(2000);
backward(200);
delay(2000);
turn_left();
turn_right();
}
Section: 4.1 LED Controller 1
void setup() {
pinMode(13,OUTPUT);
[Link] (9600) ;
[Link] (" Hello TinkerCad ") ;
}
void loop() {
// put your main code here, to run repeatedly:
if( Serial . available () ) {
String temp = Serial . readString () ;
Serial . print ("I received : ") ;
Serial . println ( temp );
if (temp=="O\n") {
digitalWrite(13,HIGH);
}
else digitalWrite(13,LOW);
}
}
Section: 4.2 LED Controller 2
void setup() {
pinMode(13,OUTPUT);
[Link] (9600) ;
[Link] (" Hello TinkerCad ") ;
}
void loop() {
// put your main code here, to run repeatedly:
if( Serial . available () ) {
String temp = Serial . readString () ;
Serial . print ("I received : ") ;
Serial . println ( temp );
if (temp=="O\n") {
digitalWrite(13,HIGH);
}
else if (temp=="F\n") digitalWrite(13,LOW);
}
}
Section: 4.3 Robot Controller
void setup() {
// put your setup code here, to run once:
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
[Link] (9600) ;
[Link] (" Hello TinkerCad ") ;
}
void left_motor(int speed){
if (speed>0) {
analogWrite(9,speed);
digitalWrite(10,LOW);
}
else {
digitalWrite(9,LOW);
analogWrite(10,0-speed);
}
}
void right_motor(int speed){
if (speed>0) {
analogWrite(11,speed);
digitalWrite(12,LOW);
}
else {
digitalWrite(11,LOW);
analogWrite(12,0-speed);
}
}
void turn_left(int speed){
}
void forward(int speed){
left_motor(250);
right_motor(250);
}
void backward(int speed){
left_motor(-250);
right_motor(-250);
}
void turn_left(){
left_motor(0);
right_motor(250);
delay(1500);
right_motor(0);
}
void turn_right(){
left_motor(250);
right_motor(0);
delay(1500);
left_motor(0);
}
void loop() {
// put your main code here, to run repeatedly:
if( Serial . available () ) {
String temp = Serial . readString () ;
Serial . print ("I received : ") ;
Serial . println ( temp );
if (temp=="W\n") {
forward(250);
}
else if (temp=="S\n") backward(250);
else if (temp=="A\n") turn_left();
else if (temp=="D\n") turn_right();
}
}
Section: 4.4 Robot Headlights
void setup() {
// put your setup code here, to run once:
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
[Link] (9600) ;
[Link] (" Hello TinkerCad ") ;
}
void left_motor(int speed){
if (speed>0) {
analogWrite(9,speed);
digitalWrite(10,LOW);
}
else {
digitalWrite(9,LOW);
analogWrite(10,0-speed);
}
}
void right_motor(int speed){
if (speed>0) {
analogWrite(11,speed);
digitalWrite(12,LOW);
}
else {
digitalWrite(11,LOW);
analogWrite(12,0-speed);
}
}
void turn_left(int speed){
}
void forward(int speed){
left_motor(250);
right_motor(250);
}
void backward(int speed){
left_motor(-250);
right_motor(-250);
}
void turn_left(){
left_motor(0);
right_motor(250);
delay(1500);
right_motor(0);
}
void turn_right(){
left_motor(250);
right_motor(0);
delay(1500);
left_motor(0);
}
void loop() {
// put your main code here, to run repeatedly:
if( Serial . available () ) {
String temp = Serial . readString () ;
Serial . print ("I received : ") ;
Serial . println ( temp );
if (temp=="W\n") {
forward(250);
}
else if (temp=="S\n") backward(250);
else if (temp=="A\n") {
turn_left();
digitalWrite(13,HIGH);
delay(200);
digitalWrite(13,LOW);
delay(200);
digitalWrite(13,HIGH);
delay(200);
digitalWrite(13,LOW);
delay(200);
}
else if (temp=="D\n") {
turn_right();
digitalWrite(13,HIGH);
delay(200);
digitalWrite(13,LOW);
delay(200);
}
}
}