Chương Trình Led Đơn Sáng Dần Tắt Dần, Top 14+ Code Led Sáng Dần Mới Nhất 2023

hiệu ứng sáng dần, hiệu ứng sáng dồn, hiệu ứng sáng đuổi, hiệu ứng tắt dần, hiệu ứng tắt dồn, hiệu ứng tắt đuổi

Led đơn sẽ có rất nhiều hiệu ứng led đẹp dùng để các bạn có thể chạy led trái tim, led ngôi sao, led trang trí làm bảng hiệu,bằng các hiệu ứng sáng đuổi,sáng dần… ngoài ra còn nhiều hiệu ứng khác nữa. Hi vọng bài này sẽ đem đến cho các bạn thật nhiều kiến thức bổ ich.

Bạn đang xem: Chương trình led đơn sáng dần

Mua linh kiện điện tử tại
Điện tử Nhật Tùng


Khóa học Vi điều khiển có phí

*


Mục lục

2 Nguyên lý kết nối led đơn với vi điều khiển3 Chương trình hiệu ứng led đơn sáng dần3.1 Khai báo thư viện cho led đơn sáng dần3.1.2 Định cấu hình4 Các chương trình con led đơn sáng dần4.1 Có hai hình thức viết hiệu ứng led sáng dần:4.1.1 Kê khai từng giá trị cụ thể.4.1.2 Viết vòng lặp For, dùng công thức chung cho 8 led trái sang phải 4.2 Cách viết chương trình

Nguyên lý kết nối led đơn với vi điều khiển

Cách mắc led đơn để lập trình

*
Nguyên lý nối led đơn với vi điều khiển

Giải thích các nối led đơn

Đối với nguyên lý này muốn led sáng hay tắt phụ thuộc vào chân VDK Nếu VDK=1 thì hai đầu led đều bằng 1 tức sảy ra hiện tượng đẳng áp nên không làm led sáng được.Nếu VDK=0 thì điện áp lúc này sẽ đổ nguồn qua chân A của led và qua chân VDK, lúc này làm led sáng lên. Phần tính điện trở R32 thì đơn giản mình không bàn ở trong này nhé.

Chương trình hiệu ứng led đơn sáng dần

Bắt đầu đi giải thích các phần nào.

Khai báo thư viện cho led đơn sáng dần

*
Khai báo thư viện

Tiền sử lý

#include // dòng lệnh này là khai báo thư viện con Pic16F887, nếu các bạn sử dụng thử viện khác thì thay đổi tên lại nhé.

Ví dụ: Pic16F877A thì khai báo #include

Pic18F4550 thì khai báo #include

Định cấu hình

#FUSES NOWDT, PUT, HS, NOPROTECT, NOLVP // dòng lệnh này định cấu hình cho Pic

Chức năng các thông số như sau:

Thư viện delay

#use delay (clock =20M) // nếu sử dụng thạch anh nội thì từ 37k đến 8M, còn thạch anh ngoài thì 4M đến 20M, Khi bạn sử dụng thạch anh nào thì nhớ khai báo đúng ở đây là được.

Khai báo biến phục vụ cho chương trình led đơn

*
Khai báo biến

Biến y dùng xuất giá trị ra cho led , vì nó 8bit nên chỉ xuất tối đa là 8 led thôi nhé
Biến i dùng để đếm số vòng lặp for cho giá trị chỉ chạy từ 0 đến 8 hoặc 0 đến 16 nên không cần khai báo lớn nhằm tiết kiệm bộ nhớ.Biến h dùng lưu giá trị và xuất ra cho hai port C và D.

Lưu ý: Nếu chương trình nhỏ các bạn không kiểm soát biến tốt thì nên dùng biến có dấu 32bit.

Các chương trình con led đơn sáng dần

Chương trình con sáng dần 4 led từ trái qua phải.

Có hai hình thức viết hiệu ứng led sáng dần:

Kê khai từng giá trị cụ thể.

Hiệu ứng sáng sáng dần

*
Kê khai từng giá trị

Khi mình xuất số 0 thì led sáng, xuất số 1 thì led tắt.

Các đổi từ số 2 sang số hex các bạn xem phần video nhé.

Từ cách tính đó mình có được chương trình con như sau:

Cách viết chương trình

*
Chương trình 8 sáng dần

Xuất lần lượt từng giá trị ra, mỗi lần xuất mình delay một khoảng thời gian để dễ quan sát.

Phần cứng mạch thực tế các bạn xem phần video nhé

Viết vòng lặp For, dùng công thức chung cho 8 led trái sang phải 

Nếu cứ đi kê khai từng giá trị thế thì chương trình trở nên dài và khó khăn cho các hiệu ứng 32 led…

