bài tập nhóm ứng dụng vi điều khiển trong kỹ thuật điện

77 1 0
Tài liệu đã được kiểm tra trùng lặp
bài tập nhóm ứng dụng vi điều khiển trong kỹ thuật điện

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Yêu cầuHiê Gu ứng 1: Điều khiển đYn bằng cách nhấn giŒ nút.Hiê Gu ứng 2: Điều khiển đYn bằng cách nhấn nhả nút.Lập trình code cho từng hiệu ứng.2 điê Gn trW vạch Hạn chế dXng vào đYn led

Trang 1

TRƯỜNG ĐẠI HỌC THỦY LỢIKHOA ĐIỆN-ĐIỆN TỬ

BỘ MÔN KỸ THUẬT ĐIỆN-ĐIỆN TỬ

BÀI TẬP NHÓM

ỨNG DỤNG VI ĐIỀU KHIỂN TRONG KỸ THUẬT ĐIỆN

Nhóm SV thực hiện: Nhóm 1

Nguy;n Quang B<nhMSV:2151123327Nguy;n Văn B<nhMSV:2151120421Nguy;n Minh ChâuMSV:2151123328Nguy;n Thiê Cn ChinhMSV:2151120426Nguy;n Văn ChungMSV:2151123329Ph8m TrFng ChungMSV:2151123330

Lớp: 63KTĐ2

GV hướng dẫn: TS Trần Hùng Cường

H+ Nội, 2023

Trang 2

MỤC LỤC

BÀI 1: ĐIU KHIN 8 LED ĐƠN VI NHIU HIU NG 2

BÀI 2: ĐIU KHIN ĐN LED BNG NT NHN 15

BÀI 3: ĐIU KHIN ĐN LED BNG BIN TRƠ 20

BÀI 4: ĐIU KHIN ĐN LED BNG C$M BIN &NH S&NG 26

BÀI 5: ĐIU KHIN LED ĐA S*C RGB 32

BÀI 6: ĐIU KHIN LED 7 ĐO.N 38

BÀI 7: ĐIU KHIN LCD 46

BÀI 8: CHƯƠNG TR0NH XUT XUNG PWM ARDUINO 57

BÀI 9: C&C THIT BỊ C$M BIN NG DỤNG VI ARDUINO 61

BÀI 10: C&C THIT BỊ NGO.I VI VÀ KT NỐI THIT BỊ NGO.I VI VI ARDUINO 67

BÀI 11: ĐM SỐ LƯỢNG S$N PHẨM VÀ HIN THỊ LÊN LCD 71

1

Trang 3

BÀI 1: ĐIỀU KHIỂN 8 LED ĐƠN VVI NHIỀU HIÊCU ỨNG 1 Yêu cầu

HU1: Điều khiển 8 led nhấp nháy.

HU2: Điều khiển 8 led sáng chạy từ trái sang phải.HU3: Điều khiển 8 led sáng chạy từ phải sang trái.HU4: Điều khiển 8 led sáng dồn và tắt dồn từ trái qua phải.HU5: Điều khiển 8 led sáng dồn và tắt dồn từ phải qua trái.HU6: Điều khiển 8 led sáng dồn và tắt dồn từ 2 bên vào trong.HU7: Điều khiển 8 led sang dồn và tẳt dồn từ trong ra 2 bên.HU8: Điều khiển 8 led sáng xen kẽ.

Trang 4

Bă t đâ u int i,

i<=7Tă t theo i

B t sang theo iâ

i++i<8Trê+ 200 millis

static chay1; int i,jpinLed[]={2,3,4,5,6,7,8,9}

4 Lưu đ] thuâ Ct to`n

Hình 1.2: Lưu đồ điều khiển 8 LED s ng nh!p nh y

Hình 1.3: Lưu đồ điều khiển 8 LED ch%y t' tr i sang ph*i

3

Trang 5

static chay1; int i,jpinLed[]={2,3,4,5,6,7,8,9}

B t sang led â

2Trê+ 300 millisB t sang led â

3Trê+ 300 millisB t sang led â

4Trê+ 300 millisB t sang led â

Trê+ 300 millis B t sang led 6â

Trê+ 300 millisB t sang led 7â

Trê+ 300 millisB t sang led 8â

Trê+ 300 millisB t sang led 9â

Trê+ 300 millis Tă t led 2

Trê+ 300 millisTă t led 3Trê+ 300 millis

Tă t led 4Trê+ 300 millis

Tă t led 5

Trê+ 300 millis Tă t led 6Trê+ 300 millisTă t led 7Trê+ 300 millis

Tă t led 9Trê+ 300 millis

Tă t led 8Trê+ 300 millisHình 1.4: Lưu đồ điều khiển 8 LED ch%y t' ph*i sang tr i

Hình 1.5: Lưu đồ điều khiển 8 LED s ng dồn và tắt dồn t' tr i sang ph*i

4

Trang 6

Bă t đâ ustatic chay4; int i,j

B9t đầuint i,

T9t theo iTr; 300 millis

Bâ Ct s`ng led 2 v+ 9Tr; 300 millis

