0% found this document useful (0 votes)
90 views35 pages

NMĐT TH - CC05 - Vương Quốc Anh

The document contains code for 4 exercises that control LEDs using Arduino. Exercise 1 turns on LEDs on pin 0 and 1 sequentially. Exercise 2 defines states that turn on different combinations of 8 LEDs. Exercise 3 displays the numbers 0-9 by turning on specific LEDs. Exercise 4 expands on this to display numbers on 14 LEDs using 2 7-segment displays.
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)
90 views35 pages

NMĐT TH - CC05 - Vương Quốc Anh

The document contains code for 4 exercises that control LEDs using Arduino. Exercise 1 turns on LEDs on pin 0 and 1 sequentially. Exercise 2 defines states that turn on different combinations of 8 LEDs. Exercise 3 displays the numbers 0-9 by turning on specific LEDs. Exercise 4 expands on this to display numbers on 14 LEDs using 2 7-segment displays.
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/ 35

Bài tập 4.

1:
void setup()

pinMode(0, OUTPUT);

pinMode(1, OUTPUT);

void loop()

digitalWrite(0, HIGH);

delay(2000);

digitalWrite(1, HIGH);

digitalWrite(0, LOW);

delay(2000);

digitalWrite(1, LOW);

Bài tập 4.2:

int pinled [] = {1,2,3,4,5,6,7,8};

int noPins = 8;

