You are on page 1of 5

Trường Đại Học Khoa Học Tự Nhiên TP.

HCM
Khoa Điện tử - Viễn thông
----***----

BÁO CÁO THỰC HÀNH NHẬP MÔN KỸ THUẬT ---ARDUINO---


BÀI SỐ 2

Tiểu nhóm số: 20 Lớp: DTVT1

Tên thành viên:

STT Họ tên & MSSV


1 Cao Vũ Lâm, MSSV: 23200046
2 Trần Đình Khâm, MSSV: 23200044
3 Bành Chí Khoa, MSSV: 23200045

1.Bài thực hành 1: Giao tiếp Arduino với LED 7 đoạn trên board Multifuntion
-Mô tả trạng thái đèn Led 7 đoạn sau khi nạp code xuống bo mạch Arduino:
=>Khi nạp code xuống bo mạch led 7 đoạn hiển thị 0123.

-Chụp hình minh chứng (video):


https://www.youtube.com/shorts/4LQ5E5hvRLk

2.Bài thực hành 2:


-Sau khi nạp code xuống bo mạch Arduino, xoay biến trở,quan sát trạng thái đèn LED trên bo:
=>Khi xoay biến trở đèn LED sáng, xoay theo chiều ngược lại chỉ số của biến trở tăng đèn LED
tắt.
-Chụp hình minh chứng (video):
https://youtube.com/shorts/74G9CznKyOc?feature=share
3.Báo cáo bài tập nâng cao
3.1 Đèn led 7 đoạn đếm từ 0 đến 9:
-Đèn led 7 đoạn khi nạp code đếm từ 0 đến 9 và quay lại.
-Chụp hình minh chứng (video):
https://youtube.com/shorts/4LQ5E5hvRLk
-CODE :
#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8

const byte SEGMENT_MAP[] =


{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
const byte SEGMENT_SELECT[] = {0xF8};

void setup ()
{
pinMode(LATCH_DIO, OUTPUT);
pinMode(CLK_DIO, OUTPUT);
pinMode(DATA_DIO,OUTPUT);
}

void loop()
{
WriteNumberToSegment(0,0);
WriteNumberToSegment(1,1);
WriteNumberToSegment(2,2);
WriteNumberToSegment(3,3);
WriteNumberToSegment(4,4);
WriteNumberToSegment(5,5);
WriteNumberToSegment(6,6);
WriteNumberToSegment(7,7);
WriteNumberToSegment(8,8);
WriteNumberToSegment(9,9);
}

void WriteNumberToSegment(byte Segment, byte Value)


{
digitalWrite(LATCH_DIO, LOW);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment]);

digitalWrite(LATCH_DIO, HIGH);
delay(1000);
digitalWrite(LATCH_DIO,LOW);
delay(1000);

3.2 Hiển thị led 7 đoạn các giá trị A,b,C,d,E,F và đếm từ 0 đến F:
-Đèn led 7 đoạn hiện các giá trị từ 0 đến F và quay lại 0.
-Chụp hình minh chứng (video):
https://youtube.com/shorts/hyoPWBHkyzo?feature=share
-CODE :
#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8

const byte SEGMENT_MAP[] =


{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
const byte SEGMENT_SELECT[] = {0xF8};

void setup ()
{
pinMode(LATCH_DIO, OUTPUT);
pinMode(CLK_DIO, OUTPUT);
pinMode(DATA_DIO,OUTPUT);
}

void loop()
{
WriteNumberToSegment(0,0);
WriteNumberToSegment(1,1);
WriteNumberToSegment(2,2);
WriteNumberToSegment(3,3);
WriteNumberToSegment(4,4);
WriteNumberToSegment(5,5);
WriteNumberToSegment(6,6);
WriteNumberToSegment(7,7);
WriteNumberToSegment(8,8);
WriteNumberToSegment(9,9);
WriteNumberToSegment(10,10);
WriteNumberToSegment(11,11);
WriteNumberToSegment(12,12);
WriteNumberToSegment(13,13);
WriteNumberToSegment(14,14);
WriteNumberToSegment(15,15);

void WriteNumberToSegment(byte Segment, byte Value)


{
digitalWrite(LATCH_DIO, LOW);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment]);

digitalWrite(LATCH_DIO, HIGH);
delay(1000);
digitalWrite(LATCH_DIO,LOW);
delay(1000);
}

3.3 Cho led 7 đoạn thứ 4 ban đầu hiển thị giá trị là 0, nếu nhấn phím A1 sẽ tăng dần giá trị lên 1
đơn vị,ví dụ 0,1,2,3,4,.....
-Khi nhấn phím A1 led 7 đoạn tăng dần lên 1 giá trị từ 0 đến F.

-Chụp hình minh chứng (video):


https://youtube.com/shorts/MsagBi6wM_Q?feature=share
-CODE :

#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8
int buttonPin = A1;
int buttonState = HIGH;

const byte SEGMENT_MAP[] =


{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
const byte SEGMENT_SELECT[] = {0xF8};

void setup ()
{
pinMode(LATCH_DIO, OUTPUT);
pinMode(CLK_DIO, OUTPUT);
pinMode(DATA_DIO,OUTPUT);
}
void loop()
{
buttonState = digitalRead(buttonPin);

int a;
int b;

if (buttonState == LOW) {
a++;
b++;
}
WriteNumberToSegment(a,b);
}

void WriteNumberToSegment(byte Segment, byte Value)


{
digitalWrite(LATCH_DIO, LOW);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment]);

digitalWrite(LATCH_DIO, HIGH);
delay(90);
digitalWrite(LATCH_DIO,LOW);
delay(90);
}

You might also like