Bâ Ct s`ng led 3 v+ 8

Bâ Ct s`ng led 4 v+ 7Bâ Ct s`ng led 5 v+ 6

T9t led 5 v+ 6T9t led 4 v+ 7T9t led 3 v+ 8Sai

Tr; 300 millisTr; 300 millisTr; 300 millisT9t led 2 v+ 9Tr; 300 millis

Tr; 300 millis

Tr; 300 millis

Tr; 300 millis

Hình 1.6: Lưu đồ điều khiển 8 LED s ng dồn và tắt dồn t' ph*i sang tr i

Hình 1.7: Lưu đồ điều khiển 8 LED s ng dồn và tắt dồn t' 2 bên vào trong

5

Trang 7

B9t đầuint i,

T9t theo iTr; 300 millis

Bâ Ct s`ng led 5 v+ 6Tr; 300 millisBâ Ct s`ng led 4 v+ 7

Bâ Ct s`ng led 3 v+ 8Bâ Ct s`ng led 2 v+ 9

T9t led 2 v+ 9T9t led 3 v+ 8T9t led 4 v+ 7Sai

Tr; 300 millisTr; 300 millisTr; 300 millisT9t led 5 v+ 6Tr; 300 millis

Tr; 300 millis

Tr; 300 millis

Tr; 300 millis

Bă t đâ ustatic chay5; int i,

Hình 1.8: Lưu đồ điều khiển 8 LED s ng dồn và tắt dồn t' trong ra 2 bên

Hình 1.9: Lưu đồ điều khiển 8 LED s ng xen ke

6

Trang 8

5 Vilt code v+ gimi thnch

Hiê Cu Gng 1: Điou khiqn 8 LED s`ng nhrp nh`y

for(i= ;i<= ;i++0 7 ) //Hàm lặp for biến i

pinMode pinLed( [i],OUTPUT); // Qui định mảng pin led là đ^u ra}

voidloop() // Bắt đ^u vXng lặp{

for(i= ;i<= ;i++0 7 ) //Hàm lặp for cho biến i điều khiển 8 led digitalWrite pinLed( [i],LOW); // Điều khiển 8 led tắt delay(200); // Độ trễ 200 mili giây rồi sáng for(i= ;i<= ;i++0 7 ) //Hàm lặp for cho biến i

digitalWrite pinLed( [i],HIGH); // Điều khiển 8 led bâ Gt delay(200); // Sáng 200 mili giây rồi tắt

Hiê Cu Gng 2: Điou khiqn 8 LED ch8y ts tr`i sang phmi

int pinLed[] = {2 3 4 5 6 7 8 9, , , , , , , ,}; //Kkhai báo mô Gt mảng tên là pinLed gồm 8 ph^n tt tương ứng với 8 đYn led

int i, j; //Định dạng kiểu cho i và j là kiểu số nguyênvoidsetup() // Bắt đàu chương trình

for(i=0; i<= ; i++7 ) //St dvng vXng lă Gp với biến i điều khiển 8 led pinMode pinLed( [i],OUTPUT ;) //Quy định các chân từ 2-9 là các cxng ra}

voidloop() //Bắt đ^u vXng lă Gp{

static int chay1 = 0; //Khai báo biến chay1 là biến tynh nguyên và gán = 0 for(i = ; i < ; i++0 8 ) //St dvng vXng lă Gp với biến i điều khiển 8 led{

for(j = ; j < ; j++0 8 ) //St dvng vXng lă Gp với biến j điều khiển 8 led digitalWrite pinLed( [j],LOW); /Đđiều khiển 8 led tắt

digitalWrite pinLed( [chay1],HIGH ;) //Điều khiển led chân số 2 sáng delay(300); //Thzi gian trễ 300 millis rồi tắt

chay1++; //Các đYn led sáng l^n lư{t theo chiều tăng d^n(từ trái qua phải) if(chay1 > 7) //Điều kiê Gn: nếu chay1>7 thì gán chay1=0

chay1 = 0; //Gán chay1=0

7

Trang 9