void setup(){

for (int i = 0; i < noPins; i++) {

pinMode(pinled [i], OUTPUT);


}

void state1(){

digitalWrite(1, LOW);

digitalWrite(3, LOW);

digitalWrite(5, LOW);

digitalWrite(7, LOW);

digitalWrite(2, LOW);

digitalWrite(4, LOW);

digitalWrite(6, LOW);

digitalWrite(8, LOW);

void state2(){

digitalWrite(1, HIGH);

digitalWrite(3, LOW);

digitalWrite(5, LOW);

digitalWrite(7, LOW);

digitalWrite(2, LOW);

digitalWrite(4, LOW);

digitalWrite(6, LOW);

digitalWrite(8, LOW);
}

void state3(){

digitalWrite(1, LOW);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

void state4(){

digitalWrite(1, HIGH);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

}
void state5(){

digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

void state6(){

digitalWrite(1, HIGH);

digitalWrite(2, LOW);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

}
void state7(){

digitalWrite(1, LOW);

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

void state8(){

digitalWrite(1, HIGH);

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

void state9(){
digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

void state10(){

digitalWrite(1, HIGH);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

digitalWrite(7, LOW);

digitalWrite(8, LOW);

void loop()

{
state1();

delay(500);

state2();

delay(500);

state3();

delay(500);

state4();

delay(500);

state4();

delay(500);

state5();

delay(500);

state6();

delay(500);

state7();

delay(500);

state8();

delay(500);

state9();

delay(500);

state10();

delay(500);

Bài tập 4.3:


int pinled [] = {0,1,2,3,4,5,6};

void setup(){

for (int i = 0; i < 7; i++) {

pinMode(pinled [i], OUTPUT);

void displayNumber(int i){

if (i == 0){

digitalWrite(0, HIGH);

digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 1){

digitalWrite(0, HIGH);

digitalWrite(1, HIGH);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, LOW);
}else if(i == 2){

digitalWrite(0, LOW);

digitalWrite(1, HIGH);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, HIGH);

}else if(i == 3){

digitalWrite(0, LOW);

digitalWrite(1, HIGH);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 4){

digitalWrite(0, LOW);

digitalWrite(1, LOW);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, LOW);
}else if(i == 5){

digitalWrite(0, LOW);

digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 6){

digitalWrite(0, LOW);

digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 7){

digitalWrite(0, HIGH);

digitalWrite(1, HIGH);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, LOW);
}else if(i == 8){

digitalWrite(0, LOW);

digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 9){

digitalWrite(0, LOW);

digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

void loop(){

displayNumber(0);

delay(2000);

for (int i = 0; i < 10; i++) {

displayNumber(i);

delay(1000);
}

Bài tập 4.4:


// C++ code

//

void setup()

for(int i = 0; i < 14; i++){

pinMode(i, OUTPUT);

void displayNumber2(int i)

{ if (i == 0){

digitalWrite(7, HIGH);

digitalWrite(8, LOW);

digitalWrite(9, LOW);

digitalWrite(10, LOW);

digitalWrite(11, LOW);

digitalWrite(5+7, LOW);

digitalWrite(13, LOW);

}else if(i == 1){

digitalWrite(7, HIGH);

digitalWrite(8, HIGH);

digitalWrite(9, HIGH);

digitalWrite(10, LOW);
digitalWrite(11, HIGH);

digitalWrite(5+7, HIGH);

digitalWrite(13, LOW);

}else if(i == 2){

digitalWrite(7, LOW);

digitalWrite(8, HIGH);

digitalWrite(9, LOW);

digitalWrite(10, LOW);

digitalWrite(11, LOW);

digitalWrite(5+7, LOW);

digitalWrite(6+7, HIGH);

}else if(i == 3){

digitalWrite(0+7, LOW);

digitalWrite(1+7, HIGH);

digitalWrite(2+7, LOW);

digitalWrite(3+7, LOW);

digitalWrite(4+7, HIGH);

digitalWrite(5+7, LOW);

digitalWrite(6+7, LOW);

}else if(i == 4){

digitalWrite(0+7, LOW);

digitalWrite(1+7, LOW);

digitalWrite(2+7, HIGH);

digitalWrite(3+7, LOW);
digitalWrite(4+7, HIGH);

digitalWrite(5+7, HIGH);

digitalWrite(6+7, LOW);

}else if(i == 5){

digitalWrite(0+7, LOW);

digitalWrite(1+7, LOW);

digitalWrite(2+7, LOW);

digitalWrite(3+7, HIGH);

digitalWrite(4+7, HIGH);

digitalWrite(5+7, LOW);

digitalWrite(6+7, LOW);

}else if(i == 6){

digitalWrite(0+7, LOW);

digitalWrite(1+7, LOW);

digitalWrite(2+7, LOW);

digitalWrite(3+7, HIGH);

digitalWrite(4+7, LOW);

digitalWrite(5+7, LOW);

digitalWrite(6+7, LOW);

}else if(i == 7){

digitalWrite(0+7, HIGH);

digitalWrite(1+7, HIGH);

digitalWrite(2+7, LOW);

digitalWrite(3+7, LOW);
digitalWrite(4+7, HIGH);

digitalWrite(5+7, HIGH);

digitalWrite(6+7, LOW);

}else if(i == 8){

digitalWrite(0+7, LOW);

digitalWrite(1+7, LOW);

digitalWrite(2+7, LOW);

digitalWrite(3+7, LOW);

digitalWrite(4+7, LOW);

digitalWrite(5+7, LOW);

digitalWrite(6+7, LOW);

}else if(i == 9){

digitalWrite(0+7, LOW);

digitalWrite(1+7, LOW);

digitalWrite(2+7, LOW);

digitalWrite(3+7, LOW);

digitalWrite(4+7, HIGH);

digitalWrite(5+7, LOW);

digitalWrite(6+7, LOW);

void displayNumber1(int i){

if (i == 0){

digitalWrite(0, HIGH);
digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 1){

digitalWrite(0, HIGH);

digitalWrite(1, HIGH);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, LOW);

}else if(i == 2){

digitalWrite(0, LOW);

digitalWrite(1, HIGH);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, HIGH);

}else if(i == 3){

digitalWrite(0, LOW);

digitalWrite(1, HIGH);
digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 4){

digitalWrite(0, LOW);

digitalWrite(1, LOW);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, LOW);

}else if(i == 5){

digitalWrite(0, LOW);

digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 6){

digitalWrite(0, LOW);
digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 7){

digitalWrite(0, HIGH);

digitalWrite(1, HIGH);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, LOW);

}else if(i == 8){

digitalWrite(0, LOW);

digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 9){

digitalWrite(0, LOW);

digitalWrite(1, LOW);
digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

void loop()

for(int i=0;i<2;i++)

{displayNumber1(i);

for(int k=0;k<10;k++)

{displayNumber2(k);

delay(1000);

displayNumber1(2);

displayNumber2(0);

delay(1000);

Bài tập 4.5:


void setup(){

for (int i = 0; i < 14; i++) {


pinMode(i, OUTPUT);

void loop(){

digitalWrite(8, HIGH);

delay(5000);

digitalWrite(8, LOW);

digitalWrite(10, HIGH);

delay(3000);

digitalWrite(10, LOW);

digitalWrite(9, HIGH);

delay(2000);

digitalWrite(9, LOW);

Bài tập 4.6:


void setup(){

for (int i = 0; i < 14; i++) {

pinMode(i, OUTPUT);

void loop(){

digitalWrite(8, HIGH);

digitalWrite(13, HIGH);

delay(3000);

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

delay(2000);

digitalWrite(8, LOW);

digitalWrite(10, HIGH);

digitalWrite(12, LOW);

digitalWrite(11, HIGH);

delay(3000);

digitalWrite(10, LOW);

digitalWrite(9, HIGH);

delay(2000);

digitalWrite(9, LOW);

digitalWrite(11, LOW);

Bài tập 4.7:


void setup(){

for (int i = 0; i < 14; i++) {

pinMode(i, OUTPUT);

void displayNumber(int i){

if (i == 0){

digitalWrite(0, HIGH);

digitalWrite(1, LOW);

digitalWrite(2, LOW);
digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 1){

digitalWrite(0, HIGH);

digitalWrite(1, HIGH);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, LOW);

}else if(i == 2){

digitalWrite(0, LOW);

digitalWrite(1, HIGH);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(6, HIGH);

}else if(i == 3){

digitalWrite(0, LOW);

digitalWrite(1, HIGH);

digitalWrite(2, LOW);

digitalWrite(3, LOW);
digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

}else if(i == 4){

digitalWrite(0, LOW);

digitalWrite(1, LOW);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH);

digitalWrite(6, LOW);

}else if(i == 5){

digitalWrite(0, LOW);

digitalWrite(1, LOW);

digitalWrite(2, LOW);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

digitalWrite(6, LOW);

void loop(){
digitalWrite(8, HIGH);

digitalWrite(13, HIGH);

for (int i=2; i>=0; i--){displayNumber(i); delay(1000);}

digitalWrite(12, HIGH);

digitalWrite(13, LOW);

for (int i=1; i>=0; i--){displayNumber(i); delay(1000);}

digitalWrite(8, LOW);

digitalWrite(10, HIGH);

digitalWrite(12, LOW);

digitalWrite(11, HIGH);

for (int i=4; i>=2; i--){displayNumber(i); delay(1000);}

digitalWrite(10, LOW);

digitalWrite(9, HIGH);

for (int i=2; i>=0; i--){displayNumber(i); delay(1000);}

digitalWrite(9, LOW);

digitalWrite(11, LOW);

Bài tập 4.8:


int second = 0;

int minute = 0;

int hour = 0;

void setup()

for(int i = 0; i < 12; i++){


pinMode(i, OUTPUT);

void displayOnClock(int num){

if(num == 0)

digitalWrite(11, HIGH);

else{

digitalWrite(num - 1, HIGH);

void clearClock(){

//TODO: Clear 12 LEDs on Clock

for(int i = 0; i < 12; i++)

digitalWrite(i, LOW);

void loop()

for(int i = 0; i < 12; i++){

displayOnClock(i + 1);

delay(1000);

clearClock();

Bài tập 4.9:


int second = 0;

int minute = 0;

int hour = 0;

void setup()

for(int i = 0; i < 12; i++){

pinMode(i, OUTPUT);

void displayOnClock(int num){

if(num == 0)

digitalWrite(11, HIGH);

else{

digitalWrite(num - 1, HIGH);

void clearClock(){

//TODO: Clear 12 LEDs on Clock

for(int i = 0; i < 12; i++)

digitalWrite(i, LOW);

void loop()

displayOnClock(second / 5);
delay(1000);

second = (second + 1) % 60;

clearClock();

Bài tập 4.10:


int second = 0;

int minute = 0;

int hour = 0;

void setup()

for(int i = 0; i < 12; i++){

pinMode(i, OUTPUT);

void displayOnClock(int num){

if(num == 0)

digitalWrite(11, HIGH);

else{

digitalWrite(num - 1, HIGH);

void clearClock(){

//TODO: Clear 12 LEDs on Clock

for(int i = 0; i < 12; i++)


digitalWrite(i, LOW);

void loop()

displayOnClock(hour);

displayOnClock(minute / 5);

displayOnClock(second / 5);

delay(1000);

second = (second + 1) % 60;

minute = (minute + second / 59) % 60;

hour = (hour + minute / 59) % 12;

clearClock();

Bài tập 3.1:


void left_speed ( int speed ) {

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);}

Bài tập 3.2:


void setup(){

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

void left_speed ( int speed ) {

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 loop()

left_speed(100);

delay(2000);

left_speed(0);

delay(2000);

left_speed(-100);

delay(2000);

left_speed(0);

delay(2000);
}

Bài tập 3.3:


void setup(){

pinMode(12, OUTPUT);

pinMode(13, OUTPUT);

void right_speed ( int speed ) {

if( speed > 0) {

digitalWrite(12, HIGH);

digitalWrite(13, LOW);

analogWrite(10,speed);

} else {speed = 0 - speed ;

digitalWrite(12, LOW);

digitalWrite(13, HIGH);

analogWrite(10,speed);}

void loop()

left_speed(100);

delay(2000);

left_speed(0);

delay(2000);

left_speed(-100);

delay(2000);
left_speed(0);

delay(2000);

Bài tập 3.4:


void forward (int speed )

{left_speed(100);

delay(2000);

left_speed(0);

delay(2000);

right_speed(100);

delay(2000);

right_speed(0);

delay(2000);}

void backward (int speed )

int nespeed=0-speed;

left_speed(nespeed);

delay(2000);

left_speed(0);

delay(2000);

right_speed(nespeed);

delay(2000);

right_speed(0);

delay(2000);
}

void turnleft (int speed ) {

left_speed(speed);

delay(2000);

left_speed(0);

delay(2000);

void turnright (int speed ) {

right_speed(speed);

delay(2000);

right_speed(0);

delay(2000);

Bài tập 3.5:


void setup(){

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

pinMode(12, OUTPUT);

pinMode(13, OUTPUT);

void right_speed ( int speed ) {

if( speed > 0) {

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

analogWrite(10,speed);

} else {speed = 0 - speed ;

digitalWrite(12, HIGH);

digitalWrite(13, LOW);

analogWrite(10,speed);}

void left_speed ( int speed ) {

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 forward (int speed )

{left_speed(100);

delay(2000);

left_speed(0);

delay(2000);

right_speed(100);

delay(2000);

right_speed(0);
delay(2000);}

void backward (int speed )

int nespeed=0-speed;

left_speed(nespeed);

delay(2000);

left_speed(0);

delay(2000);

right_speed(nespeed);

delay(2000);

right_speed(0);

delay(2000);

void turnleft (int speed ) {

left_speed(speed);

delay(2000);

left_speed(0);

delay(2000);

void turnright (int speed ) {

right_speed(speed);

delay(2000);

right_speed(0);
delay(2000);

void loop()

turnright(100);

forward(100);

turnleft(100);

backward(100);

You might also like