Màn hình text LCD1602 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ễ sử dụng thích hợp cho những người mới học và làm dự án.
Hình 3.2 : Sơ đồ chân của LCD Thông số kỹ thuật
- Điện áp hoạt động là 5 V. - Kích thước: 80 x 36 x 12.5 mm - Chữ đen, nền xanh lá
- Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard.
- Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện.
- 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.
PIC16F877A là dòng PIC phổ biến nhất hiện nay, đầy đủ về tính năng, bộ nhớ đủ hầu hết các ứng dụng thông thường.
Hình 3.3: Vi điều khiển PIC 16F877A
3.1.4.1. Đặc điểm thực thi tốc độ cao của PIC:
- Có 35 lệnh đơn.
- Thời gian thực hiện tất cả các lệnh là 1 chu kì máy, ngoại trừ lệnh rẽ nhánh là 2. - Tốc độ hoạt động:
+ Ngõ vào xung clock có tần số 20MHz. + Chu kì lệnh thực hiện lệnh 200ns. - Có nhiều nguồn ngắt.
- Có 3 kiểu định địa chỉ trực tiếp, gián tiếp và tức thời.
Có chuyển mạch nguồn xung clock trong quá trình hoạt động để tiết kiệm công suất.
- Có chế độ ngủ để tiết kiệm công suất.
- Dãy điện áp hoạt động rộng từ 2V đến 5,5V. - Tầm nhiệt độ làm việc theo chuẩn công nghiệp. - Có mạch reset khi có điện (Power On Reset – POR).
- Có bộ định thời chờ ổn định điện áp khi mới có điện (Power up Timer – PWRT) và bộ định thời chờ dao động hoạt động ổn định khi mới cấp điện (Oscillator Startup Timer – OST).
- Có mạch tự động reset khi phát hiện nguồn điện cấp bị sụt giảm, cho phép lựa chọn bằng phần mềm (Brown out Reset – BOR).
- Có bộ định thời giám sát (Watchdog Timer – WDT) dùng dao động trong chip cho phép bằng phần mềm (có thể định thời lên đến 268 giây).
- Đa hợp ngõ vào reset với ngõ vào có điện trở kéo lên. - Có bảo vệ code đã lập trình.
- Bộ nhớ Flash cho phép xóa và lập trình 100,000 lần.
- Bộ nhớ Eeprom cho phép xóa và lập trình 1,000,000 lần và có thể tồn tại trên 40 năm.
- Cho phép đọc/ghi bộ nhớ chương trình khi mạch hoạt động. - Có tích hợp mạch gỡ rối.
3.2. CHƯƠNG TRÌNH ĐIỀU KHIỂN3.2.1. phần code điều khiển 3.2.1. phần code điều khiển
#use delay (crystal = 20000000) #include <math.h>
#include <LCD.c>
#define DOUT input(pin_b0) #define START INPUT(PIN_B2) #define STOP INPUT(PIN_B3) unsigned int32 ReadCount(void) { int32 Count; unsigned char i; delay_ms(10); output_low(pin_b1); Count=0; while(DOUT); for (i=0;i<24;i++) { output_high(pin_b1); Count = Count<<1; output_low(pin_b1); if(DOUT) Count++; }
Count = Count + 51; }
else {
if (Count >= 50 && Count <= 100) Count = Count - 50; else Count = 0; } return Count; } void main() { int IN = 0; lcd_init(); while(TRUE) { if (!START) IN = 0; if (!STOP) IN = 1; if (IN == 0) { int16 i = ReadCount(); int16 k = 255 - pow(2,i/20); output_c(k);
}
lcd_gotoxy(1,1);
printf(lcd_putc," HE THONG NHUNG"); lcd_gotoxy(1,2);
printf(lcd_putc,"CAN NANG:%3ld", i); delay_ms(100);
} } }
Sau khi kết nối đúng sơ đồ và nguyên lý mạch, Chúng ta sẽ bắt đầu nạp code CCS cho phần mô phỏng của hệ thống sẽ hoạt động như sau:
HX711 sẽ lấy tín hiệu analog chuyển vào bộ ADC được tích hợp trong PIC16F877A, sau khi đọc giá trị và tính toán sẽ hiển thị giá trị lên LCD.
Kết quả sẽ báo qua màn hình LCD và LED
Giá trị sẽ được báo cụ thể qua màn hình LCD
Màu 5 đèn LED sẽ được báo hiệu tượng trương cho khoảng khối lượng được đặt lên cân (trắng,xanh dương, xanh lá, vàng, đỏ), khoảng giá trị tương ứng được chia 20g/1kg.
- PIC nhận dữ liệu từ HX711.
- Bước 4: PIC nhận dữ liệu và xuất dữ liệu . - Xuất dữ liệu ra màn hình LCD
- Xuất dữ liệu ra đèn LED khoảng cách 20g sẽ thay đổi 1 màu. - Bước 5: tính toán và hiển thị khối lượng.
- Bước 6: tiếp tục chương trình? - TRUE: tiếp tục cân..
- FALE: kết thúc chương trình.
CHƯƠNG 5 : THỰC NGHIỆM
5.1. Các bước tiến hành thực nghiệm
Bước 1: cấp nguồn cho mạch, lấy nguồn từ pin 5v.
Bước 2: nạp code cho PIC16F877A bằng phần mềm pickit3 và bộ chân đế và bộ nạp code.
Bước 3: nối mạch như sơ đồ nguyên lý.
Bước 4: kết nối mạch PIC với module để điều khiển LOADCELL
Bước 5: khối lượng cân nặng được đọc từ cảm biến HX711 sẽ được hiển thị trên LCD và báo qua đèn LED.
Bước 6:dựa vào khối lượng trên LCD và tín hiệu từ đèn LED ta có thể điều chỉnh khối lượng sao cho phù hợp.
Hình 5.1: Mô hình
5.2. kết quả thực nghiệm
Sau khi cấp nguồn , ta lấy nguồn 5v cấp cho PIC, LCD và module HX711 để mạch được hoạt động
Sau khi nạp chương trình và lắp ráp mạch thì các thiết bị được liên kết với nối với nhau và hoạt động theo chương trình ta mong muốn.
CHƯƠNG 6 : KẾT LUẬN
6.1. Ưu điểm:
- Chương trình khá thiết thực, gần gũi có thể ứng dụng với nhiều ứng dụng trong cuộc sống.
- Chương trình đơn giản, dễ sử dụng.
- Kích thước nhỏ khá nhỏ gọn, giá thành rẻ, nguyên vật liệu dễ tìm. - Hoạt động ổn định , dễ dàng lắp đặt bảo hành hoặc sửa chữa.
6.2. Nhược điểm
- Chương trình còn quá thô sơ, chưa đáp ứng được với độ khắt khe của thị trường cũng như nhu cầu của người dung hiện nay.
- Còn phải điều khiển bằng tay khá nhiều, chưa tự động hóa được quá trình.
6.3. Hướng phát triển
Thiết kế code, xây dựng chương trình và phần cứng một cách khoa học hơn để có thể phù hợp với nhiều yêu cầu hơn, có thể sử dụng trong nhiều ứng dụng cũng như nhiều mục đích hơn.
Tài liệu tham khảo
eABfA4&ab_channel=FatihAlparslan - https://github.com/Fatihalparslan/HX711-WITH-CCS-C-FOR-PIC16F877A - https://www.youtube.com/watch? v=B9c6kzIHgfY&t=781s&ab_channel=AAA - https://mobitool.net/bo-chuyen-doi-adc-la-gi.html - https://dientunhattung.com/product/loadcell-5kg-la-cam-bien-khoi-luong-can- nang/