Hiê Cu Gng 3: Điou khiqn 8 LED ch8y ts phmi sang tr`i

int pinLed[]={2 3 4 5 6 7 8 9, , , , , , , }; //Khai báo 1 mảng gồm 8 ph^n tt tương ứng với 8 chân led

int i,j; //Khai báo biến i,j là kiểu số nguyênvoidsetup() //KhWi động chương trình{

for(i= ;i<= ;i++0 7 ) //St dvng hàm lă Gp với biến i điều khiển 8 đYn ledpinMode pinLed( [i],OUTPUT ;) //Quy định các chân c}a mảng là đ^u ra}

voidloop() // Bắt đ^u vXng lặp{

chay2= ;

staticint 7 //Khai báo biến chay2 là biến tynh nguyên và gắn = 7for(i= ;i< ;i++0 8 ){ //St dvng hàm lă Gp với biến i điều khiển 8 led for j = ; j < ; j++( 0 8 ) //St dvng vXng lă Gp với biến j điều khiển 8 led digitalWrite pinLed( [j],LOW ;) //Điều khiển 8 led tắt

digitalWrite pinLed( [chay2],HIGH); //Điều khiển led chân 9 bâ Gt delay(300); // Độ trễ 300 mili giây rồi tắt

chay2 ; //Giảm 1 đơn vị

if(chay2<0) //Nếu chay2<0 thì gắn chay2=7 cho chạy lại từ led 9 chay2= ; 7 //Gán chay2 bằng 7

Hiê Cu Gng 4: Điou khiqn 8 LED s`ng d]n v+ t9t d]n ts tr`i sang phmi

// Định nghya các chân kết nối LED

#defineLED12 // Định nghya chân kết nối led 1 là chân số 2 #defineLED23 // Định nghya chân kết nối led 2 là chân số 3#defineLED34 // Định nghya chân kết nối led 3 là chân số 4#defineLED45 // Định nghya chân kết nối led 4 là chân số 5#defineLED56 // Định nghya chân kết nối led 5 là chân số 6#defineLED67 // Định nghya chân kết nối led 6 là chân số 7#defineLED78 // Định nghya chân kết nối led 7 là chân số 8#defineLED89 // Định nghya chân kết nối led 8 là chân số 9voidsetup(){ // Bắt đ^u chương trình

pinMode(LED1, OUTPUT); //Khai báo chân số 2 là chân ra pinMode(LED2, OUTPUT); //Khai báo chân số 3 là chân ra pinMode(LED3, OUTPUT); //Khai báo chân số 4 là chân ra pinMode(LED4, OUTPUT); //Khai báo chân số 5 là chân ra pinMode(LED5, OUTPUT); //Khai báo chân số 6 là chân ra pinMode(LED6, OUTPUT); //Khai báo chân số 7 là chân ra pinMode(LED7, OUTPUT); //Khai báo chân số 8 là chân ra pinMode(LED8, OUTPUT); //Khai báo chân số 9 là chân ra }

voidloop(){ // Bắt đ^u vXng lặp // Sáng dồn từ trái qua phải

digitalWrite(LED1, HIGH); // Bật LED1

8

Trang 10

delay(300); // Đ{i 300 mili giây digitalWrite(LED2, HIGH); // Bật LED2 delay(300); // Đ{i 300 mili giây digitalWrite(LED3, HIGH); // Bật LED3 delay(300); // Đ{i300 mili giây digitalWrite(LED4, HIGH); // Bật LED4 delay(300); // Đ{i 300 mili giây digitalWrite(LED5, HIGH); // Bật LED5 delay(300); // Đ{i 300 mili giây digitalWrite(LED6, HIGH); // Bật LED6 delay(300); // Đ{i 300 mili giây digitalWrite(LED7, HIGH); // Bật LED7 delay(300); // Đ{i 300 mili giây digitalWrite(LED8, HIGH); // Bật LED8 // Tắt dồn từ trái qua phải

digitalWrite(LED1, LOW); // Tắt LED1 delay(300); // Đ{i 300 mili giây digitalWrite(LED2, LOW); // Tắt LED2 delay(300); // Đ{i 300 mili giây digitalWrite(LED3, LOW); // Tắt LED3 delay(300); // Đ{i 300 mili giây digitalWrite(LED4, LOW); // Tắt LED4 delay(300); // Đ{i 300 mili giây digitalWrite(LED5, LOW); // Tắt LED5 delay(300); // Đ{i 300 mili giây digitalWrite(LED6, LOW); // Tắt LED6 delay(300); // Đ{i 300 mili giây digitalWrite(LED7, LOW); // Tắt LED7 delay(300); // Đ{i 300 mili giây digitalWrite(LED8, LOW); // Tắt LED8}

Hiê Cu Gng 5: Điou khiqn 8 LED s`ng d]n v+ t9t d]n ts phmi sang tr`i

int pinLed[]={2 3 4 5 6 7 8 9, , , , , , , }; // Khai báo mảng pinLed gồm 8 ph^n tt tương ứng với 8 chân từ 2- 9

// (0,1,2,3,4,5,6,7) tương ứng vơi số thứ tự chân từ 2-9 int i; // Khai báo biến i kiểu số nguyên

voidsetup() // Bắt đ^u chương trình{

for(i= ;i<= ;i++0 7 ) // St dvng vXng lă Gp với biến i điều khiển 8 led pinMode pinLed( [i],OUTPUT); // quy định mảng pinLed là đ^u ra}

voidloop() // Bắt đ^u vXng lặp{

static int chay4=0; // Khai báo cta biến tynh ( chỉ 1 l^n duy nhất) for(i= ;i< ;i++0 8 )// St dvng vXng lâ Gp với biến i điều khiển 8 led

9

Trang 11

digitalWrite pinLed( [i],LOW ;) // Điều khiển 8 led tắt delay(300); // Độ trễ 300 mili giây rồi sáng

for(chay4= ;chay4>= ;chay4 7 0 ) //Điều khiển 8 led sáng dồn từ phải qua trái

digitalWrite pinLed( [chay4],HIGH ;) // Điều khiển 8 led sáng delay(300); // Độ trễ 300 mili giây rồi tắt

Hiê Cu Gng 6: Điou khiqn 8 LED s`ng d]n v+ t9t d]n ts 2 bên v+o trong

int pinLed[]={2 3 4 5 6 7 8 9, , , , , , , };//Khai báo mảng pinLed gồm 8 ph^n tt tương ứng với 8 chân từ 2- 9

// {0,1,2,3,4,5,6,7} tương ứng vơi số thứ tự chân (2,3,4,5,6,7,8,9)int i;// Khai báo biến i kiểu số nguyên

voidsetup()// Bắt đ^u chương trình{

for(i= ;i<= ;i++0 7 )// St dvng vXng lă Gp với biến i điều khiển 8 led

pinMode pinLed( [i],OUTPUT ;) // Quy định các chân c}a mảng pinLed là đ^u ra

voidloop()// Bắt đ^u vXng lặp{

for(i= ;i< ;i++0 8 )// St dvng vXng lă Gp với biến i điều khiển 8 led digitalWrite pinLed( [i],LOW ;)// Điều khiển 8 led tắt

delay(300);// Độ trễ 300 mili giây rồi sáng

digitalWrite pinLed( [ ],HIGH ;0 )// Điều khiển đYn led chân số 2 bâ Gt digitalWrite pinLed( [ ],HIGH ;7 )// Điều khiển đYn led chân số 9 bâ Gt delay(300);// Độ trễ 300 mili giây rồi tắt

digitalWrite pinLed( [ ],HIGH ;1 )// Điều khiển đYn led chân số 3 bâ Gt digitalWrite pinLed( [ ],HIGH ;6 )// Điều khiển đYn led chân số 8 bâ Gt delay(300);// Độ trễ 300 mili giây rồi tắt

digitalWrite pinLed( [ ],HIGH ;2 )// Điều khiển đYn led chân số 4 bâ Gt digitalWrite pinLed( [ ],HIGH ;5 )// Điều khiển đYn led chân số 7 bâ Gt delay(300);// Độ trễ 300 mili giây rồi tắt

digitalWrite pinLed( [ ],HIGH ;3 )// Điều khiển đYn led chân số 5 bâ Gt digitalWrite pinLed( [ ],HIGH ;4 )// Điều khiển đYn led chân số 6 bâ Gt delay(300);// Độ trễ 300 mili giây rồi tắt

digitalWrite pinLed( [ ],LOW ;0 )// Điều khiển đYn led chân số 2 tắt digitalWrite pinLed( [ ],LOW ;7 )// Điều khiển đYn led chân số 9 tắt delay(300);// Độ trễ 300 mili giây rồi tắt

digitalWrite pinLed( [ ],LOW ;1 )// Điều khiển đYn led chân số 3 tắt digitalWrite pinLed( [ ],LOW ;6 )// Điều khiển đYn led chân số 8 tắt

10

Trang 12

