You are on page 1of 18

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT

KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG CHI TIẾT


ĐỒ ÁN ĐIỆN TỬ

Tên đề tài:

GIÁO VIÊN HƯỚNG DẪN : Th.s HOÀNG THỊ THÚY

SINH VIÊN THỰC HIỆN : Trịnh Duy Anh 71DCDT22123

Trương Văn An 71DCDT22003

Nguyễn Phan An 71DCDT22001

LỚP : 71DCDT21

CHUYÊN NGÀNH : CNKT ĐIỆN TỬ VIỄN THÔNG

HÀ NỘI, 11 - 2022
MỤC LỤC

PHẦN MỞ ĐẦU……………………………………………………………………2
I. NỘI DUNG THỰC HIỆN...........................................................................................3
1. Lý do chọn đề tài....................................................................................................3
2. Mục tiêu của đề tài................................................................................................3
3. Giới hạn và phạm vi của đề tài..............................................................................3
4. Phương pháp nghiên cứu......................................................................................3
5. Kết quả dự kiến và hướng phát triển đề tài..........................................................3
II. CẤU TRÚC CỦA ĐỒ ÁN........................................................................................4
Chương 1. Kiến thức tổng quan..............................................................................4
1.1. Giới thiệu về đèn led.................................................................................4
1.1.1. Đèn led là gì?................................................................................................4
1.2. Kết luận............................................................................................................5
Chương 2. Cơ sở lý thuyết.......................................................................................5
2.1. Vi điều khiển: ATMEGA16.....................................................................5
2.1.1. Thông tin cơ bản về ATMEGA16........................................................5
2.1.2. Thông số kỹ thuật..................................................................................6
2.1.3. Các thông tin khác liên quan đến ATMEGA16.................................7
2.1.3.1. Phần mềm lập trình cho vi điều khiển ATmega16................................7
2.1.3.2. Phần mềm vẽ mạch Proteus........................................................................8
2.2. Arduino Uno R3 ATMEGA 16U2.................................................................8
2.3. Kết luận............................................................................................................9
Chương 3. Thi công và kiểm thử....................................................................................9
3.1. Sơ đồ khối........................................................................................................9
3.1.1. Sơ đồ khối..............................................................................................9
3.1.2. Chức năng...................................................................................................10
3.2. Sơ đồ nguyên lý và nguyên lý hoạt động.....................................................10
3.2.1. Sơ đồ nguyên lý...................................................................................10
3.2.2. Nguyên lý hoạt động...........................................................................11
3.3. Code Arduino IDE........................................................................................11
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI........................................16
PHỤ LỤC....................................................................................................................17
TÀI LIỆU THAM KHẢO..........................................................................................17
III. TIẾN ĐỘ THỰC HIỆN.......................................................................................18

1
Chương 1. Kiến thức tổng quan
1.1. Giới thiệu về đèn led
1.1.1. Đèn led là gì?
- LED (viết tắt của Light Emitting Diode hay điốt phát quang) là các điốt có khả
năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại. Cũng giống như điốt, LED
được cấu tạo từ một khối bán dẫn loại p ghép với một khối bán dẫn loại n
1.1.2. Tính năng và đặc điểm của đèn led
Đèn led có tuổi thọ và hiệu suất lớn hơn nhiều lần đèn sợi đốt và hiệu quả hơn so
với hầu hết các loại đèn huỳnh quang. Một số chip có khả năng phát ra hơn 300 lumen /
watt . Năm 2014, thị trường LED đạt 2 tỷ USD và dự kiến có thể đạt mức 25 tỷ USD vào
năm 2023. Theo thống kế trong năm 2016, các thiết bị chiếu sáng ứng dụng công nghệ
led mới chỉ chiếm 10% thị phần so với các công nghệ chiếu sáng khác.

- Không giống như hầu hết các bóng đèn huỳnh quang (huỳnh quang compact hoặc đèn
CFL), LED phát sáng hoàn toàn mà không cần thời gian khởi động. Do vậy tuổi thọ của
chúng cao hơn đèn huỳnh quang. Chi phí ban đầu để mua đèn led thường cao hơn loại sợi
đốt hay huỳnh quang, tuy nhiên xét về mức độ tiết kiệm điện năng và tuổi thọ thì chúng
được đánh giá tiết kiệm chi phí hơn.

