Mô Phỏng bằng phần mềm proteus. SỬ DỤNG VDK ATMEGA16 TRONG MÔ PHỎNG MẠCH ĐO ĐIỆN ÁP MÁY PHÁT ĐIỆN VÀ DÒNG ĐIỆN CẤP CHO TẢI TRÊN CÁC Ô TÔ ĐỜI MỚI. Bài tập lớn môn Cơ Điện Tử Đại học Công Nghiệp Hà Nội. Đã bao gồm file PDF, word và mach mô phỏng proteus, codevision. Mạch hoàn chỉnh đã chạy được. GV hướng dẫn TS. N Thành Bắc.
Giới thiệu đề tài
• Sử dụng cảm biến đo dòng ACS712 để đo dòng qua tải
Sử dụng vi điều khiển Atmega 16, bài viết trình bày cách nhận tín hiệu analog từ cảm biến ACS712 Qua quá trình phân tích và tính toán, vi điều khiển sẽ xử lý tín hiệu này để hiển thị giá trị dòng điện trên màn hình LCD 16x02.
Thiết kế và mô phỏng mạch đo điện áp cho máy phát điện trên ô tô đời mới, cùng với việc đo dòng điện cấp cho tải trong dải từ -5A đến 5A, sẽ được hiển thị trên màn hình.
• Viết chương trình (phần mềm) và thiết lập phần cứng để đáp ứng các yêu cầu trên.
Sơ đồ khối
Cảm biến sẽ nhận tín hiệu dòng điện từ tải và chuyển đổi thành giá trị điện áp tương ứng Giá trị điện áp này sau đó được gửi đến một chân ADC của vi điều khiển để xử lý.
• Máy phát điện sẽ suất ra 1 giá trị điện áp gửi đến 1 chân ADC của vi điều khiển
Vi điều khiển nhận tín hiệu điện áp từ chân ADC dưới dạng Analog, sau đó chuyển đổi thành tín hiệu digital 8bit hoặc 10bit Tiếp theo, vi điều khiển tính toán giá trị digital để xác định giá trị dòng điện tương ứng và gửi tín hiệu này đến màn hình LCD.
• LCD 16x02 nhận tín hiệu từ Vi điều khiển và cho phép hiển thị kết quả đo được lên màn hình.
Giới thiệu phần mềm mô phỏng proteus
Hướng dẫn sử dụng phần mềm protus
Khởi động chương trình , chương trình sau khi khởi động sẽ có giao diện như sau
8 Để vẽ sơ đồ nguyên lý , vào Start Menu khởi động chương trình ISIS chương trình được khởi động và có giao diện như sau:
Hình 1.3 Giao diện làm việc
Giao diện gồm có : Vùng làm việc chính ,vùng hiển thị , thanh công cụ,vùng lựa chọn ,thanh tác vụ và các nút mô phỏng
Vùng làm việc là khu vực nơi chúng ta thiết kế các linh kiện điện tử, kết nối chúng với nhau, lắp đặt các thiết bị đo lường và hiển thị các đồ thị theo yêu cầu.
Thanh công cụ gồm các thành phần cơ bản sau :
- Section mode : Chức năng này để chọn linh kiện
- Component mode :Dùng để lấy linh kiện trong thư viện linh kiện
- Wire lable mode : Đặt tên cho dây
- Terminals mode : Chứa Power , Ground
- Graph mode : Dùng để vẽ dạng song ,…
- Generator mode : Chứa các nguồn điện , nguồn xung ,
- Voltage Probe mode : Dùng để đo điện thế tại một điểm trên mạch , đây là một dụng cụ chỉ có 1 chân và không có thực trong thực tế
- Curent Probe mode : Dùng để đo chiều và độ lớn của dòng điện tại một điểm trên wire
Chế độ Công cụ Ảo (Virtual Instrument mode) bao gồm các thiết bị đo dòng và áp suất được mô phỏng giống như trong thực tế Để lấy các linh kiện điện tử, người dùng cần truy cập thư viện chính ISIS, nhấn vào biểu tượng Chế độ Linh kiện (Component mode), sau đó nhấn phím P hoặc phím tắt P trên bàn phím để hiển thị khung chương trình.
Hình 1.4 Tìm kiếm linh kiện
Trong hình, ô tìm kiếm (Keyword) cho phép người dùng nhập các từ khóa cần tìm, chẳng hạn như "resistor" Phần danh mục (Category) sẽ hiển thị các thư mục liên quan đến từ khóa đã nhập Phân nhóm con (Sub-category) là các nhóm nhỏ hơn thuộc danh mục trên Phần nhà sản xuất (Manufacturer) hiển thị tên của nhà sản xuất linh kiện Ô xem trước (Preview) cho thấy hình ảnh trên sơ đồ nguyên lý, trong khi PCB preview hiển thị hình dáng của mạch in.
Double Click vào linh kiện cần lấy lập tức linh kiện sẽ được bổ sung vào vùng lựa chọn ở ngoài giao diện hình
Giới thiệu phần mềm lập trình CodevisionAVR
Hướng dẫn sử dụng phần mềm CodevisionAVR
Bạn có thể tạo một file nguồn mới bằng cách sử dụng nút File/View hoặc Ctrl/N Cửa sổ Create New file hiện ra, bạn chọn Source/OK
Cửa sổ mới đã được tạo với tên mặc định là untitled.c Bạn có thể lưu file này với một tên mới bằng cách sử dụng tùy chọn File/Save As hoặc nhấn vào biểu tượng Save As.
Hình 1.6 Cửa sổ mới được tạo
Chú ý: Ở trên cùng có đường dẫn tới file đang hiển thị Để mở lại file, bạn tìm theo đường dẫn này
Các thủ tục lưu, sửa, xóa hay đổi tên file khá đơn giản, các bạn có thể tự tìm hiểu b,Tạo một Project mới
Tạo project mới bằng cách vào File/new, cửa số Create New File hiện ra Ta chọn Project sau đó chọn OK
Cửa số Con firm xuất hiện, ở đây bạn chọn OK để xác nhận tạo 1 project mới
Cửa sổ CodeWizardAVR cho phép người dùng chọn loại chip vi điều khiển, bao gồm AT90, AtTiny, Atmega và FPSLIC Sau khi lựa chọn loại chip phù hợp, hãy nhấn OK để xác nhận.
Cửa số CodewizardAVR xuất hiện Trong cửa số này, cho các bạn những tùy chọn thiết lập ban đầu cho vi điểu khiển của mình.
Hình 1.10 Khai báo thông số
Tiếp theo ta lưu lại các giá trị đã được khai báo :File/Generate, chọn Save and Exit
Một hộp thoại bên dưới sẽ xuất hiện cho phép ta đặt tên file mới sau khi lưu
Hình 1.11Lưu thông số đã khai báo
Hình 1.12 Mã code lập trình
Sau khi lưu file, chúng ta có thể lập trình bằng ngôn ngữ C trong giao diện đã được thiết lập sẵn với các khai báo mà chúng ta đã tạo trước đó.
Sau khi hoàn tất lập trình, chúng ta tiến hành kiểm tra lỗi chương trình bằng cách nhấp vào biểu tượng Nếu không phát hiện lỗi, chúng ta sẽ nạp chip cho mạch trên Proteus.
GIỚI THIỆU CÁC LINK KIỆN CÓ TRONG MẠCH MÔ PHỎNG17
Giới thiệu về vi điều khiển Atmega16
Hình 2.1 Vi Điều Khiển Atmega16
Vi điều khiển nhận tín hiệu từ bộ đếm Encoder của động cơ, sau đó đếm số xung và hiển thị tốc độ động cơ trên màn hình LCD.
Vi điều khiển nhận tín hiệu từ bàn phím để điều khiển động cơ, cho phép quay thuận hoặc nghịch, tăng tốc, giảm tốc, và dừng động cơ, đồng thời hiển thị kết quả trên màn hình LCD.
Cấu tạo : Gồm những thành phần: lõi CPU, bộ nhớ chương trình (thông thường là
ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), một hoặc vài bộ định thời và các
Bài viết đề cập đến 18 cổng vào/ra được thiết kế để giao tiếp với các thiết bị ngoại vi và môi trường bên ngoài, tất cả đều được tích hợp trong một vi mạch.
Giới thiệu vi tổng quan điều khiển Atmega16
Vi điều khiển Atmega16 thuộc họ AVR do Atmel sản xuất, là loại vi điều khiển 8 bit với khả năng xử lý nhanh và tiêu thụ năng lượng thấp (< 1.1mA tại 3v-1Mhz) Nó được trang bị mạch ADC, ngõ ra điều rộng xung, giao tiếp I2C, bộ nhớ EEPROM, USART, WATCHDOG, dao động nội và lập trình trên hệ thống ISP Hệ sinh thái phần mềm hỗ trợ như CodeVisionAVR, Bascom, và AVR Studio giúp giảm độ phức tạp và thân thiện hơn với người dùng Nhờ vào những đặc điểm này, AVR ngày càng được ứng dụng rộng rãi trong đời sống và trong giáo dục, đào tạo.
2.2.1 Mô tả cơ bản về vi điều khiển Atmega16
- Hiệu năng cao, tiêu thụ ít năng lượng
+ 131 lệnh – hầu hết các lệnh thực thi trong một chu kỳ máy.
+ 32 thanh ghi 8 bit đa năng
+ Tốc độ thực hiện lên tới 16 triệu lệnh trong 1 giây (tần số 16MHz)
- Các bộ nhớ chương trình và bộ nhớ dữ liệu: 32KB bộ nhớ Flash có khả năng tự lập trình trong hệ thống
- Có thể thực hiện được 10.000 lần ghi xóa
+ Vùng mã Boot tùy chọn với những bit khóa độc lập
+ Lập trình trong hệ thống bởi chương trình on-chip boot
+ Thao tác đọc ghi trong khi nghỉ
Bài viết đề cập đến hai bộ định thời/bộ đếm 8 bit, mỗi bộ có bộ chia tần số độc lập và chế độ so sánh Ngoài ra, còn có một bộ định thời/bộ đếm 16 bit tích hợp bộ chia tần số, chế độ so sánh và chế độ bắt mẫu (Capture).
- Bộ đếm thời gian thực với bộ dao động độc lập
- Bộ truyền dữ liệu đồng bộ/bất đồng bộ USART
- Bộ truyền dữ liệu chuẩn SPI
- Watchdog timer khả trình với bộ dao động nội riêng biệt
+ Power-on Reset và phát hiện Brown-out khả trình
+ Bộ tạo dao động nội
+ Nguồn ngắt nội và ngoại
- 6 chế độ ngủ: Idle, ADC noise reduction, Power-save, Power-down, Standby và Extended Standby
- Ngõ vào/ra: có 32 ngõ vào ra
Hình 2.2 Sơ đồ khối cấu trúc bên trong Atmega 16
Phần lõi AVR kết hợp tập lệnh phong phú với 32 thanh ghi đa dụng Toàn bộ
32 thanh ghi này kết nối trực tiếp với ALU (Bộ xử lý số học và logic), cho phép truy cập 2 thanh ghi độc lập trong 1 lệnh thực thi mỗi chu kỳ xung nhịp Cấu trúc này mang lại tốc độ xử lý nhanh gấp 10 lần so với các vi điều khiển CISC thông thường.
Khi ở chế độ nghỉ (Idle), CPU vẫn cho phép các chức năng như USART, giao tiếp 2 dây, chuyển đổi A/D, SRAM, bộ đếm/bộ định thời, cổng SPI và các chế độ ngắt hoạt động Chế độ Power-down giữ nội dung các thanh ghi nhưng ngừng bộ tạo dao động, tắt các chức năng của chip cho đến khi có ngắt ngoài hoặc reset phần cứng Trong chế độ Power-save, đồng hồ đồng bộ tiếp tục chạy, giúp chương trình duy trì sự đồng bộ về thời gian trong khi các thiết bị khác ở trạng thái ngủ Chế độ ADC Noise Reduction dừng CPU và tất cả các thiết bị ngoại trừ đồng hồ đồng bộ và ADC, giảm thiểu nhiễu khi ADC hoạt động Ở chế độ Standby, bộ tạo dao động vẫn hoạt động trong khi các thiết bị khác ở trạng thái ngủ Những đặc điểm này giúp bộ vi điều khiển khởi động nhanh chóng trong chế độ tiêu thụ công suất thấp.
AVR được sản xuất sử dụng công nghệ bộ nhớ cố định mật độ cao của Atmel
Bộ nhớ On-chip ISP Flash cho phép lập trình lại hệ thống qua giao diện SPI, sử dụng bộ lập trình bộ nhớ cố định hoặc chương trình On-chip Boot trên lõi AVR Chương trình Boot hỗ trợ tải ứng dụng vào bộ nhớ Flash qua bất kỳ giao diện nào Trong khi vùng Boot Flash tiếp tục hoạt động, vùng Application Flash có thể được cập nhật, cho phép thực hiện thao tác Read-While-Write Việc kết hợp CPU 8bit RISC với Flash tự lập trình trong hệ thống trên cùng một chip mang lại hiệu suất cao và tính linh hoạt cho ứng dụng.
Atmega16 là vi điều khiển mạnh mẽ, cung cấp giải pháp linh hoạt và tiết kiệm cho nhiều ứng dụng điều khiển nhúng Nó được hỗ trợ bởi đầy đủ các công cụ phát triển và lập trình, giúp tối ưu hóa quá trình thiết kế và triển khai.
22 gồm: trình biên dịch C, Macro Assembler, mô phỏng/dò lỗi lập trình, mô phỏng mạch điện và các bộ kit thí nghiệm
- Sơ đồ chân của Atmega16
Hình 2.3 Sơ đồ chân của Atmega16
VCC: chân điện áp nguồn
Port A (PA0 ÷ PA7): ngõ vào/ra port A Các chân Port A cũng là ngõ vào analog của bộ chuyển đổi A/D
Chân PA7: Ngõ vào ADC7
Chân PA6: Ngõ vào ADC6
Chân PA5: Ngõ vào ADC5
Chân PA4: Ngõ vào ADC4
Chân PA3: Ngõ vào ADC3
Chân PA2: Ngõ vào ADC2
Chân PA1: Ngõ vào ADC1
Chân PA0: Ngõ vào ADC0
Port B (PB0 ÷ PB7): ngõ vào ra Port B
Các chức năng khác của Port B:
PB7 SCK (Chân Clock của SPI)
PB6 MISO (Master Input/Slave Output của SPI)
PB5 MOSI (Master Output/Slave Input của SPI)
PB4 SS (Ngõ vào chọn Slave của SPI)
AIN1 (Ngõ vào Negative của bộ so sánh analog) OC0 (Ngõ ra so sánh của Timer/Counter 0)
AIN0 (Ngõ vào Positive của bộ so sánh analog)
INT2 (Ngõ vào ngắt ngoài 2)
PB1 T1 (Ngõ vào của bộ đếm ngoài Counter 1)
T0 (Ngõ vào của bộ đếm ngoài Counter 0) XCK (Chân I/O Clock của USART)
Port C (PC0 ÷ PC7): ngõ vào/ra port C
Các chức năng khác của Port C
PC7 TOSC2 (Chân 2 bộ dao động của Timer)
PC6 TOSC1 (Chân 1 bộ dao động của Timer)
PC5 TD1 (Chân data in Test JTAG)
PC4 TD0 (Chân data out Test JTAG)
PC3 TMS (Chân chọn mode Test JTAG)
PC2 TCK (Chân Clock Test JTAG)
PC1 SDA (Chân Data I/O của giao thức Two-Wire)
PC0 SCL (Chân clock của giao thức Two-Wire)
Port D (PD0 ÷ PD7): ngõ vào/ra Port D
Các chức năng khác của Port D
PD7 OC2 (Ngõ ra so sánh của Timer/Counter 2)
PD6 ICP1 (Chân bắt mẫu của Timer/Counter 1)
PD5 OC1A (Ngõ ra so sánh A của Timer/Counter 1) PD4 OC1B (Ngõ ra so sánh B của Timer/Counter 1)
PD3 INT1 (Ngõ ngắt ngoài 1)
PD2 INT0 (Ngõ ngắt ngoài 0)
PD1 TXD (Ngõ ra USART)
PD0 RXD (Ngõ vào USART)
RESET: Khi áp dụng điện áp thấp vào chân này trong khoảng thời gian xác định (tham khảo datasheet), chương trình sẽ được reset Nếu thời gian áp dụng điện áp ngắn hơn mức quy định, quá trình reset sẽ không thành công.
XTAL1: ngõ vào khuếch đại dao động đảo, và là ngõ vào mạch tạo xung nội
XTAL2: ngõ ra của mạch khuếch đại dao động đảo
AVCC là chân nguồn cung cấp cho Port A và bộ chuyển đổi ADC, vì vậy cần kết nối chân này với chân VCC ngay cả khi ADC không được sử dụng Nếu sử dụng ADC, nên kết nối AVCC với VCC thông qua một tụ lọc thông thấp để đảm bảo hiệu suất hoạt động ổn định.
AREF: chân tham chiếu điện áp analog của bộ ADC
Khối hiển thị có nhiệm vụ nhận tín hiệu từ vi điều khiển để hiển thị thông tin về tốc độ, độ rộng xung và chiều quay của động cơ trên màn hình LCD.
Hiện nay, thị trường LCD đa dạng với nhiều mẫu mã và hình dạng khác nhau LCD có thể được phân loại thành hai loại chính dựa trên kích cỡ và khả năng hiển thị.
LCD hiển thị kí tự (Character LCD) có các kích cỡ: 16x1, 16x2, 16x4… Mỗi kí tự được tạo thành bởi một ma trận các điểm sáng kích thước 5x7 hoặc 5x10 điểm ảnh
Màn hình LCD hiển thị đồ họa (Graphic LCD) có sẵn cả phiên bản đen trắng và màu, với nhiều kích thước khác nhau như 1.47 inch (128x128 điểm ảnh), 1.8 inch (128x160 điểm ảnh), 2 inch (176x220 điểm ảnh), 2.2 inch (240x320 điểm ảnh), 2.4 inch (240x320 điểm ảnh), 3.5 inch (320x240 điểm ảnh), 4.3 inch (480x272 điểm ảnh) và 7 inch (800x480 điểm ảnh).
8 inch (800x600 điểm ảnh) Loại LCD này được dùng nhiều trong điện thoại di động, máy ảnh số, camera…
Cấu tạo LCD 16x2 (2 dòng 16 kí tự)
Hình 2.4 Hình ảnh một LCD 16x2 trong thực tế
LCD được nhóm em sử dụng trong đồ án là loại có 16 chân, với chức năng từng chân được ghi trong bảng dưới đây:
Chân Ký hiệu I/O Mô tả
3 VEE - Điều khiển độ tương phản của LCD
RS = 0: chọn thanh ghi lệnh
RS =1: chọn thanh ghi dữ liệu
5 RW I RW = 1: đọc dữ liệu RW = 0: ghi dữ liệu
6 E I/O Cho phép LCD hoạt động
15 A - Nguồn dương cho đèn nền
16 K - GND cho đèn nền Ý nghĩa các chân của LCD:
+ Chân VCC, VSS cấp dương nguồn +5V và nối đất tương ứng Chân VEE được dùng để điều khiển độ tương phản cho LCD
Chân chọn thanh ghi RS (Register Select) trong LCD có vai trò quan trọng trong việc lựa chọn giữa hai thanh ghi Khi RS = 0, thanh ghi mã lệnh được chọn, cho phép người dùng gửi các lệnh như xóa màn hình hoặc đưa con trỏ về đầu dòng Ngược lại, khi RS = 1, thanh ghi dữ liệu được chọn, cho phép người dùng gửi dữ liệu cần hiển thị lên LCD.
+ Chân đọc/ghi RW: Đầu đọc/ghi cho phép người dùng gửi thông tin trên LCD Khi RW = 0 thì ghi, RW = 1 thì đọc
Chân cho phép E (Enable) của LCD có vai trò quan trọng trong việc chốt thông tin trên chân dữ liệu Khi dữ liệu được truyền đến chân dữ liệu, cần phải áp dụng một xung từ cao xuống thấp vào chân E để LCD ghi nhận dữ liệu Thời gian rộng của xung này tối thiểu phải đạt 450ns để đảm bảo hoạt động chính xác.
Chân D0 đến D7 là 8 chân ghi dữ liệu 8 bit, dùng để truyền thông tin đến LCD hoặc đọc nội dung từ các thanh ghi trên LCD Để hiển thị chữ cái và số, chúng ta gửi mã ASCII của các ký tự từ A đến Z, a đến z, và các số từ 0 đến 9 tới các chân này khi RS = 1.
Có các mã lệnh gửi đến LCD để xóa màn hình, đưa con trỏ về đầu dòng hoặc làm nhấp nháy con trỏ Chúng ta sử dụng RS = 0 để thực hiện kiểm tra.
Để kiểm tra xem LCD có sẵn sàng nhận thông tin hay không, cần sử dụng cờ bận D7 Cờ bận này có thể được đọc khi R/W = 1 và RS = 0 Nếu D7 = 1, điều này có nghĩa là LCD đang bận xử lý công việc bên trong và không thể nhận thông tin mới Ngược lại, khi D7 = 0, LCD đã sẵn sàng để nhận dữ liệu mới Do đó, trước khi ghi bất kỳ dữ liệu nào lên LCD, cần kiểm tra cờ bận để đảm bảo thiết bị hoạt động hiệu quả.
Mã HEX Lệnh đến thanh ghi của LCD
1 Xóa màn hình hiển thị
4 Giảm con trỏ (Dịch con trỏ sang trái)
6 Tăng con trỏ (Dịch con trỏ sang phải)
5 Dịch hiển thị sang phải
7 Dịch hiển thị sang trái
8 Tắt hiển thị, tắt con trỏ
A Tắt hiển thị, bật con trỏ
C Bật hiển thị, tắt con trỏ
E Bật hiển thị, nhấp nháy con trỏ
F Tắt con trỏ, nhấp nháy con trỏ
10 Dịch vị trí con trỏ sang trái
14 Dịch vị trí con trỏ sang phải
18 Dịch toàn bộ hiển thị sang trái
1C Dịch toàn bộ hiển thị sang phải
80 Ép con trỏ về đầu dòng thứ nhất
C0 Ép con trỏ về đầu dòng thứ hai
38 Hai dòng và ma trận 5x7
Các lệnh giao tiếp LCD Để thực hiện các giao tiếp với LCD cần có các lệnh và địa chỉ lệnh Các lệnh được mô tả dưới bảng sau:
Lệnh RS RW D7 D6 D5 D4 D3 D2 D1 D0 Mô tả
Xóa toàn bộ màn hình và đặt địa chỉ
0 của DDRAM vào bộ nhớ
0 0 0 0 0 0 0 0 1 - Đặt địa chỉ 0 của DDRAM như bộ đếm địa chỉ Trả hiển thị dịch về vị trí gốc DDRAM không đổi Đặt chế độ truy nhập
Đặt hướng di chuyển của con trỏ và xác định cách hiển thị dữ liệu là những thao tác quan trọng trong quá trình đọc và ghi dữ liệu Điều khiển việc bật tắt hiển thị giúp tối ưu hóa trải nghiệm người dùng.
0 0 0 0 0 0 1 D C B Đặt bật/tắt màn hình
(D) Bật/tắt con trỏ và (C) nhấp nháy kí tự ở vị trí con trỏ (B)
Dịch hiển thị và con trỏ chức năng
Dịch con trỏ/hiển thị qua trái/phải mà không phải đọc/ghi lại dữ liệu
0 0 0 0 1 DL N F - - Khởi tạo giao diện của độ dài dữ liệu
Thiết lập địa chỉ bộ nhớ tạo kí tự, dữ liệu được gửi/nhận sau thiết lập này
Thiết lập địa chỉ bộ nhớ tạo ký tự là bước quan trọng trong quá trình gửi và nhận dữ liệu Sau khi thiết lập, cần đọc cờ bận để xác định trạng thái hoạt động Địa chỉ CGRAM/DDRAM cũng cần được đọc cờ bận để đảm bảo dữ liệu được xử lý chính xác.
Các kí hiệu viết tắt trong bảng là:
+ DDRAM: RAM dữ liệu hiển thị, Display Data RAM
+ CGRAM: RAM máy phát kí tự, Character Generator RAM
+ I/D: thiết lập hướng dịch chuyển của con trỏ, I/D = 0: giảm, I/D = 1: tăng
+ S: thiết lập dịch chuyển hiển thị, S = 0: không dịch chuyển hiển thị, S =1: dịch chuyển hiển thị
+ D: bật tắt hiển thị (D = 0: tắt, D = 1: bật)
+ C: bật tắt con trỏ (C = 0: tắt, C = 1: bật)
+ B: bật tắt con trỏ nhấp nháy tại vị trí của kí tự (B = 0: tắt, B = 1: bật)
Biến trở là thiết bị điện có khả năng điều chỉnh điện trở theo nhu cầu sử dụng Chúng được ứng dụng trong các mạch điện để kiểm soát hoạt động của mạch Điện trở của biến trở có thể thay đổi thông qua việc điều chỉnh chiều dài dây dẫn bên trong, hoặc chịu ảnh hưởng từ các yếu tố như nhiệt độ, ánh sáng, và bức xạ điện từ.
Hình 2.5 Kí hiệu biến trở trong mạch mô phỏng Cấu tạo biến trở:
Nhìn từ bên ngoài, chúng ta dễ dàng nhận thấy biến trở có cấu tạo gồm 3 bộ phận chính:
- Cuộn dây được làm bằng hợp kim có điện trở suất lớn
- Con chạy/chân chạy Cho khả năng chạy dọc cuộn dây để làm thay đổi giá trị trở kháng
Biến trở có ba chân, trong đó hai chân cố định ở đầu điện trở và được làm bằng kim loại Chân còn lại là chân di chuyển, thường gọi là cần gạt Vị trí của cần gạt trên dải điện trở sẽ xác định giá trị của biến trở.
Hình 2.6 Cấu tạo biến trở
Các vật liệu có trở kháng là nguyên vật liệu chính được sử dụng để tạo ra những chiếc biến trở, cụ thể như sau
Carbon, hay còn gọi là biến trở than, là vật liệu phổ biến nhất được cấu thành từ các hạt carbon Với chi phí sản xuất thấp, carbon được sản xuất với số lượng lớn, mặc dù độ chính xác của nó không cao.
Dây cuốn thường được làm từ dây Nichrome với khả năng cách điện cao, phù hợp cho các ứng dụng công suất lớn yêu cầu độ chính xác Tuy nhiên, độ phân giải của loại nhiên liệu này vẫn chưa đạt yêu cầu tốt nhất.
Nhựa dẫn điện: Thường bắt gặp trong các ứng dụng âm thanh cao cấp Tuy nhiên chi phí cao khiến chúng bị hạn chế
Cermet: Đây là loại vật liệu rất ổn định Tuy nhiên tuổi thọ của chúng không cao và giá thành lớn
Biến trở hoạt động dựa trên nguyên lý thay đổi điện trở thông qua việc điều chỉnh chiều dài của các dây dẫn tách rời Khi người dùng xoay các núm vặn trên thiết bị, vi mạch điều khiển sẽ tác động đến mạch kín, dẫn đến sự thay đổi trong chiều dài dây dẫn và do đó, thay đổi điện trở trong mạch.
Trong thiết kế mạch điện tử, luôn tồn tại một khoảng sai số, do đó việc điều chỉnh mạch thường sử dụng biến trở Biến trở đóng vai trò quan trọng trong việc phân áp và phân dòng trong mạch Chẳng hạn, trong máy tăng âm, biến trở được dùng để điều chỉnh âm lượng, trong khi đó, trong hệ thống chiếu sáng, nó giúp thay đổi độ sáng của đèn.
+ /C = 0: di chuyển con trỏ, S/C = 1: dịch chuyển hiển hị
+ DL = 0: độ dài 4 bit, DL = 1: độ dài 8 bit
+ BF = 1: LCD bận, BF = 0: LCD có thể nhận lệnh
2.3.2 Mạch mô phỏng trong Proteus
Hình 2.7 Kết nối với LCD
Hình 2.8 Kết nối với Atemega16
Giới thiệu về ACS 712
ACS712 là một IC cảm biến dòng tuyến tính sử dụng hiệu ứng Hall, cho phép đo dòng điện một cách chính xác Thiết bị này cung cấp tín hiệu analog, với Vout thay đổi theo tỷ lệ với dòng điện Ip, giúp người dùng dễ dàng theo dõi và kiểm soát mức tiêu thụ điện năng.
Hiệu ứng Hall là hiện tượng vật lý xảy ra khi một từ trường vuông góc tác động lên một vật liệu dẫn điện, như kim loại hoặc chất bán dẫn, đang có dòng điện chạy qua Hiện tượng này tạo ra hiệu điện thế, được gọi là hiệu thế Hall, xuất hiện ở hai mặt đối diện của thanh Hall Tỷ lệ giữa hiệu thế Hall và dòng điện chạy qua thanh Hall được gọi là điện trở Hall, đặc trưng cho tính chất của vật liệu cấu thành thanh Hall.
Có 3 loại cảm biến ACS712:
ACS712-5A(x05B): độ nhạy 180-190mV/A, IP= -5 đến 5A
ACS712-20A(x20A): độ nhạy 96-104mV/A, Ip=-20 đến20A
ACS712-30A(x30A): độ nhạy 63-69mV/A, Ip=-30 đến 30A
1.2 IP+: Nối 2 chân IP+ với nhau
3.4 IP- : Nối 2 chân IP- với nhau
5 GND: Điện áp âm của nguồn nuôi
6 FILTER( bộ lọc): Tác dụng lọc và giúp tín h
7 VIOUT(Vout): Điện áp lối ra (dạng tín hiệu A
8 VCC: Điện áp dương của nguồn nuôi
Sơ đồ cấu tạo được thể hiện qua H2.11 và H2.12
Hình 2.11 Cấu tạo bên trong của ACS712
Hình 2.12 Dạng đóng gói và thứ tự các chân của ACS712
Sơ đồ nguyên lý thể hiện qua hình 2.13
Hình 2.13 Sơ đồ nguyên lý của ACS712
Biểu đồ thể hiện sự tuyến tính giữa dòng Ip và điện áp ra Vout
Hình 2.24 Đồ thị thể hiện sự tuyến tính của Ip với Vout
Dựa vào biểu đồ thể hiện mối quan hệ tuyến tính giữa dòng Ip và điện áp ra VIOUT, chúng ta có thể xác định nguyên lý hoạt động của cảm biến Đầu tiên, cần mắc mạch theo hình 2.15.
Khi ACS chưa có tải và lúc này giá trị ở VIOUT(tín hiệu analog) trả ra là 2.5v
Khi dòng điện đi qua tải từ IP+ sang IP-, giá trị VIOUT sẽ dao động từ 2.5V đến 3.4V, tương ứng với dòng điện từ 0 đến 5A Ngược lại, khi dòng điện đi từ IP- sang IP+, giá trị VIOUT sẽ giảm từ 2.5V xuống 1.6V, tương ứng với dòng điện từ 0 đến -5A.
TÍNH TOÁN Và Kết Luận
Sử dụng Atmega16 để nhận tín hiệu Analog từ cảm biến qua chân ADC PC0, giá trị tại chân này được chuyển đổi thành tín hiệu digital 10 bit Với công thức tính toán đã được lập trình, Atmega16 xác định giá trị dòng điện tương ứng với giá trị ADC và gửi kết quả này tới màn hình.
Dựa vào độ nhạy của ACS712-5A là từ 185mV/1A và bộ ADC 10bit của Atmega18 ta sẽ xây dựng được công thức tính dòng diện như sau:
Khi chưa có dòng IP thi Vout = 2.5V khí giá trị ADC(Digital) tại Chân PC0 sẽ được tính như sau:
(Chọn điện áp tham chiếu là ở chân Vref =5V)
Khi có dòng IP làm Vout sẽ thay đổi và dòng IP sẽ thay đổi tuyến tính theo Vout
Cứ 1A thì số bậc mà ADC nhảy được sẽ là:
Vậy cứ nhảy được 1 bậc thì giá trị dòng diện tương ứng sẽ là:
Công thức tính dòng điện:
Với ADC là giá trị tương ứng đọc được khi Vout thay đổi
Linkdowloadcodevàproteus: https://drive.google.com/drive/folders/1rMYRVWW-
41X2jkm8OIyUNiG4to_6A96P?usp=sharing
Sau một thời gian làm bài tập lớn với đề tài “Ứng dụng vi điều khiển
Chúng em đã hoàn thành mô phỏng mạch đo điện áp máy phát điện và dòng điện cấp cho tải trên ô tô đời mới với sự hỗ trợ của thầy giáo Trong bài tập lớn này, chúng em đã nghiên cứu kỹ lưỡng về cấu trúc và nguyên lý hoạt động của hệ thống, từ đó mở rộng kiến thức chuyên ngành và nhận ra những tính năng vượt trội của hệ thống.
Do hạn chế về kiến thức và kinh nghiệm, cùng với việc tài liệu tham khảo còn ít, bài tập lớn của chúng em không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được ý kiến đóng góp từ thầy hướng dẫn và các thầy giáo trong khoa để hoàn thiện đồ án của mình hơn nữa.
Cuối cùng chúng em xin chân thành cảm ơn thầy giáo hướng dẫn: TS Nguyễn Thành Bắc hướng dẫn tận tình để em hoàn thành bài tập lớn này