Từ đó mình phải đi tìm công thức chung cho hiệu ứng sáng dần.

Đầu tiên phải cho tắt các led trước

1111 1111 = 0xff

Sau đó bắt đầu dịch lần vô dịch lần vô là được

Toán tử dịch

Toán từ dịch trái sang phải là >>, còn dịch phải sang trái là :

ð Nếu 1111 1111 >>1 thì được giá trị như bảng dưới

11111111
01111111
00111111

Theo như trên thì các bạn thấy vị trí số 0 sẽ bị mất và vị trí số 7 bị trống và vi điều khiển sẽ lấp đầy bằng giá trị số 0 nên giá trị là : 0111 1111

Sáng dịch chỉ cần >>1 là led đã sáng dần lên cho mỗi lần dịch.

Từ đó mình đưa ra chương trình như sau

Cách viết chương trình

*
Chương trình sáng dần 8 led tsp

Đầu tiên mình phải cho led tắt hết bằng cách cho y = 0xff, xuất ra và delay để quan sát.

Xem thêm: Nguyên Liệu Nấu Chè Khúc Bạch Thanh Mát, Giải Nhiệt Cho Ngày Hè

Sau đó vòng lặp for chạy 8 lần, mỗi lần như thế thì mình cho y >>1 thì sẽ ra hiệu ứng mình cần dùng

Như vậy là đã xong 8 led Phần cứng mạch thực tế các bạn xem phần video nhé

Viết vòng lặp For, dùng công thức chung cho 16 led trái sang phải 

Tương tự như 8 led nhé

*
Chương trình sáng dần 16 tsp

Các bạn lúc này phải dùng biến 16bit nhé.

Vì là 16bit nên giá trị ban đầu từ trái sang phải là 0111 1111 1111 1111 = 0xffff;

Mỗi port của vi điều khiển chỉ xuất cho 8led, vì thế muốn xuất được 16led phải dùng 2 port C.D

Ví dụ

H = 0111 1111 1111 1111

Mình sắp xếp vào cho đúng nhé: giả sử 8 ô đầu là của Port C, còn lại của Port D

Khi mình Output_d(h) thì VĐK chỉ lấy giá trị từ bít thấp lên bit cao, đủ 8 bit thì ngưng

11111111

Khi đã lấy giá trị cho 8bit của Port
D thì còn lại 8 bit cao phải xuất cho Port C là : 0111 1111

Led đơn sẽ có rất nhiều hiệu ứng đẹp dùng để các bạn có thể chạy led trái tim, hình ngôi sao, dùng trang trí làm bảng hiệu, bằng các hiệu ứng sáng đuổi,sáng dần… ngoài ra còn nhiều hiệu ứng khác nữa. Hi vọng bài này sẽ đem đến cho các bạn thật nhiều kiến thức bổ ich.

Các bạn tải link giáo trình:

Giáo trình : Vi điều khiển – Lý thuyết – Nguyễn Đình Phú

Giáo trình : Vi điều khiển – Thực hành – Nguyễn Đình Phú

Bài giảng: Vi điều khiển – Lý thuyết – Thực hành – Trương Ngọc Anh

Pass giải nén : Nhattungnt93

Nguyên lýkết nối led đơn với vi điều khiển

Cách nối phần cứng


*

Nguyên lý nối led đơn với vi điều khiển

Giải thích cách nối

Đối với nguyên lý này muốn led sáng hay tắt phụ thuộc vào chân VDK Nếu VDK=1 thì hai đầu đều bằng 1 tức sảy ra hiện tượng đẳng áp nên làm led tắt. Nếu VDK=0 thì điện áp lúc này sẽ đổ nguồn qua chân A và qua chân VDK, led sáng Phần tính điện trở R32 thì đơn giản mình không bàn ở trong này nhé.

Chương trình hiệu ứng led đơn tắt dần

Bắt đầu đi giải thích các phần nào.Bạn đang xem: Code led sáng dần tắt dần

Khai báo thư viện cho led đơn sáng dần


*

Khai báo thư viện

Tiền sử lý

#include // dòng lệnh này là khai báo thư viện con Pic16F887, nếu các bạn sử dụng thử viện khác thì thay đổi tên lại nhé.

Ví dụ: Pic16F877A thì khai báo #include

Pic18F4550 thì khai báo #include

Định cấu hình

#FUSES NOWDT, PUT, HS, NOPROTECT, NOLVP // dòng lệnh này định cấu hình cho Pic

Chức năng các thông số như sau:

Thư viện delay