- Hiện nay hầu hết các sản phẩm được thiết kế theo đui tiêu chuẩn có thể thay thế trực
tiếp cho bóng đèn sợi đốt hoặc huỳnh quang. Trên bao bì thường ghi rõ lumen, công suất
watt, nhiệt độ màu, phạm vi nhiệt độ hoạt động. Chúng không phát ra ánh sáng theo mọi
hướng, và các đặc tính hướng của chúng ảnh hưởng đến việc thiết kế, mặc dù ngày nay
đã có không ít những thiết kế có góc chiếu sáng 360 độ.
- Giống như hầu hết các thiết bị chiếu sáng khác, led bị ảnh hưởng bởi nhiệt độ cao, mặc
dù chúng phát ra rất ít nhiệt khi hoạt động. Nhưng phần nhiệt độ này cũng đủ để gây ra
những tổn hại như giảm lumen, giảm tuổi thọ. Do đó, trong thiết kế thường có thêm bộ
phận tản nhiệt, làm mát. Tuổi thọ của đèn led phụ thuộc lớn vào chất lượng của bộ tản
nhiệt.
- Để hoạt động, chip led đòi hỏi phải chuyển đổi dòng điện từ xoay chiều sang dòng điện
một chiều bằng một thiết bị biến áp và chuyển đổi gọi là driver. Đèn led đi kèm một
2
driver chất lượng có thể đảm bảo tuổi thọ dài cho và cung cấp các tính năng điều khiển
ánh sáng. Nó có thể được đặt bên trong bóng đèn (loại tích hợp) hoặc được đặt bên ngoài
(loại độc lập). Tùy theo ứng dụng chiếu sáng mà được áp dụng driver khác nhau (ví dụ:
như trình driver ngoài trời cho ánh sáng đường phố, driver điểm cho chiếu sáng trong nhà
và driver tuyến tính cho các đèn quảng cáo).

1.2. Kết luận


Ưu điểm Nhược điểm
- Phát ra nhiều quang thông ánh sáng hơn các loại
khác với cùng mức công suất.
- Kích thước nhỏ gọn hơn so với các loại đèn
- Giá khởi điểm cao.
khác.
- Ảnh hướng bởi nhiệt độ.
- Có thể bật và tắt nhiều lần mà không ảnh hưởng
- Rất nhạy với điện áp.
tới tuổi thọ.
- Chất lượng ánh sáng.
- Có thể kết hợp với dimmer.
- Có tuổi thọ rất dài.
- Chiếu sáng theo hướng.

Chương 2. Cơ sở lý thuyết
2.1. Vi điều khiển: ATMEGA16
2.1.1. Thông tin cơ bản về ATMEGA16
Atmega16 là một chíp vi điều khiển được sản xuất bời hãng Atmel thuộc họ MegaAVR.
Atmega16 là một bộ vi điều khiển 8 bit dựa trên kiến trúc RISC bộ nhớ chương trình
16KB ISP flash có thể ghi xóa hàng nghìn lần, 512B EEPROM, một bộ nhớ RAM vô
cùng lớn trong thế giới vi xử lý 8 bit (1KB SRAM)
Với 32 chân có thể sử dụng cho các kết nối vào hoặc ra i/O, 32 thanh ghi, 3 bộ
timer/counter có thể lập trình, có các gắt nội và ngoại (2 lệnh trên một vector ngắt), giao
thức truyền thông nối tiếp USART, SPI, I2C. Ngoài ra có thể sử dụng bộ biến đổi số
tương tự 10 bít (ADC/DAC) mở rộng tới 8 kênh, khả năng lập trình được watchdog
timer, hoạt động với 5 chế độ nguồn, có thể sử dụng tới 6 kênh điều chế độ rộng xung
(PWM), hỗ trợ bootloader.

3
2.1.2. Thông số kỹ thuật

Datasheets Atmega16

Standard Package 27

Category Integrated Circuits (ICs)

Family Embedded – Atmel

Series Atmega

Packaging Tube

Core Processor AVR

Core Size 8-Bit

Speed 16MHz

Connectivity I²C, SPI, UART / USART, USB

Peripherals Brown-out Detec t/ Reset, HLVD, POR, PWM, WDT

4
Number of I /O 32

Program Memory Size 16KB

Program Memory Type FLASH

EEPROM Size 512B

RAM Size 1K

Voltage – Supply (Vcc/Vdd) 4.2 V ~ 5.5 V

Data Converters A/D 8 x 10bit

Oscillator Type Internal

Operating Temperature -40°C ~ 85°C

Package / Case 28-SOIC (0.295″, 7.50mm Width)

Other Names Atmega16

2.1.3. Các thông tin khác liên quan đến ATMEGA16