delay(300);// Độ trễ 300 mili giây rồi tắt

digitalWrite pinLed( [ ],LOW ;2 )// Điều khiển đYn led chân số 4 tắt digitalWrite pinLed( [ ],LOW ;5 )// Điều khiển đYn led chân số 7 tắt delay(300);// Độ trễ 300 mili giây rồi tắt

digitalWrite pinLed( [ ],LOW ;3 )// Điều khiển đYn led chân số 5 tắt digitalWrite pinLed( [ ],LOW ;4 )// Điều khiển đYn led chân số 6 tắt delay(300);// Độ trễ 300 mili giây rồi tắt

Hiê Cu Gng 7: Điou khiqn 8 LED s`ng d]n v+ t9t d]n ts trong ra 2 bên

int pinLed[]={2 3 4 5 6 7 8 9, , , , , , , };//Khai báo mảng pinLed gồm 8 ph^n tt tương ứng với 8 chân từ 2- 9

// {0,1,2,3,4,5,6,7} tương ứng vơi số thứ tự chân (2,3,4,5,6,7,8,9)int i;// Khai báo biến i kiểu số nguyên

voidsetup()// Bắt đ^u chương trình{

for(i= ;i<= ;i++0 7 )// St dvng vXng lă Gp với biến i điều khiển 8 led

pinMode pinLed( [i],OUTPUT ;) // Quy định các chân c}a mảng pinLed là đ^u ra

voidloop()// Bắt đ^u vXng lặp{

for(i=0; i< ; i++8 ) //St dvng vXng lă Gp với biến i điều khiển 8 led digitalWrite pinLed( [i],LOW); //Điều khiển 8 đYn led tắt

delay(300); //Thzi gian trễ 300 millis

digitalWrite pinLed( [ ],HIGH ;3 ) //Điều khiển đYn led chân số 5 bâ Gt digitalWrite pinLed( [ ],HIGH ;4 ) //Điều khiển đYn led chân số 6 bâ Gt delay(300); //Thzi gian trễ 300 millis rồi tắt

digitalWrite pinLed( [ ],HIGH ;2 ) //Điều khiển đYn led chân số 4 bâ Gt digitalWrite pinLed( [ ],HIGH ;5 ) //Điều khiển đYn led chân số 7 bâ Gt delay(300); //Thzi gian trễ 300 millis rồi tắt

digitalWrite pinLed( [ ],HIGH ;1 ) //Điều khiển đYn led chân số 3 bâ Gt digitalWrite pinLed( [ ],HIGH ;6 )//Điều khiển đYn led chân số 8 bâ Gt delay(300); //Thzi gian trễ 300 millis tắt

digitalWrite pinLed( [ ],HIGH ;0 ) //Điều khiển đYn led chân số 2 bâ Gt digitalWrite pinLed( [ ],HIGH ;7 ) //Điều khiển đYn led chân số 9 bâ Gt delay(300); //Thzi gian trễ 300 millis tắt

digitalWrite pinLed( [ ],LOW ;3 ) //Điều khiển đYn led chân số 5 tắt digitalWrite pinLed( [ ],LOW ;4 ) //Điều khiển đYn led chân số 6 tắt delay(300); //Thzi gian trễ 300 millis sáng

digitalWrite pinLed( [ ],LOW ;2 ) //Điều khiển đYn led chân số 4 tắt digitalWrite pinLed( [ ],LOW ;5 ) //Điều khiển đYn led chân số 7 tắt delay(300); //Thzi gian trễ 300 millis sáng

digitalWrite pinLed( [ ],LOW ;1 ) //Điều khiển đYn led chân số 3 tắt digitalWrite pinLed( [ ],LOW ;6 ) //Điều khiển đYn led chân số 8 tắt delay(300); //Thzi gian trễ 300 millis sáng

digitalWrite pinLed( [ ],LOW ;0 ) //Điều khiển đYn led chân số 2 tắt

11

Trang 13

digitalWrite pinLed( [ ],LOW ;7 ) //Điều khiển đYn led chân số 9 tắt delay(300); //Thzi gian trễ 300 millis sáng

Hiê Cu Gng 8: Điou khiqn 8 LED s`ng xen ke

int pinLed[]={2 3 4 5 6 7 8 9, , , , , , , }; //Đặt tên cho các chân Led tương ứng với các chân số(0,1,2,3,4,5,6,7)

int i; //Khai báo i với kiểu số nguyênvoidsetup() //Bắt đ^u chương trình{

for(i= ;i<= ;i++0 7 ) //VXng lặp cho biến i

pinMode pinLed( [i],OUTPUT ;) //Quy định mảng pinLed là đ^u ra}

voidloop() //Bắt đ^u vXng lặp{

static int chay5=0; //Khai báo biến chay5 và gán bằng 0

for(chay5= ;chay5< ;chay5+=0 8 2) //VXng lặp các vị trí từ 0 đến 8 mỗi l^n lặp tăng 2 đơn vị cho đến 8 thì kết thúc

digitalWrite pinLed( [chay5],HIGH ;) //Bật sáng các đYn(0,2,4,6,8) delay(300); //Độ trễ 300 mili giây rồi tắt

for(i= ;i< ;i++0 8 ) //VXng lặp for cho biến i digitalWrite pinLed( [i],LOW ;) //Tắt các đYn

for(chay5= ;chay5< ;chay5+=1 8 2) // VXng lặp các vị trí từ 1 tới 8 mỗi l^n lặp tăng 2 đơn vị cho đến 7 thì kết thúc

digitalWrite pinLed( [chay5],HIGH ;) //Bật sáng các đYn vị trí(1,3,5,7) delay(300); //Độ trễ 300 mili giây rồi tắt

for(i= ;i< ;i++0 8 ) //VXng lặp for cho biến i digitalWrite pinLed( [i],LOW ;) //Tắt các đYn}

6 Thực nghiê Cma C`c bước thực hiê Cn

Bước 1: ChuYn bi c`c linh kiện:

Arduino board, 8 đYn LED.8 resistor 220 ohm, Dây nối.

