Thiết bị sử dụng module đọc ADC ADS1115 với độ phân giải 16 bit cho kết quả có độ chính xác cao và sử dụng vi điều khiển STM32F103C8T6 phổ biến , giá thành rẻ và có khả năng chống nhiễu
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI - TRƯỜNG ĐIỆN- ĐIỆN TỬ -
Trang 2MỤC LỤC
MỤC LỤC
MỤC LỤC ẢNH
MỤC LỤC BẢNG
LỜI NÓI ĐẦU
CHƯƠNG 1 TỔNG QUAN BÀI TOÁN
1.1 Tổng quan bài toán
1.2 Yêu cầu bài toán
CHƯƠNG 2 LỰA CHỌN PHẦN CỨNG
2.1 Module đọc ADC
2.1.1 Tổng quan module ADS1115
2.1.2 Chức năng module ADS1115
2.1.3 Sơ đồ khối chức năng ADS1115
2.2 Màn hình LCD 1602
2.3 Nguồn
2.4 Lõi xử lý STM32F103C8T6
2.5 Module relay
CHƯƠNG 3 THIẾT KẾ PHẦN CỨNG
3.1 Thiết kế nguyên lý
3.1.1 Khối nguồn
3.1.2 Khối vi điều khiển
3.1.3 Khối màn hình
3.1.4 Khối ADC
3.1.5 Mạch đo điện trở
Trang 33.1.5.3 Sai số
3.1.6 Mạch đo tụ điện
3.1.6.1 Phương pháp đo
3.1.6.2 Mô tả cách đo
3.1.7 Mạch đo cuộn cảm
3.1.7.1 Phương pháp đo
3.1.7.2 Mô tả cách đo
3.1.8 Khối relay
3.2 Thiết kế PCB
Trang 4MỤC LỤC ẢNH
Hình 2-1 Module ADC ADS 1115 16 bit
Hình 2-2 Sơ đồ khối chứng năng của bộ ADC ADS1115
Hình 2-3 Màn hình LCD 1602
Hình 2-4 Pin lion 18650
Hình 2-5 Kit phát triển STM32F103C8T6 Blue Pill Corte-M3
Hình 2-6 Module relay 2 kênh với Opto cách ly
Hình 3-1 Sơ đồ khối tổng quan thiết bị
Hình 3-2 Sơ đồ nguyên lý khối nguồn
Hình 3-3 Khối vi điều khiển
Hình 3-4 Hình ảnh màn hình LCD kèm với module I2C
Hình 3-5 Sơ đồ nguyên lý module ADS 1115
Hình 3-6 Sơ đồ nguyên lý mạch đo điện trở
Hình 3-7 Đồ thị đường cong điện áp của tụ theo thời gian trong mạch RC
Hình 3-8 Sơ đồ nguyên lý nạp điện cho tụ
Hình 3-9 Sơ đồ nguyên lý mạch đo tụ điện
Hình 3-10 Dạng sóng cộng hưởng trên mạch LC
Hình 3-11 Hình ảnh sóng chuyển đổi qua bộ so sánh
Hình 3-12 Sơ đồ nguyên lý mạch đo điện cảm
Hình 3-13 Hình ảnh khối relay 2 kênh
Hình 3-14 Hình PCB 3D
Trang 6LỜI NÓI ĐẦU
Đồ án I có mục tiêu là phát triển mạch đo LCR bằng Arduino/STM32 Thiết
bị sử dụng module đọc ADC ADS1115 với độ phân giải 16 bit cho kết quả có độ chính xác cao và sử dụng vi điều khiển STM32F103C8T6 phổ biến , giá thành rẻ và
có khả năng chống nhiễu tốt hơn so với các vi điều khiển khác trong cùng tầm giá.Về phần cấp nguồn sử dụng 2 cell pin 18650 có khả năng sạc lại được khi hết pin giúp
có tính di động cao.Thiết bị có sử dụng màn hình hiển thị là LCD giúp hiện thị các chế độ đo và hiển thị kết quả đo
Phần báo cáo này được chia làm 5 chương chính bao gồm:
- CHƯƠNG 1 TỔNG QUAN BÀI TOÁN
- CHƯƠNG 2 LỰA CHỌN PHẦN CỨNG
- CHƯƠNG 3 THIẾT KẾ PHẦN CỨNG
- CHƯƠNG 4 THIẾT KẾ PHẦN MỀM
- CHƯƠNG 5 KIỂM NGHIỆM ĐÁNH GIÁ VÀ KẾT QUẢ
Em xin cam đoan rằng nội dung của báo cáo này là hoàn toàn do em tự tìm hiểu
và xây dựng Em hoàn toàn chịu trách nghiệm về nội dung trong bản báo cáo này
Chữ ký sinh viên thực hiện Chữ ký giáo viên hướng dẫn
Nguyễn Đình Chiến
Trang 7CHƯƠNG 1 TỔNG QUAN BÀI TOÁN
1.1 Tổng quan bài toán
Bài toán chúng ta đang tiếp cận là phát triển một thiết bị đo LCR dùng vi điều khiển STM32 LCR là viết tắt của các thông số quan trọng cần đo : tụ điện (C) , điện trở ( R ) và cuộn cảm ( L ).Thiết bị này dùng để kiểm tra giá trị của tụ điện, cuộn cảm , điện trở trong các mạch điện tử
Mục tiêu là thiết kế được thiết bị đo LCR có khả năng đo chính xác và sai số thấp nhất có thể
1.2 Yêu cầu bài toán
Sau khi đã tìm hiểu về các sản phẩm trên thị trường và nguyên lý hoạt động của từng chức năng thường có, cũng như phân tích các điểm mạnh, điểm yếu của từng sản phẩm, phương pháp ứng dụng, yêu cầu của bài toán được tóm gọn lại như sau:
Sử dụng vi điều khiển STM32F103C8T6
Đo điện trở
Đo cuộn cảm
Đo tụ điện Nguồn sử dụng pin có khả năng sạc lại
Có màn hình hiển thị Mạch điện được đóng gói trong một hộp nhựa
Trang 8CHƯƠNG 2 LỰA CHỌN PHẦN CỨNG
2.1 Module đọc ADC
Hình 0-1 Module ADC ADS1115 16bit
2.1.1 Tổng quan module ADS1115
ADS1115 là module chuyển đổi ADC với độ phân giải 16-bit, tiêu thụ điện năng thấp và hoạt động ở dải điện áp từ 2.0-5.5V Bộ tạo dao động IC ADS1115 và giao tiếp với vi điều khiển bằng giao thức truyền thông I2C Nó có một bộ khuếch đại
có thể tùy chỉnh lên đến x16, giúp khuếch đại các tín hiệu yếu và giá trị chênh lệch giữa các tín hiệu
Thông số kỹ thuật của module ADS1115:
✓ Dải điện áp cấp từ 2-5.5V
✓ ADC 16 bit
✓ Tiêu thụ dòng điện liên tục: 150uA
✓ Hỗ trợ giao thức truyền thông I2C
✓ Bộ dao động bên trong
✓ Tốc độ dữ liệu có thể tùy chỉnh từ 8SPS đến 860SPS (Sample/second)
✓ Tốc độ lấy mẫu tín hiệu 860 (mẫu/giây) với giao thức I2C
Trang 92.1.2 Chức năng module ADC ADS1115
Tất cả các bộ vi điều khiển đều có ADC (bộ chuyển đổi tín hiệu analog sang digital) vì trong vi điều khiển chỉ hiểu tín hiệu digital Vì vậy, để chuyển đổi tín hiệu analog sang tín hiệu digital để MCU đọc được, cần phải có bộ ADC
Bộ ADC hiện có trong vi điều khiển không chính xác và có độ phân giải không tốt, may mắn là có thể mở rộng theo ý muốn Lúc này các module như ADS1115 sẽ phát huy tác dụng
Ví dụ: STM32 có bộ ADC 12 bit có thể cấp đầu ra analog có giá trị từ 0 đến 4095 Sử dụng bộ ADC có độ phân giải cao, như ADS1115 16 bit mở rộng phạm vi đọc dữ liệu analog với độ chính xác cao hơn và có thang đo lên đến 65536 (khoảng 65000) Có nghĩa là, ngay cả khi tín hiệu đầu vào ở mức nhỏ, thì vẫn có thể xuất ra kết quả đúng chính xác
2.1.3 Sơ đồ khối chức năng của bộ ADC ADS1115
Hình 0-2 Sơ đồ khối chức năng của bộ ADC ADS1115
Các đầu vào analog được đưa đến một bộ ghép kênh (Multiplexer), sau đó được đưa đến bộ khuếch đại khuếch đại, để khuếch đại tín hiệu đầu vào Tín hiệu đã được
khuếch đại được chuyển đến bộ ADC 16 bit có đầu ra cấp cho vi điều khiển thông qua giao thức I2C
Trang 102.2 Màn hình LCD 1602
Hình 0-3 Màn hình LCD 1602
Màn hình LCD 1602 xanh lá sử dụng driver HD44780, có khả năng hiển thị 2 dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều code mẫu và dễ dàng sử dụng hơn nếu đi kèm mạch chuyển tiếp I2C giúp tiết kiệm chân I/O của vi điều khiển
Thông số kỹ thuật của màn hình LCD 1602:
✓ Có đèn led nền, có thể dùng biến trở hoặc PWM điều chỉnh độ sáng để sử dụng
ít điện năng hơn
✓ Có thể được điều khiển với 6 dây tín hiệu
✓ Có bộ ký tự được xây dựng hỗ trợ tiếng Anh
2.3 Nguồn
Trang 11Ta chọn được vi điều khiển STM32F103C8T6.Để tiện lợi cho việc gia công phần cứng thì ta sử dụng kit STM32 Blue Pill được tích hợp vi điều khiển
Trang 12Hình 2-5 Kit phát triển STM32F103C8T6 Blue Pill ARM Cortex-M3
Thông số kỹ thuật kit STM32 Blue Pill:
Trang 13Hình 2-6 Module relay 2 với Opto cách ly
CHƯƠNG 3 THIẾT KẾ PHẦN CỨNG
3.1 Thiết kế nguyên lý
Từ các khối thành phần đã lựa chọn, hệ thống có thể được mô tả bằng sơ đồ khối tổng quan như hình dưới đây:
Trang 143.1.1.Khối nguồn
Hình 3-2 Sơ đồ nguyên lý khối nguồn
Khối nguồn được xem là khối quan trọng nhất trong toàn thiết bị Khối nguồn cần cho
ra được một điện áp ổn định ít gợn sóng bởi vì nó ảnh hưởng đến độ chính xác của khối ADC từ đó ảnh hưởng đến kết quả đo được
Khối nguồn sử dụng IC ổn áp LM7805 giúp ổn định và biến đổi điện áp từ 2 cell pin lion 18650 với điện áp 7.2v sang điện áp 5V cung cấp cho MCU và khối mạch đo
3.1.2 Khối vi điều khiển
Hình 3-3 Khối vi điều khiển
Trang 15Khối vi điều khiển sử dụng được thiết kế sẵn trên một board phát triển STM32 Blue Pill.Thạch anh ngoài cho vi điều khiển có tần số 8MHZ,các chân để nạp code cho vi điều khiển được đưa ra hàng jump
3.1.3 Khối màn hình
Khối màn hình sử dụng màn hình LCD 1602 đi kèm với module chuyển đổi I2C giúp giao tiếp với vi điều khiển một cách dễ ràng đồng thời giúp tiết kiệm chân của vi điều khiển ( giao tiếp với màn hình chỉ sử dụng 2 chân của vi điều khiển )
Hình 3-4 Hình ảnh màn hình LCD kèm với module I2C
3.1.4.Khối ADC
Hình 3-5 Sơ đồ nguyên lý module ADC ADS1115
Khối ADC được sử dụng board mạch được thiết kế sẵn.Module có 4 kênh đọc ADC với độ phân giải 16bit cho ra được kết quả đo chính xác hơn so với sử dụng bộ ADC tích hợp trong vi điều khiển.Khối ADC này có thể giao tiếp với vi điều khiển bằng
Trang 16Cách đơn giản nhất để đo điện trở là sử dụng bộ chia điện áp bằng điện trở như hình minh họa bên dưới
Hình 3-6 Sơ đồ nguyên lý mạch đo điện trở
Sau đó sử dụng bộ chuyển đổi tương tự sang số (ADC) để vi điều khiển có thể hiểu được.Chúng ta sử dụng bộ chuyển ADC được tích hợp sẵn trong vi điều khiển Mặc dù có dòng dò 𝐼𝐿 đi vào đầu vào của ADC nhưng vẫn chấp nhận được vì nó ảnh hưởng không đáng kể (do điện trở đầu vào ADC rất lớn và tiến tới vô cùng) VREF và RREF đã biết, do đó có thể dễ dàng tính được điện áp đầu vào VIN của ADC:
Trong đó x là giá trị đầu ra của ADC ( nằm trong khoảng từ 0 → N-1 )
Từ đó ta có thể tính được giá trị của điện trở R : 𝑅 = 𝑅𝑅𝐸𝐹 𝑥
𝑁−𝑥 (3)
Giá trị của R không phụ thuộc vào 𝑉𝑅𝐸𝐹 do đó độ chính xác của 𝑉𝑅𝐸𝐹 không đáng quan trọng Mặc dù vậy chúng ta cũng nên cấp nguồn ngoài riêng biệt cho bộ ADC thay vì sử dụng chung với nguồn của cả hệ thống để tránh những tín hiệu gây nhiễu không đáng có
Trang 17Đầu tiên sử dụng ADC tích hợp sẵn trong vi điều khiển để đọc giá trị ,sau đó sử dụng công thức số (3) để tính giá trị điện trở R Hiển thị kết quả lên màn hình LCD thông qua giao tiếp I2C với vi điều khiển
3.1.5.3.Sai số
Ta có : 𝑅 = 𝑅𝑅𝐸𝐹 𝑥
𝑁−𝑥Lấy logarit tự nhiên và vi phân 2 vế :
ref +Δ𝑥x +N-xΔ𝑁 +N-xΔ𝑥 = Δ𝑅𝑟𝑒𝑓
Trang 18Hình 3-7 Đồ thị đường cong nạp điện của tụ theo thời gian trong mạch RC
Hình 3-8 Sơ đồ nguyên lý nạp điện cho tụ
Với công tắc ở vị trí S2, điện trở-tụ điện nối với nhau và do đó không kết nối với nguồn cung cấp điện áp VS Kết quả là dòng điện chạy quanh mạch bằng không nên I= 0 và tụ điện được xả hoàn toàn qua điện trở R nên VC = 0
Khi công tắc S1 ban đầu đóng ở t = 0, cường độ dòng điện chạy quanh mạch kín có giá trị xấp xỉ bằng 𝑉𝑅
𝑅 và VC = 0V Sau đó, điện áp trên tụ điện bắt đầu tăng dần trong khi dòng điện mạch bắt đầu giảm với tốc độ được xác định bởi hằng số thời gian Khi công tắc chuyển sang vị trí S1, dòng điện 𝑖(𝑡) đi từ nguồn 𝑉𝑠 qua điện trở R và nạp cho tụ điện C
Nếu các giá trị của R, Vs và ∆𝑡 (thời gian sạc 𝑉𝑐 𝑡ừ 0𝑉𝑠 đế𝑛 0.5𝑉𝑠 ) thì tính được điện dung của tụ điện
Trang 19Hình 3-9 Sơ đồ nguyên lý mạch đo tụ điện
Trước khi sạc điện áp trên tụ Cx được xả thông qua điện trở 𝑅𝐷𝐼𝑆𝐶𝐻𝐴𝑅𝐺𝐸 bằng cách nối với GND thông qua chân D6 𝐶𝑋 được sạc thông qua 𝑅𝐶𝐻𝐴𝑅𝐺𝐸 bằng cách nối với điện áp 3,3V ở chân D7.Thời gian sạc được tính bằng bộ timer của vi điều khiển
Và giá trị điện dung có thể được tính thông qua phương trình số (7)
6.Hiển thị kết quả lên màn hình LCD thông qua giao thức I2C với vi điều khiển
7.Lặp lại các bước trên
3.1.7 Mạch đo cuộn cảm
STM32F103C8T6
Trang 20Ban đầu chúng ta sẽ cấp nguồn cho mạch LC, đợi một chút để mạch cộng hưởng ổn định, sau đó tiến hành đo
Với mạch lý tưởng, nội trở trong mạch bằng 0 thì dao động này sẽ là vĩnh cửu, tuy nhiên thực tế luôn có một điện trở dù rất thấp chứa trong dây dẫn
Trong cuộn cảm và trong chính vật liệu làm chân linh kiện nên đây thực sự là một mạch RLC do vậy dao động trong mạch sẽ tắt dần
Trang 213.1.7.2 Mô tả cách đo
Đầu tiên sử dụng vi điều khiển cấp 1 xung mức cao(có điện áp V) cho mạch LC hoạt động, sau đó mạch LC sẽ tự dao động
Qua bộ so sánh sẽ thu được sóng vuông
Sử dụng timer của vi điều khiển để đo chu kỳ của xung từ đó suy ra tần số cộng
Sau đó hiển thị giá trị L lên màn hình LCD thông qua giao tiếp I2C với vi điều khiển
Hình 3-12 Sơ đồ nguyên lý mạch đo điện cảm
3.1.8 Khối relay
Trang 22Hình 3-13 Hình ảnh khối relay 2 kênh
3.2 Thiết kế PCB
Mạch PCB phải được thiết kế theo quy tắc chuẩn đi dây đối với các linh kiện điện tử, các linh kiện đặt hợp lý, gọn gàng.Đặc biệt là đường dây của tín hiệu analog phải được đặt sao cho không có đường tín hiệu digital nào đi qua tránh gây nhiễu ảnh hưởng đến kết quả đo
3.2.1 Mạch PCB 3D
Trang 23Hình 3-14 Mạch PCB 3D
CHƯƠNG 4 THIẾT KẾ PHẦN MỀM
4.1 Cấu hình vi điều khiển và các ngoại vi
Phần mềm của thiết bị được cấu hình bằng phần mềm STM32CubeMX được
cung cấp bởi hãng ST chuyên sử dụng để cấu hình cho các dòng chip STM32 Trong giao diện của phần mềm có sẵn các chức năng, sơ đồ chân của chip khiến cho việc chuẩn bị cho quá trình lập trình bằng code có thể diễn ra nhanh chóng và đơn giản hơn