#use delay (clock =20M) // nếu sử dụng thạch anh nội thì từ 37k đến 8M, còn thạch anh ngoài thì 4M đến 20M, Khi bạn sử dụng thạch anh nào thì nhớ khai báo đúng ở đây là được.

Khai báo biến phục vụ cho chương trình led đơn


*

Khai báo biến

Biến y dùng xuất giá trị ra cho led , vì nó 8bit nên chỉ xuất tối đa là 8 led thôi nhé
Biến i dùng để đếm số vòng lặp for cho giá trị chỉ chạy từ 0 đến 8 hoặc 0 đến 16 nên không cần khai báo lớn nhằm tiết kiệm bộ nhớ.Biến h dùng lưu giá trị và xuất ra cho hai port C và D.

Lưu ý: Nếu chương trình nhỏ các bạn không kiểm soát biến tốt thì nên dùng biến có dấu 32bit.

Các chương trình con led đơn tắt dần

Chương trình con tắt dần 4 led từ trái qua phải.

Có hai hình thức viết hiệu ứng tắt dần:

Kê khai từng giá trị cụ thể.

0000 1111 = 0x0f // cho sáng 4 bóng1000 1111 = 0x8f // tắt bóng đầu tiên 1100 1111 = 0xcf //tắt 2 bóng1110 1111 = 0xef1111 1111 = 0xff

Khi mình xuất số 0 thì led sáng, xuất số 1 thì led tắt.

Các đổi từ số 2 sang số hex các bạn xem phần video nhé.

Từ cách tính đó mình có được chương trình con như sau:

Cách viết chương trình


*

Hiệu ứng tắt dần trực tiếp

Xuất lần lượt từng giá trị ra, mỗi lần xuất mình delay một khoảng thời gian để dễ quan sát.

Phần cứng mạch thực tế các bạn xem phần video nhé

Viết vòng lặp For, công thức chung cho 8 led trái sang phải 

Nếu cứ đi kê khai từng giá trị thế thì chương trình trở nên dài và khó khăn cho các hiệu ứng 32 led…

Từ đó mình phải đi tìm công thức chung cho hiệu ứng tắt dần.

Đầu tiên phải chosángcác led trước

0000 0000 = 0x00

Sau đó bắt đầu dịch lần vô dịch lần vô là được

Toán tử dịch

Toán từ dịch trái sang phải là >>, còn dịch phải sang trái là : >1 thì được giá trị như bảng dưới

Theo như trên chổ dịch 1 thì các bạn thấy vị trí số 0 sẽ bị mất và vị trí số 7 bị trống và vi điều khiển sẽ lấp đầy bằng giá trị số 0 nên giá trị là : 0000 0000

Nhưng vì trạng thái thứ hai phải là 1000 0000

Toán tử OR

từ đó phải | (OR) với 0x80 để làm cho trạng thái của led số 7 luôn lên 1.

Từ đó mình đưa ra chương trình như sau

Cách viết chương trình


*

Hiệu ứng tắt dần chạy bằng for

Đầu tiên mình phải cho sáng hết bằng cách cho y = 0x00, xuất ra và delay để quan sát.

Sau đó vòng lặp for chạy 8 lần, mỗi lần như thế thì mình choy >>1 sau đó minh | với 0x80thì sẽ ra hiệu ứng mình cần dùng

Như vậy là đã xong 8 led
Phần cứng mạch thực tế các bạn xem phần video nhé

Viết vòng lặp For, công thức chung cho 16 led trái sang phải 

Tương tự như 8 led nhé


Hiệu ứng tắt dần chạy 16led

Các bạn lúc này phải dùngbiến 16bitnhé.

Vì là 16bit nên giá trị ban đầu từ trái sang phải là 0000 0000 0000 0000 = 0x0000;

Mỗi port của vi điều khiển chỉ xuất cho 8led, vì thế muốn xuất được 16led phải dùng 2 port C.D

Ví dụ

H = 0111 1111 1111 1111

Mình sắp xếp vào cho đúng nhé: giả sử 8 ô đầu là của Port C, còn lại của Port D

Khi mình Output_d(h) thì VĐK chỉ lấy giá trị từ bít thấp lên bit cao, đủ 8 bit thì ngưng

11111111

Khi đã lấy giá trị cho 8bit của Port
D thì còn lại 8 bit cao phải xuất cho Port C là : 0111 1111


Có gì mới


Trending


IWIN - Game bài thượng lưu
Liên Hệ - Giới Thiệu - Điều Khoản - Bảo Mật

Leave a Reply

Your email address will not be published. Required fields are marked *

x

Welcome Back!

Login to your account below

Retrieve your password

Please enter your username or email address to reset your password.