Bước 2: Klt nối c`c linh kiện:

Nối mỗi đYn LED với một resistor 220 ohm Một đ^u c}a resistor nốivào chân dài c}a đYn LED (chân dài là anode - chân dương), và đấu cXn lạic}a resistor nối vào chân GND c}a Arduino.

Nối chân ngắn c}a mỗi đYn LED (chân ngắn là cathode - chân âm) vớicác chân số từ 2 đến 9 c}a Arduino.

Bước 3: Lập tr<nh Arduino:

12

Trang 14

St dvng dvng lập trình Arduino IDE, viết mã để điều khiển LED sáng tắttheo một chu kỳ.

Bước 4: N8p chương tr<nh:

Kết nối Arduino với máy tính qua cáp USB.

St dvng Arduino IDE để nạp chương trình vào board Arduino.

Qua các thực nghiệm trên ta thấy tuy cùng 1 mạch điều khiển nhưng ta cóthể tạo ra nhiều hiệu ứng khác nhau.

Sau khi thực hiện viết các code đYn led sáng xen kẽ, chúng ta đã có thểtạo ra một hiệu ứng đYn led đẹp mắt Việc này đư{c thực hiện bằng cáchst dvng các lệnh điều khiển đYn led để thay đxi trạng thái c}a chúng Kếtquả là chúng ta có thể tạo ra một chuỗi các đYn led sáng xen kẽ, tạo nênmột hiệu ứng ánh sáng độc đáo và hấp dẫn.

13

Trang 15

Thống kê thực hiện công việc của c`c th+nh viên

Phần trăm thựchiện công việc

(do nhómtrưWng chấm)

Điqm nhóm(do thầy gi`o

Điqm của b+itập

Trang 16

BÀI 2: ĐIỀU KHIỂN Đ€N LED B•NG N‚T NHƒN 1 Yêu cầu

Hiê Gu ứng 1: Điều khiển đYn bằng cách nhấn giŒ nút.Hiê Gu ứng 2: Điều khiển đYn bằng cách nhấn nhả nút.Lập trình code cho từng hiệu ứng.

2 điê Gn trW vạch Hạn chế dXng vào đYn led (tránh h[ng led).Bảng mạch Đặt và lắp ráp các thiết bị.

Nguồn cung cấp cho Arduino Uno R3 Arduino hoạt đô Gng.Laptop (có cài ph^n mềm Arduino IDE) Viết code cho Arduino.

3 Sơ đ] nguyên ly

Hình 2.1: Sơ đồ nguyên lý điều khiển led bằng nút nh!n

4 Lưu đ] thuâ Ct to`n

15

Trang 17

Hình 2.2:Lưu đồ điều khiển bâ ?t tắt LED bằng nh!n gi@ nút

Hình 2.3: Lưu đồ điều khiển bâ ?t tắt LED bằng nh!n nh* nút

5 Vilt code v+ gimi thnch

Hiê Cu Gng 1: Điou khiqn đèn bằng c`ch nhrn giữ nkt

int Nut_nhan = 11; // Khai báo kiểu nguyên Nut_nhan gán chân số 11int Den_led = 2; // Khai báo Den_led nguyên chân số 2

16

Trang 18

voidsetup() // KhWi tạo chương trình {

pinMode(Nut_nhan, INPUT); // Cài đặt chân số 11 W trạng thái đ^u vào dŒ liệu pinMode(Den_led, OUTPUT); // Cài đặt chân số 2 W dưới dạng đ^u ra}

voidloop() // KhWi tạo vXng lă Gp{

Trang_thai_nut = int digitalRead(Nut_nhan ;) //Đọc trạng thái nút nhấn if(Trang_thai_nut == HIGH) // Nếu đọc trạng thái c}a nút nhấn W trạng thái cao

digitalWrite(Den_led,HIGH ;) // Điều khiển đYn sáng

else{ //Ttrưzng h{p khác

digitalWrite(Den_led,LOW ;) // Điều khiển đYn tắt

Hiê Cu Gng 2: Điou khiqn đèn bằng c`ch nhrn nhm nkt

int nut_nhan = 11;// Khai báo kiểu nguyên nut nhan gán chân số 11int den_led = 2;//Khai báo Led nguyên chân số 2

boolean i = ; 0 //Khai báo biến I thuộc kiểu nhị phân (0 và 1)voidsetup() // KhWi tạo chương trình

pinMode(nut_nhan,INPUT ;) //Cài đặt chân D11 W trạng thái đọc dŒ liệu pinMode(den_led,OUTPUT ;) // Cài đặt chân D2 dưới dạng OUTPUT}

voidloop()// Bắt đ^u vXng lă Gp{

if(digitalRead(nut_nhan) == HIGH)// Kiểm tra trạng thái nhấn nút

digitalWrite(den_led,HIGH ;)// Điều khiển đYn led sáng

17

Trang 19

Kết nối Arduino với máy tính qua cap USB.

St dvng Arduino IDE để nạp chương trình vào board Arduino.

Trang 20

Qua viê Gc lắp ráp mạch trên ta có thể điều khiển đYn sáng bằng viê Gc giŒ nútnhấn và tắt đYn bằng thả tay

Ưu điqm:

Chúng ta có thể điều khiển 1 cách chính xác đúng theo ý c}a mìnhtrong nhưng việc quan trọng.

Dễ st dvng và không tốn nhiều diê Gn tích.

