I. Họ và tên, MSSV, lớp.
Ngô Quý Chính
2410405
L08
II. Video demo cho từng bài
Tổng hợp từ 4.1 đến 4,10
https://drive.google.com/drive/folders/
1A_VJ4WnP_qaOc61eW9v7CXC9AioSjqMo?usp=drive_link
Riêng cho từng bài
4.1 Two Toggling LEDs
https://drive.google.com/file/d/1NRYVF2VZkmfW2bmIv6Ng1xmaItYPR6yG/view?
usp=drive_link
4.2 Multiple Blinking LED
https://drive.google.com/file/d/11xQYtPZALCMUrzAEazgfc2C6jNbp_6Eg/view?
usp=drive_link
4.3 Seven Segment LED
https://drive.google.com/file/d/11xlM_WfqGZnaXZfMVzkfe2miWqE8oXvQ/view?
usp=drive_link
4.4 Two Digit Number
https://drive.google.com/file/d/11ykOhPOGrGmvw9qYfQ16eCOC5Kgyo20P/view?
usp=drive_link
4.5 One Way Traffic Light
https://drive.google.com/file/d/1FXpNywergACePAIwe8OabzZMeNWPKIdT/view?
usp=drive_link
4.6 Two Way Traffic Light
https://drive.google.com/file/d/1veDfaaYRuANKZCi53U0JNiguGGs4Dkq-/view?
usp=drive_link
4.7 Traffic Light with Timer
https://drive.google.com/file/d/1-S-k1nBgebQ39lKf8xXps8fFrYvC_Cmk/view?usp=drive_link
4.8 Analog Clock Project
https://drive.google.com/file/d/1X1mC28jFZoQFdKSxfekpE1FMR0rQ_e0I/view?
usp=drive_link
4.9 Analog Clock with Second
https://drive.google.com/file/d/1fAKFuevk25WkJh1hZA_DcfcXeBI_Hk6t/view?usp=drive_link
4.10 Finalize the Analog Clock
https://drive.google.com/file/d/1Lockp3fAU76CMHlrd5C4xfjGW2kYOx24/view?
usp=drive_link
III. Code cho từng bài
4.1 Two Toggling LEDs
void setup() {
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
void loop()
digitalWrite(0, HIGH);
digitalWrite(1, LOW);
delay(1000);
digitalWrite(0, LOW);
digitalWrite(1, HIGH);
delay(1000);
4.2 Multiple Blinking LED
void setup(){
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
void loop(){
digitalWrite(1, HIGH);
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
delay(1000);
4.3 Seven Segment LED
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, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
}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(100);
for (int i = 0; i < 10; i++) {
displayNumber(i);
delay(1000);
4.4 Two Digit Number
void setup()
for(int i = 0; i < 21; i++){
pinMode(i, OUTPUT);
void displayNumber1(int i) {
if (i == 0 || i == 10 || i == 20){
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
} else if (i == 1 || i == 11){
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
} else if (i == 2 || i == 12){
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
} else if (i == 3 || i == 13){
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
} else if (i == 4 || i == 14){
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
} else if (i == 5 || i == 15){
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
} else if (i == 6 || i == 16){
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
} else if (i == 7 || i == 17){
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
} else if (i == 8 || i == 18){
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
} else if (i == 9 || i == 19){
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
void displayNumber2 (int i)
if(i >= 0 && i <10)
{digitalWrite(0, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
if(i >= 10 && i < 20)
digitalWrite(0, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
if(i == 20)
digitalWrite(0, LOW);
digitalWrite(1, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
}
void loop()
for(int i = 0; i < 21; i++){
displayNumber1(i);
displayNumber2(i);
delay(1000);
4.5 One Way Traffic Light
void setup(){
for (int i = 0; i < 14; i++) {
pinMode(i, OUTPUT);
void light(int i)
if(i >= 0 && i < 5)
for(int j = 8; j < 14; j++)
digitalWrite(j, LOW);
digitalWrite(8, HIGH);
if(i >= 5 && i < 8)
for(int j = 8; j <14; j++)
digitalWrite(j, LOW);
digitalWrite(10, HIGH);
if(i >= 8 && i < 10)
for(int j = 9; j <14; j++)
digitalWrite(j, LOW);
digitalWrite(9, HIGH);
void loop(){
for (int i = 0; i < 10; i++)
light(i);
delay(1000);
4.6 Two Way Traffic Light
void setup(){
for (int i = 0; i < 14; i++) {
pinMode(i, OUTPUT);
void light(int i)
if(i >= 0 && i < 5)
{
for(int j = 8; j < 14; j++)
digitalWrite(j, LOW);
digitalWrite(8, HIGH);
if(i >= 5 && i < 8)
for(int j = 8; j <14; j++)
digitalWrite(j, LOW);
digitalWrite(10, HIGH);
if(i >= 8 && i < 10)
for(int j = 9; j <14; j++)
digitalWrite(j, LOW);
digitalWrite(9, HIGH);
if(i >= 0 && i < 3)
digitalWrite(13, HIGH);
if(i >= 3 && i < 5)
digitalWrite(12, HIGH);
if(i >= 5 && i < 10)
digitalWrite(11, HIGH);
}
}
void loop(){
for (int i = 0; i < 10; i++)
light(i);
delay(1000);
4.7 Traffic Light with Timer
void setup(){
for (int i = 0; i < 14; i++) {
pinMode(i, OUTPUT);
void displayNumber(int i){
if (i == 0){
digitalWrite(0, LOW);
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
}else if(i == 1){
digitalWrite(0, LOW);
digitalWrite(1, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
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, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
}else if(i == 4){
digitalWrite(0, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}else if(i == 5){
digitalWrite(0, LOW);
digitalWrite(1, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
}else if(i == 6){
digitalWrite(0, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
}else if(i == 7){
digitalWrite(0, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}else if(i == 8){
digitalWrite(0, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
}else if(i == 9){
digitalWrite(0, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
void light(int i)
if(i >= 0 && i < 5)
for(int j = 8; j < 14; j++)
digitalWrite(j, LOW);
digitalWrite(8, HIGH);
if(i >= 5 && i < 8)
for(int j = 8; j <14; j++)
digitalWrite(j, LOW);
digitalWrite(10, HIGH);
}
if(i >= 8 && i < 10)
for(int j = 9; j <14; j++)
digitalWrite(j, LOW);
digitalWrite(9, HIGH);
if(i >= 0 && i < 3)
digitalWrite(13, HIGH);
if(i >= 3 && i < 5)
digitalWrite(12, HIGH);
if(i >= 5 && i < 10)
digitalWrite(11, HIGH);
void loop(){
for (int i = 0; i < 10; i++)
light(i);
displayNumber(i);
delay(1000);
}
4.8 Analog Clock Project
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 <= 12){
if(num == 1)
digitalWrite(11, HIGH);
else
digitalWrite(num - 2, HIGH);
void clearClock(){
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();
4.9 Analog Clock with Second
int now = 0;
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 <= 12){
if(num == 1)
digitalWrite(11, HIGH);
else
digitalWrite(num - 2, HIGH);
void clearClock(){
for(int i = 0; i < 12; i++){
digitalWrite(i, LOW);
}
}
void loop()
displayOnClock(now%12 + 1);
delay(5000);
clearClock();
now++;
4.10 Finalize the Analog Clock
int now = 0;
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 <= 12){
if(num == 1)
digitalWrite(11, HIGH);
else
digitalWrite(num - 2, HIGH);
}
void clearClock(){
for(int i = 0; i < 12; i++){
digitalWrite(i, LOW);
void loop()
second = now%12;
minute = (now/60)%12;
hour = (now/60/60)%12;
displayOnClock(second + 1);
displayOnClock(minute + 1);
displayOnClock(hour + 1);
delay(50);
clearClock();
now++;