2.1.3.1. Phần mềm lập trình cho vi điều khiển ATmega16
- AVRStudio – AVR Studio là một bộ phần mềm do hãng ATmel phát triển sử
dụng cho việc soạn thảo và biên dịch chương trình dành cho các vi điều khiển thuộc họ
AVR bằng ngôn ngữ C và Assembly. Hiện AVR Studio đã phát triển đến phiên bản 6
(gọi là ATmel Studio).
- CodeVision AVR là một trình biên dịch do bên thứ ba cung cấp, khắc phục được
một số nhược điểm mà AVRStudio chưa có như trình tạo project thông minh, hệ thống
thư viện và code mẫu cung cấp phong phú giúp người mới cũng có thể nhanh chóng tiếp
cận và hoàn thành project mà không cần mất quá nhiều thời gian phát triển. Với các tính
năng ưu việt như trên, xuyên suốt hướng dẫn này chúng ta sẽ sử dụng CodeVisionAVR
5
2.1.3.2. Phần mềm vẽ mạch Proteus

hần mềm Proteus cho phép mô phỏng hoạt động của mạch điện tử bao gồm phần thiết kế
mạch và viết chương trình điều khiển cho các họ vi điều khiển như MCS-51, PIC, AVR,
… Proteus là phần mềm mô phỏng mạch điện tử của Labcenter Electronics, mô phỏng
cho hầu hết các linh kiện điện tử thông dụng, đặc biệt hỗ trợ cho cả các MCU như PIC,
8051, AVR, Motorola.
Phần mềm bao gồm 2 chương trình: ISIS (Intelligent Schematic Input System) cho phép
mô phỏng mạch và ARES (Advanced Routing and Editing Software) dùng để vẽ mạch in.
+ Các tính năng của phần mềm Proteus:
Vẽ sơ đồ nguyên lý
Mô phỏng
Thiết kế mạch in PCB

6
2.2. Arduino Uno R3 ATMEGA 16U2

Loại kit Kit AVR


Vi điều khiển chính/span> ATmega328P
Kiểu gắn vi ĐK Socket
Chip ATmega16U2
DC 5V qua cổng USB hoặc Nguồn DC 6-9V ngoài
Điện áp sử dụng ( Khuyến cáo dùng khi có giao tiếp với các module bên
ngoài)
Cổng Analog 6 chân
Cổng Digital 14 chân
Giao tiếp UART 1
Giao tiếp SPI 1
Giao tiếp I2C 1
Cổng nạp USB type B (sản phẩm đã tặng kèm dây nạp)

2.3. Kết luận


- Với việc kết hợp sử dụng ATMEGA 16U2 và Arduino Uno R3 giup cho việc
thiết kế mạch trở nên thuận tiện và dễ dàng hơn.

7
Chương II. Thi công và kiểm thử
Sơ đồ khối
3.1.1. Sơ đồ khối

3.1.2. Chức năng


- Khối nguồn: cung cấp nguồn điện cho các khối khác hoạt động.
- Khối thu thông tin: hoạt động như một cổng truyền thông không dây, có chức năng
nhận các lệnh điều khiển, rồi đưa các lệnh đó về khối xử lý. Các lệnh điều khiển được gửi
từ ứng dụng điều khiển qua Wifi với nội dung lệnh là thay đổi tốc độ cuộn văn bản hoặc
thay đổi nội dung hiển thị.
- Khối hiển thị: hiển thị nội dung quảng cáo.
- Khối xử lý: tiếp nhận và thực thi các lệnh điều khiển từ khối thu thông tin. Ngoài ra,
khối này còn có chức năng điều khiển khối hiển thị và tạo hiệu ứng cuộn văn bản.

8
3.2. Sơ đồ nguyên lý và nguyên lý hoạt động
3.2.1. Sơ đồ nguyên lý

3.2.2. Nguyên lý hoạt động


Khi được cấp nguồn và cấp code từ máy tính, Arduino Uno R3 sẽ hoạt động và
truyển dữ liệu vào , Arduino IDE sẽ làm nhiệm vụ cấp thông tin và nguồn cho Led Ma
trận 8x32
Chân IN của led ma trận sẽ nhận dữ liệu dến MAX7219 đước nôi với chân MOSI
của Arduino và được lấy code từ phần mêm Arduino IDE. Vcc sẽ hộ trợ cấp nguồn cho
led và led sẽ nhận nguồn từ máy tính hoặc pin thông qua arduini IDE.

9
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI

Với sự hình thành và phát triển của đèn led trong quá trình phát triển của loài
người, rõ ràng đèn led đã trở thành 1 trong những công cụ rất hiệu quả với mục đích
quáng cáo thương hiệu cho rất nhiều các công ty, nhà hang,… nhằm tạo ra sức hút cho
khách hàng.

Với những tính năng hữu ích và đa dạng về mẫu mã, việc thực hiện đề tài ‘ Thiết
kế biển quảng cáo theo yêu cầu’ nhằm tạo ra mô hình mô phỏng đèn led ngoài đường thật
có thể phục vụ cho việc quảng cáo cũng như thể hiện rõ được mục tiêu của khách hang.