Tiết kiê Gm năng lư{ng và tăng tuxi thọ thiết bị khi không st dvng.

Nhưzc điqm:

Chúng tốn quá nhiều công sức và sự chú ý cho 1 việc.

Khó khăn cho viê Gc điều khiển nhiều bóng theo nhiều dạng khác nhau.Có thể hoạt đô Gng không chính xác nếu nút bị h[ng.

Ứng d{ng:

Thưzng đư{c st svng trong nhŒng nhà máy may hay nhà máy cơ khí.St dvng trong viê Gc làm chuông báo cho nhà,

Hiê Cu Gng 2: Điou khiqn đèn bằng nhrn nhm nkt

Qua viê Gc điều khiển led bằng nhấn nhả nút ta thấy ưu điểm hơn so với nhấngi” nút Bâ Gt sáng và tắt đYn chỉ c^n nhấn nhả mà không phải giŒ.

Trang 21

BÀI 3: ĐIỀU KHIỂN Đ€N LED B•NG BI‡N TRƠ1 Yêu cầu

Hiê Gu ứng 1: Điều khiển tốc độ nháy c}a đYn bằng biến trW.Hiê Gu ứng 2: Điều khiển độ sáng tối c}a đYn bằng biến trW.Lập trình code cho từng hiệu ứng.

3 Sơ đ] nguyên ly

Hình 3.1: Sơ đồ nguyên lý điều khiển đèn led bằng biến trở

4 Lưu đ] thuâ Ct to`n

20

Trang 22

B9t đầuChân led v+ l+ đầu raChân đFc gi` tri biln tr‰ Analog

x = `nh x8 gi` tri của biln tr‰

x = `nh x8 gi` tri của biln tr‰

Hình 3.2: Lưu đồ điều khiển tDc đô ? nh y cFa đèn bằng biến trở

Hình 3.3: Lưu đồ điều khiển s ng tDi cFa đèn bằng biến trở

5 Vilt code v+ gimi thnch

Hiê Cu Gng 1: Điou khiqn tốc độ nh`y của đèn bằng biln tr‰

21

Trang 23

int Led = 13; //Khai báo một biến có tên Led và gán giá trị 13 cho nó,st dvng để kếtnối đYn LED.

voidsetup()//Bắt đ^u chương trình.{

pinMode(Led ,OUTPUT);//Qui định chân số 13 là cxng ra.}

voidloop() {//Bắt đ^u vXng lặp.

int inputval = analogRead(A0 ;)//Đọc giá trị biến trW và lưu vào "inputval"int x = map(inputval, ,1 1023,100 2000, ;)//Ánh xạ c}a giá trị c}a biến trW "0->1023" thành khoảng "100->2000".

digitalWrite(Led,HIGH ;)//Điều khiển Led mW.delay(x ;)//Trễ bằng giá trị đư{c ánh xạ.digitalWrite(Led,LOW ;)//Điều khiển Led tắt.delay(x ;)//Trễ bằng giá trị đư{c ánh xạ.}

Hiê Cu Gng 2: Điou khiqn độ s`ng tối của đèn bằng biln tr‰

int Led = 9; // Khai báo chân ra c}a led là chân 9- chân băng xung voidsetup() //Bắt đ^u chương trình

analogWrite(Led,x ;)// Gán giá trị x vào chân ra c}a Led }

6 Thực nghiê Cma C`c bước thực hiê Cn

Trang 24

Chân số 1 c}a biến trW sẽ nối đất c}a Arduino.

Chân số 2 c}a biến trW sẽ nối đến chân Analog A0 c}a Arduino.Chân số 3 c}a biến trW sẽ nối đến nguồn 5V c}a Arduino.Lập trình Arduino: St dvng lập trình Arduino IDE.Nạp chương trình:

Kết nối Arduino với máy tính qua cap USB.

St dvng Arduino IDE để nạp chương trình vào board Arduino.

b H<nh mnh klt qum v+ video

Hình 3.4: Sơ đồ thực tế điều khiển tDc độ nh y cFa đèn bằng biến trở

Hình 3.5: Sơ đồ thực tế điều khiển độ s ng tDi cFa đèn bằng biến trở

7 Klt luâ Cn

23

Trang 25

Hiê Cu Gng 1: điou khiqn tốc đô C nh`y của đèn bằng biln tr‰

Qua viê Gc lắp mạch trên ta có thể điều khiển tốc đô G nháy c}a đYn nhanh haychâ Gm bằng viê Gc xoay biến trW.

Không tự động: Không tự động điều chỉnh tốc độ nhấp nháy theo điềukiện môi trưzng hoặc các yếu tố khác

Hiê Cu Gng 2: Điou khiqn đô C s`ng tối của đèn bằng biln tr‰

Qua lắp ráp mạch trên ta có thể điều khiển sáng tối c}a led bằng viê Gc xoaybiến trW.

Trang 26

Không hiệu quả: Phương pháp này không hiệu quả từ mặt năng lư{ng,vì một ph^n năng lư{ng đư{c tiêu thv dưới dạng nhiệt.

Giới hạn về tuxi thọ: St dvng biến trW để điều chỉnh sáng tối c}a đYnLED có thể làm giảm tuxi thọ c}a đYn LED.

Ứng d{ng:

ĐYn chiếu sáng trong nhà: Bạn có thể st dvng biến trW để điều khiểnsáng tối c}a đYn LED trong phXng khách, phXng ng} hoặc nhŒng nơic^n điều chỉnh ánh sáng theo nhu c^u

Nghiên cứu: Bạn có thể st dvng để điều khiển ánh sáng bằng biến trW đểtạo điều kiê Gn ánh sáng chính xác cho các thí nghiệm hoặc quan sát

Quảng cáo và hiển thị: Trong lynh vực quảng cáo và trưng bày sản phẩm.Xe hơi và phương tiện di động:Ccó thể giúp điều chỉnh ánh sáng theođiều kiện lái xe cv thể hoặc tạo ra các hiệu ứng ánh sáng độc đáo.

25

Trang 27

BÀI 4: ĐIỀU KHIỂN Đ€N LED B•NG CŒM BI‡N ‹NH S‹NG1 Yêu cầu

Hiê Gu ứng: Điều khiển bật tắt đYn led bằng cảm ứng ánh sáng.Khảo sát cảm biến ánh sáng.

3 Sơ đ] nguyên ly

a Khmo s`t đFc cmm biln `nh s`ng

Hình 4.1: Sơ đồ nguyên lý kh*o s t c*m biến nh s ng

b Điou khiqn led bằng cmm biln `nh s`ng

26

Trang 28

Bă t đâ u

