You are on page 1of 13

VIETNAM NATIONAL UNIVERSITY – HOCHIMINH CITY

INTERNATIONAL UNIVERSITY SCHOOL OF COMPUTER

SCIENCE & ENGINEERING

Internet of Things Laboratory


Lab 1 - Introduction to Arduino

Submitted by

Group Name: Zero


No ID Name No Contribution
1 ITITIU19076 Đặng Nguyễn Nam Anh
2 ITITIU18239 Lê Hoàng Phú Thành
3 ITITIU18260 Lý Hoàng Vũ
4 ITITIU18202 Lý Tiểu Dũng
5 ITITIU19033 Vũ Hoàng Nam
6 ITITIU19059 Trương Công Trung

Date Submitted: 6th March 2023


Course Instructor: Le Duy Tan
1. Activity 1:

A) Blinking Led in 200ms


// the setup function runs once when you press reset or power the board

void setup() {

// initialize digital pin LED_BUILTIN as an output.

pinMode(LED_BUILTIN, OUTPUT);

// the loop function runs over and over again forever

void loop() {

digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)

delay(200); // wait for a second

digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW

delay(200); // wait for a second

B) Blinking Led in 5s
// the setup function runs once when you press reset or power the board

void setup() {

// initialize digital pin LED_BUILTIN as an output.

pinMode(LED_BUILTIN, OUTPUT);

// the loop function runs over and over again forever

void loop() {

digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)

delay(5000); // wait for a second


digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW

delay(5000); // wait for a second

2. Activity 2

A) Police Chaser Lights (flashes the middle red and blue LED and the
LED directly to the left of each color)
void setup() {

// RED LED's < >BLUE LED's

// initialize digital pin 13, 12, 11, 10, 9, 8 as an output.

pinMode(13, OUTPUT); //Left Red

pinMode(12, OUTPUT); //Middle Red

pinMode(11, OUTPUT); //Right Red

pinMode(10, OUTPUT); //Left Blue

pinMode(9, OUTPUT); //Middle Blue

pinMode(8, OUTPUT); //Right Blue

// the loop function runs over and over again forever

void loop() {

digitalWrite(13, HIGH);

digitalWrite(12, HIGH);

digitalWrite(11, HIGH);

delay(100);

digitalWrite(13, LOW);

digitalWrite(12, LOW);

digitalWrite(11, LOW);
delay(100);

/////LED Alternate sides/////

digitalWrite(10, HIGH);

digitalWrite(8, HIGH);

digitalWrite(9, HIGH);

delay(100);

digitalWrite(10, LOW);

digitalWrite(8, LOW);

digitalWrite(9, LOW);

delay(100);

B) Police Chaser Lights (flash the middle red and blue LED and the
LED directly to the right of each color, and then flash the middle red and blue
LED as well as the LED directly to the left of each color)
// the setup function runs once when you press reset or power the board

void setup() {

// RED LED's < >BLUE LED's

// initialize digital pin 13, 12, 11, 10, 9, 8 as an output.

pinMode(13, OUTPUT); //Left Red

pinMode(12, OUTPUT); //Middle Red

pinMode(11, OUTPUT); //Right Red

pinMode(10, OUTPUT); //Left Blue

pinMode(9, OUTPUT); //Middle Blue

pinMode(8, OUTPUT); //Right Blue

// the loop function runs over and over again forever

void loop() {

digitalWrite(10, HIGH);

digitalWrite(11, HIGH);

delay(100);

digitalWrite(10, LOW);

digitalWrite(11, LOW);

delay(100);

/////LED Alternate sides/////

digitalWrite(12, HIGH);

digitalWrite(9, HIGH);

delay(100);
digitalWrite(12, LOW);

digitalWrite(9, LOW);

delay(100);

//

digitalWrite(13, HIGH);

digitalWrite(8, HIGH);

delay(100);

digitalWrite(13, LOW);

digitalWrite(8, LOW);

delay(100);

C) Police Chaser Lights (free order: 2 leds sequentially turn on from left to
right each time)
// the setup function runs once when you press reset or power the board

void setup() {

// RED LED's < >BLUE LED's

// initialize digital pin 13, 12, 11, 10, 9, 8 as an output.

pinMode(13, OUTPUT); //Left Red

pinMode(12, OUTPUT); //Middle Red

pinMode(11, OUTPUT); //Right Red

pinMode(10, OUTPUT); //Left Blue

pinMode(9, OUTPUT); //Middle Blue

pinMode(8, OUTPUT); //Right Blue

// the loop function runs over and over again forever

void loop() {

digitalWrite(13, HIGH);

digitalWrite(12, HIGH);

delay(100);

digitalWrite(13, LOW);
digitalWrite(12, LOW);

delay(100);

/////LED Alternate sides/////

digitalWrite(11, HIGH);

digitalWrite(10, HIGH);

delay(100);

digitalWrite(11, LOW);

digitalWrite(10, LOW);

delay(100);

//

digitalWrite(9, HIGH);

digitalWrite(8, HIGH);

delay(100);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

delay(100)

3. Activity 3
A) Arduino Traffic Light Simulator
- Change the flashing order to Red - Yellow - Green
- Increase the delay time of Red and Green lights to 7 seconds
// variables

int GREEN = 2;

int YELLOW = 3;

int RED = 4;

int DELAY_GREEN = 7000;

int DELAY_YELLOW = 2000;

int DELAY_RED = 7000;

// basic functions

void setup()

pinMode(GREEN, OUTPUT);

pinMode(YELLOW, OUTPUT);

pinMode(RED, OUTPUT);

void loop()

red_light();

delay(DELAY_RED);

yellow_light();

delay(DELAY_YELLOW);

green_light();

delay(DELAY_GREEN);

void green_light()

digitalWrite(GREEN, HIGH);

digitalWrite(YELLOW, LOW);

digitalWrite(RED, LOW);

void yellow_light()

digitalWrite(GREEN, LOW);

digitalWrite(YELLOW, HIGH);

digitalWrite(RED, LOW);
}

void red_light()

digitalWrite(GREEN, LOW);

digitalWrite(YELLOW, LOW);

digitalWrite(RED, HIGH);

4. Activity 4

A) Flash bright (normal)


// Created 8th February 2019 by Neil Doherty

/*

'normal' presentation:

int ledPin3 = 3; // Usual assigned designated output pins

int ledPin4 = 4;

int ledPin5 = 5;

int ledPin6 = 6;

int ledPin7 = 7;

int ledPin8 = 8;

int ledPin9 = 9;

int ledPin10 = 10;

int ledPin11 = 11;

int ledPin12 = 12;

const int delayperiod = 30;


then we would have:

void setup () {

pinMode(ledPin3, OUTPUT); // Usual pinMode

pinMode(ledPin4, OUTPUT);

pinMode(ledPin5, OUTPUT);

pinMode(ledPin4, OUTPUT);

pinMode(ledPin5, OUTPUT);

pinMode(ledPin6, OUTPUT);

pinMode(ledPin7, OUTPUT);

pinMode(ledPin8, OUTPUT);

pinMode(ledPin9, OUTPUT);

pinMode(ledPin10, OUTPUT);

pinMode(ledPin11, OUTPUT);

pinMode(ledPin12, OUTPUT);

*/

// Instead of all that, delete all of the above and use:

// Created 8th February 2019 by Neil Doherty

// instead of making eleven int statements, only two are used.

const int delayPeriod = 70; // uses less memory than int.

/* However, by creating void setup() as an empty statement, we save space in the Arduino memory
by using the lowest possible number of int statements, because they are not in the program
twice, which also enables the LEDs to Flash BRIGHT, instead of 'glinting'.

*/

void setup() {}

void loop() {

for (int pin = 13; pin > 3; pin--) // 13 and 5 used here so that

// the outer LEDs are not double-flashed unnecessarily

if (pin %2){

pinMode(pin, OUTPUT); // declare pinMode once in the loop, here.


digitalWrite(pin, HIGH);

delay(delayPeriod);

digitalWrite(pin, LOW);

delay(delayPeriod);

B) Flash Bright (Odd led)


// Created 8th February 2019 by Neil Doherty

/*

'normal' presentation:

int ledPin3 = 3; // Usual assigned designated output pins

int ledPin4 = 4;

int ledPin5 = 5;

int ledPin6 = 6;

int ledPin7 = 7;

int ledPin8 = 8;

int ledPin9 = 9;

int ledPin10 = 10;

int ledPin11 = 11;

int ledPin12 = 12;

const int delayperiod = 30;

then we would have:

void setup () {

pinMode(ledPin3, OUTPUT); // Usual pinMode

pinMode(ledPin4, OUTPUT);

pinMode(ledPin5, OUTPUT);

pinMode(ledPin4, OUTPUT);

pinMode(ledPin5, OUTPUT);

pinMode(ledPin6, OUTPUT);

pinMode(ledPin7, OUTPUT);

pinMode(ledPin8, OUTPUT);

pinMode(ledPin9, OUTPUT);
pinMode(ledPin10, OUTPUT);

pinMode(ledPin11, OUTPUT);

pinMode(ledPin12, OUTPUT);

*/

// Instead of all that, delete all of the above and use:

// Created 8th February 2019 by Neil Doherty

// instead of making eleven int statements, only two are used.

const int delayPeriod = 70; // uses less memory than int.

/* However, by creating void setup() as an empty statement, we save space in the Arduino memory
by using the lowest possible number of int statements, because they are not in the program
twice, which also enables the LEDs to Flash BRIGHT, instead of 'glinting'.

*/

void setup() {}

void loop() {

for (int pin = 13; pin > 3; pin--) // 13 and 5 used here so that

// the outer LEDs are not double-flashed unnecessarily

if (!(pin %2)){

pinMode(pin, OUTPUT); // declare pinMode once in the loop, here.

digitalWrite(pin, HIGH);

delay(delayPeriod);

digitalWrite(pin, LOW);

delay(delayPeriod);

C) Flash Bright (Even led)


// Created 8th February 2019 by Neil Doherty
/*

'normal' presentation:

int ledPin3 = 3; // Usual assigned designated output pins

int ledPin4 = 4;

int ledPin5 = 5;

int ledPin6 = 6;

int ledPin7 = 7;

int ledPin8 = 8;

int ledPin9 = 9;

int ledPin10 = 10;

int ledPin11 = 11;

int ledPin12 = 12;

const int delayperiod = 30;

then we would have:

void setup () {

pinMode(ledPin3, OUTPUT); // Usual pinMode

pinMode(ledPin4, OUTPUT);

pinMode(ledPin5, OUTPUT);

pinMode(ledPin4, OUTPUT);

pinMode(ledPin5, OUTPUT);

pinMode(ledPin6, OUTPUT);

pinMode(ledPin7, OUTPUT);

pinMode(ledPin8, OUTPUT);

pinMode(ledPin9, OUTPUT);

pinMode(ledPin10, OUTPUT);

pinMode(ledPin11, OUTPUT);

pinMode(ledPin12, OUTPUT);

*/

// Instead of all that, delete all of the above and use:

// Created 8th February 2019 by Neil Doherty

// instead of making eleven int statements, only two are used.


const int delayPeriod = 70; // uses less memory than int.

/* However, by creating void setup() as an empty statement, we save space in the Arduino memory
by using the lowest possible number of int statements, because they are not in the program
twice, which also enables the LEDs to Flash BRIGHT, instead of 'glinting'.

*/

void setup() {}

void loop() {

for (int pin = 13; pin > 3; pin--) // 13 and 5 used here so that

// the outer LEDs are not double-flashed unnecessarily

if (!(pin %2)){

pinMode(pin, OUTPUT); // declare pinMode once in the loop, here.

digitalWrite(pin, HIGH);

delay(delayPeriod);

digitalWrite(pin, LOW);

delay(delayPeriod);

You might also like