10
PHỤ LỤC
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// set to 1 if we are implementing the user interface pot, switch, etc


#define USE_UI_CONTROL 0

#if USE_UI_CONTROL
#include <MD_UISwitch.h>
#endif

// Turn on debug statements to the serial output


#define DEBUG 0

#if DEBUG
#define PRINT(s, x) { Serial.print(F(s)); Serial.print(x); }
#define PRINTS(x) Serial.print(F(x))
#define PRINTX(x) Serial.println(x, HEX)
#else
#define PRINT(s, x)
#define PRINTS(x)
#define PRINTX(x)
#endif

// Define the number of devices we have in the chain and the hardware interface
// NOTE: These pin numbers will probably not work with your hardware and may
// need to be adapted
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CLK_PIN 13
#define DATA_PIN 11
11
#define CS_PIN 10

// HARDWARE SPI
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// SOFTWARE SPI
//MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN,
MAX_DEVICES);

// Scrolling parameters
#if USE_UI_CONTROL
const uint8_t SPEED_IN = A5;
const uint8_t DIRECTION_SET = 8; // change the effect
const uint8_t INVERT_SET = 9; // change the invert

const uint8_t SPEED_DEADBAND = 5;


#endif // USE_UI_CONTROL

uint8_t scrollSpeed = 80; // default frame delay value


textEffect_t scrollEffect = PA_SCROLL_LEFT;
textPosition_t scrollAlign = PA_LEFT;
uint16_t scrollPause = 100; // in milliseconds

// Global message buffers shared by Serial and Scrolling functions


#define BUF_SIZE 75
char curMessage[BUF_SIZE] = { "" };
char newMessage[BUF_SIZE] = { "DO AN DIEN TU DUY ANH K71" };
bool newMessageAvailable = true;

#if USE_UI_CONTROL

MD_UISwitch_Digital uiDirection(DIRECTION_SET);
MD_UISwitch_Digital uiInvert(INVERT_SET);
12
void doUI(void)
{
// set the speed if it has changed
{
int16_t speed = map(analogRead(SPEED_IN), 0, 1023, 10, 150);

if ((speed >= ((int16_t)P.getSpeed() + SPEED_DEADBAND)) ||


(speed <= ((int16_t)P.getSpeed() - SPEED_DEADBAND)))
{
P.setSpeed(speed);
scrollSpeed = speed;
PRINT("\nChanged speed to ", P.getSpeed());
}
}

if (uiDirection.read() == MD_UISwitch::KEY_PRESS) // SCROLL DIRECTION


{
PRINTS("\nChanging scroll direction");
scrollEffect = (scrollEffect == PA_SCROLL_LEFT ? PA_SCROLL_RIGHT :
PA_SCROLL_LEFT);
P.setTextEffect(scrollEffect, scrollEffect);
P.displayClear();
P.displayReset();
}

if (uiInvert.read() == MD_UISwitch::KEY_PRESS) // INVERT MODE


{
PRINTS("\nChanging invert mode");
P.setInvert(!P.getInvert());
}
}
13
#endif // USE_UI_CONTROL

void readSerial(void)
{
static char *cp = newMessage;

while (Serial.available())
{
*cp = (char)Serial.read();
if ((*cp == '\n') || (cp - newMessage >= BUF_SIZE-2)) // end of message character or
full buffer
{
*cp = '\0'; // end the string
// restart the index for next filling spree and flag we have a message waiting
cp = newMessage;
newMessageAvailable = true;
}
else // move char pointer to next position
cp++;
}
}

void setup()
{
Serial.begin(57600);
Serial.print("\n[Parola Scrolling Display]\nType a message for the scrolling display\
nEnd message line with a newline");

#if USE_UI_CONTROL
uiDirection.begin();
uiInvert.begin();
pinMode(SPEED_IN, INPUT);
14
doUI();
#endif // USE_UI_CONTROL

P.begin();
P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect,
scrollEffect);
}

void loop()
{
#if USE_UI_CONTROL
doUI();
#endif // USE_UI_CONTROL

if (P.displayAnimate())
{
if (newMessageAvailable)
{
strcpy(curMessage, newMessage);
newMessageAvailable = false;
}
P.displayReset();
}
readSerial();
}

15
TÀI LIỆU THAM KHẢO
Giáo trình Proteus
http://arduino.vn/bai-viet/256-hien-thi-hinh-anh-voi-led-matrix-8x8
https://dientutuonglai.com/tim-hieu-atmega16.html
https://dientunhattung.com/product/atmega16-vi-dieu-khien/
http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi

16
17

You might also like