Chân đ c gia tr c m biê noi a

Chân led la đâ u ra

Hình 4.2: Sơ dồ nguyên lý điều khiển led bằng c*m biến nh s ng

4 Lưu đ] thuâ Ct to`n

Hình 4.3: Lưu đồ kh*o s t c*m biến nh s ng

Hình 4.4: Lưu đồ điều khiển đèn bằng c*m biến nh s ng

27

Trang 29

5 Vilt code v+ gimi thnchKhmo s`t cmm biln `nh s`ng

int quangtro = A0; //Thiết lâ Gp chân anolog đọc quang trWvoidsetup() //Bắt đ^u chương trình

giatriQuangtro = int analogRead(quangtro);

//Đọc giá trị cảm biến W chân A0 rồi gán vào biến giatriQuangtro Serial println (giatriQuangtro); //Xuất giá trị ra Serial Monitor delay(500); //Trễ 500 millis rồi xuất tiếp giá trị

Điou khiqn led bằng cmm biln `nh s`ng

int cambienPin =A0; // Khai báo chân đọc giá trị cảm biến là chân A0int ledPin = 9; // Khai báo chân điều khiển led là chân số 9voidsetup() // Bắt đ^u chương trình

Trang 30

a C`c bước thực hiê Cn

Chuẩn bị:

Arduino Uno R3.1 led đơn.

1 điện trW 220 Ohm, 1 điện trW 1k ohm, 1 điện trW 10k Ohm.1 cảm biến ánh sáng.

1 bo cắm, cxng kết nối USB.Dây cắm.

Kết nối các linh kiện:

Cảm biến ánh sáng 1 đ^u nối với nguồn 5V và đ^u cXn lại sẽ nối đếnchân Analog A0 c}a Arduino cùng với điện trW 10k Ohm, đ^u cXn lạic}a điện trW nối với đất.

Chân số 9 sẽ nối trực tiếp với led, đ^u cXn lại c}a led sẽ nối với 1 điệntrW 220 Ohm Đ^u cXn lại c}a điện trW nối xuống đất.

Lập trình Arduino:

St dvng lập trình Arduino IDE.Nạp chương trình:

Kết nối Arduino với máy tính qua cap USB.

St dvng Arduino IDE để nạp chương trình vào board Arduino.

b H<nh mnh klt qum v+ video

Hình 4.5: Sơ đồ thực tế kh*o s t c*m biến nh s ng

29

Trang 31

Hình 4.6: Sơ đồ thực tế điều khiển led bằng c*m biến nh s ng

7 Klt luâ Cn

Qua đoạn code trên là một ví dv đơn giản để điều khiển đYn Led bằng cảmbiến ánh sáng đư{c điều khiển bằng Arduino Cảm biến này hoạt động dựatrên nguyên lý c}a hiệu ứng quang điện.

Giá trị c}a cảm biến ánh sáng sẽ phv thuộc vào cưzng độ ánh sáng Nếu ánhsáng càng yếu thì giá trị càng nh[, nếu cưzng độ ánh sáng càng lớn thì giátrị càng lớn.

Ưu điqm:

ĐYn có thể tự bật tắt và điều khiển ánh sáng khi có vật di chuyển vàovùng cảm ứng nên có thể tiết kiệm năng lư{ng vì đYn sẽ tự động tắt khikhông st dvng.

Không c^n phải bật tắt đYn bằng tay, thuận l{i cho việc st dvng.Tăng tuxi thọ cho đYn led.

Trang 32

hiện đại, tại tiền sảnh, hành lang, nhà vệ sinh, cxng nhà, c}a các công ty,trung tâm thương mại và bệnh viện,…các khu vực có nhu c^u chiếu sángliên tvc.

Thống kê thực hiện công việc của c`c th+nh viên

Phần trăm thựchiện công việc

(do nhómtrưWng chấm)

Điqm nhóm(do thầy gi`o

Điqm của b+itập

Trang 33

BÀI 5: ĐIỀU KHIỂN LED ĐA S•C RGB1 Yêu cầu

Kết nối đYn LED RGB đa sắc với Arduino.

St dvng mã nguồn để tạo hiệu ứng c^u vồng với LED RGB.

Phân biê Gt Led chung Anode hay Cathode lắp mạch phù h{p (chân (+)anode nối nguồn, chân (-) cathode nối đất).

2 ChuYn bi

Arduino Uno R3 (mã hóa code).

1 Led đa sắc RGB (là loại led có màu ánh sáng đa sắc).3 điện trW 220Ω ( dùng để hạn dXng cho Led RGB) dây truyền dŒ liệu ( truyền code vào Arduino).

Bo cắm (là công cv để thiết kế và tht nghiệm mạch, gắn các linh kiệnc”ng như tái st dvng rất dễ).

Dây cắm (kết nối các linh kiện với nhau).

Nguồn cung cấp cho Arduino Uno R3 Arduino hoạt đô Gng.Laptop (có cài ph^n mềm Arduino IDE) Viết code cho Arduino.

Khmo s`t đèn Led đa s9c RGB

Hình 5.1: Kh*o s t led đa sắc RGB

a LED RGB Cực Âm Chung:gồm 3 chân diot mắc song song,trong đó 1

chân âm chung và 3 chân dương riêng từng màu đ[, xanh lá ,xanh lam(R-G-B).Điều khiển LED bằng xuất xung PWM trên chân dương riêng.

Chức năng: Có thể ánh sáng W tất cả các mức độ màu sắc từ cực âmđến cực dương.

32

Trang 34

Điều chỉnh màu sắc: Điều chỉnh mức độ c}a từng màu để tạo ra mộtloạt các màu sắc khác nhau.

b LED RGB Cực Dương Chung: gồm 3 chân diot mắc song song,trong

đó 1 chân dương chung và 3 chân âm riêng từng màu đ[, xanh lá ,xanhlam (R-G-B).Điều khiển LED bằng xuất xung PWM trên chân âmriêng.

Chức năng: Có thể ánh sáng W mức độ màu sắc cực dương và các màusáng tương ứng.

Điều chỉnh màu sắc: Ch} yếu tập trung vào các mức màu sáng hơntrong phx màu, giŒa mức trung bình và cực dương.

3 Sơ đ] nguyên ly

Hình 5.2: Sơ đồ nguyên lý điều khiển led RGB( Kathode chung)

Hình 5.3: Sơ đồ nguyên lý điều khiển led RGB (Anode chung)

33

Trang 35

B9t đầuChân led v+ l+ chân ra

Đ• s

Sai4 Lưu đ] thuâ Ct to`n

Hình 5.4: Lưu đồ điều khiển LED RGB(Kathode chung)

5 Vilt code v+ gimi thnch

const int RED_PIN = 9; //Gán led đ[ với chân 9const int GREEN_PIN = 10; //Gán led xanh lá với chân 10const int BLUE_PIN = 11; //Gán led xanh dương với chân 11voidsetup(){ //Bắt đ^u chương trình

pinMode(RED_PIN, OUTPUT); //Khai báo chân ra c}a led đ[ pinMode(GREEN_PIN, OUTPUT); //Khai báo chân ra c}a led xanh lá pinMode(BLUE_PIN, OUTPUT); //Khai báo chân ra c}a led xanh dương}

voidloop(){ //Bắt đ^u vXng lă Gp

showRainbow(); //Hàm để chạy hiệu ứng c^u vồng}

voidshowRainbow(){ //Tạo mô Gt hàm con với tên là showRainbow for(int i = ; i < 0 768; i++) //Hàm lă Gp với biến i chạy từ 0-767

showRGB(i); //Show RGB với từng i tương ứng delay(15); //Trễ 15 millis

}

voidshowRGB(intcolor) //Khai báo hàm con chạy hiển thị màu sắc theo vùng{

redPWM;int //Khai báo hàm redPWM greenPWM;int //Khai báo hàm greenPWM bluePWM;int //Khai báo hàm bluePWM

if(color <= 255) //Đ[ - Xanh lá tương ứng i = 0 -> 255

redPWM = 255 - color; //Đ[ đi từ sáng thành tắt greenPWM = color; //Xanh lá từ tắt thành sáng bluePWM = 0; //Xanh dương luôn tắt

else if color <= ( 511) //Xanh lá - Xanh dương ứng với i = 256 -> 511

redPWM = 0; //Đ[ luôn tắt

greenPWM = 255 - color - ( 256); //Xanh lá từ sáng thành tắt bluePWM = color - ( 256); //Xanh dương từ tắt thành sáng

else // color >= 512 //Xanh dương - Đ[ ứng với i = 512 -> 767

redPWM = color - ( 512); //Đ[ tắt rồi lại sáng greenPWM = 0; //Xanh lá luôn tắt

bluePWM = 255 - color - ( 512); //Xanh dương từ sáng thành tắt

34

Trang 36

analogWrite(RED_PIN, redPWM); //Xuất lên chân 9 tương ứng analogWrite(GREEN_PIN, greenPWM); //Xuất lên chân 10 tương ứng analogWrite(BLUE_PIN, bluePWM ;) //Xuất lên chân 11 tương ứng}

6 Thực nghiê Cma C`c bước thực hiê CnBước 1 : ChuYn bi vật liệu

Arduino board (ví dv: Arduino Uno).

Module đYn LED RGB (ví dv: NeoPixel RGB LED Strip).Dây nối và các linh kiện điện tt c^n thiết.

Bước 2 : Klt nối đèn LED RGB

Kết nối chân đất (GND) c}a đYn LED với chân GND trên Arduino Kết nốichân dŒ liệu (Data) c}a đYn LED với một chân kỹ thuật số (ví dv: chân 6)trên Arduino.

Bước 3: Vilt mã điou khiqn

MW một trang code mới trong Arduino IDE và viết mã điều khiển đYnLED.

Bước 4: Tmi chương tr<nh

Kết nối Arduino board với máy tính qua cxng USB, chọn loại board vàcxng COM trong Arduino IDE, sau đó nhấn nút "Upload".

Bước 5: Kiqm tra klt qum

Sau khi chương trình đư{c tải lên Arduino, đYn LED RGB sẽ thực hiệnhiệu ứng c^u vồng theo mã bạn đã viết.

b H<nh mnh klt qum v+ video

35

Trang 37

Hình 5.5: Sơ đồ thực tế điều khiển led RGB(Kathode chung)

7 Klt luâ Cn

Qua mạch trên ta có thể tạo ra mô Gt led 7 sắc c^u vồng bằng mô Gt con led đơn4 chân Biết đư{c cách pha trô Gn màu trong led chỉ với 3 màu sắc(red, green,blue).

Giá cả có thể cao hơn so với đYn LED thông thưzng.

Có thể c^n kiến thức và kỹ năng kỹ thuật để cấu hình và điều khiển hiệuứng c^u vồng theo ý muốn

Dễ bị h[ng hoặc gặp sự cố kỹ thuật,việc sta chŒa hoặc thay thế có thểphức tạp hơn so với đYn LED thông thưzng

C^n đặt chú ý để không gây ảnh hưWng đến mắt ngưzi st dvng, đặc biệtlà khi st dvng trong môi trưzng ánh sáng yếu hoặc trong thzi gian dài.

Ứng d{ng:

Trang trí nội thất: St dvng để tạo điểm nhấn và tạo ra không gian trang tríđộc đáo trong các căn phXng, phXng khách, qu^y bar, quán cafe, v.v

36

Trang 38

Sự kiện và tiệc tùng: Tạo không gian sôi động và ấn tư{ng cho các bŒatiệc, buxi biểu diễn, concert, event thể thao hoặc các sự kiện giải trí khác.

Gia đình và không gian cá nhân: trong phXng ng}, phXng tắm, hoặcphXng trX chơi.

Quảng cáo và kinh doanh: Quảng cáo cho cta hàng, nhà hàng, quán bar,sự kiện, và các doanh nghiệp khác

37

Ngày đăng: 16/05/2024, 16:22