Xã hội mà chúng ta đang sống luôn phát triển từng ngày, mọi khía cạnh đều đòi hỏi sự đổi mới và nâng cao hơn về chất lượng, và trong cuộc sống hàng ngày cũng thế. Từ một việc hết sức bình thường nay đã được nâng cao hơn nhờ sự phát triển của ngành điện tử, việc một kĩ sư điện không thể thiếu thiết bị khi đi làm hoặc chế tạo một món đồ nào đó là một cái đồng hồ đo đa năng. Sau đây em xin giới thiệu về thiết bị đo dòng bằng cách sử dụng arduino và cảm biến dòng ACS712 để đo dòng điện
BỘ GIÁO DỤC VÀ ĐÀO TẠO KHOA ĐIỆN – ĐIỆN TỬ - VIỄN THƠNG ĐỒ ÁN ĐỀ TÀI: ĐO DỊNG ĐIỆN DC QUA TẢI VỚI CẢM BIẾN DÒNG ACS712 Giảng viên hướng dẫn : Sinh viên thực Lớp : NIÊN KHÓA 2015 - 2019 LỜI MỞ ĐẦU Ngày nay, khoa học công nghệ phát triển với tốc độ nhanh chóng, sống mà thay đổi,văn minh đại Sự phát triển ngành kỹ thuật điện tử tạo nhiều thiết bị gọn nhẹ, xử lí nhanh xác Cùng với phát triển vượt trội cảm biến năm gần đây, thiết bị điện tử ứng dụng cảm biến đời, với nhiều tính năng, góp phần nâng cao chất lượng sống. Thấu hiểu nhu cầu đó, em nghiên cứu làm đồ án việc bật tắt đèn tiếng vỗ tay Từ việc bình thường sống nâng cao nhờ phát triển ngành điện tử, việc bật tắt đèn từ đơn giản thuận tiện gấp nhiều lần nhờ mạch điều khiển sử dụng arduino cảm biến dòng ACS712_5A Do kiến thức kinh nghiệm hạn chế, thêm vào lần em thực đề tài nên chắn khơng tránh khỏi thiếu sót, hạn chế em mong có góp ý để hồn thiện đề tài LỜI CAM KẾT Em xin cam đoan đồ án tự thân thực hướng dẫn giảng viên hướng dẫn, lấy cá nhân Do em hồn tồn chịu trách nhiệm đồ án Ký tên LỜI CẢM ƠN Em xin chân thành gửi lời cảm ơn đến giảng viên hướng dẫn, dành thời gian hướng dẫn đưa ý kiến trao đổi giúp em sửa chữa sai sót suốt q trình làm để em hồn thành đồ án cách hoàn thiện NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ MẠCH ĐO DÒNG ĐIỆN DC QUA TẢI VỚI CẢM BIẾN DÒNG ACS712 1.1 Đặt vấn đề 1.2 Lịch sử giải vấn đề 1.3 Nhiệm vụ thiết kế CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Arduino UNO R3 2.2 Cảm biến dòng ACS12 2.3 Màng hình LCD 2.4 Biến trở 1k 2.5 Dây cắm BUS CHƯƠNG 3: THIẾT KẾ THI CÔNG 3.1 Nội dung thực 3.1.1 Nguyên lý hoạt động 3.1.2 Thi công mạch 3.1.3 Code cho mạch 3.2 Kết thực 3.3 Kết luận kiến nghị TÀI LIỆU THAM KHẢO CHƯƠNG 1: TỔNG QUAN VỀ MẠCH ĐO DÒNG ĐIỆN DC QUA TẢI VỚI CẢM BIẾN DÒNG ACS712 1.1 Đặt vấn đề Xã hội mà sống phát triển ngày, khía cạnh đòi hỏi đổi nâng cao chất lượng, sống hàng ngày Từ việc bình thường nâng cao nhờ phát triển ngành điện tử, việc kĩ sư điện thiếu thiết bị làm chế tạo đồ đồng hồ đo đa Sau em xin giới thiệu thiết bị đo dòng cách sử dụng arduino cảm biến dòng ACS712 để đo dòng điện 1.2 Lịch sử giải vấn đề Thiết bị đo dòng có nhiều ứng dụng cách sử dụng đa dạng đa dạng loại cảm biến mà người ta thiết kế mạch Chúng ứng dụng vào nhiều cơng việc hồn cảnh khác thiết bị đo dòng dựa hiệu ứng Hall 1.3 Nhiệm vụ thiết kế Thiết bị đo dòng điện qua cảm biến dòng ACS712 đưa tín hiệu vào arduino suất hình LCD đọc kết CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Arduino UNO R3 - Nhắc tới dòng mạch Arduino dùng để lập trình, mà người ta thường nói tới dòng Arduino UNO Hiện dòng mạch phát triển tới hệ thứ (R3) Arduino UNO sử dụng vi điều khiển họ 8bit AVR ATmega8, ATmega168, ATmega328 Bộ não xử lí tác vụ đơn giản điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm trạm đo nhiệt độ - độ ẩm hiển thị lên hình LCD,… hay ứng dụng khác - Arduino UNO cấp nguồn 5V thông qua cổng USB cấp nguồn với điện áp khuyên dùng 7-12V DC giới hạn 6-20V Thường cấp nguồn pin vng 9V hợp lí bạn khơng có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt ngưỡng giới hạn trên, bạn làm hỏng Arduino UNO - Thông số kĩ thuật Vi điều khiển Điện áp hoạt động Điện áp đầu vào (được đề nghị) Điện áp đầu vào (giới hạn) Số chân I / O kĩ thuật số PWM Digital I / O Pins Analog Input Pins Dòng điện DC I / O Dòng điện DC với chân 3.3V Bộ nhớ flash ATmega328P 5V 7-12V 6-20V 14 (trong có cung cấp đầu PWM) 6 20 mA 50 mA 32 KB (ATmega328P) SRAM EEPROM Tốc độ đồng hồ Chiều dài Bề rộng Cân nặng 0,5 KB sử dụng nạp khởi động KB (ATmega328P) KB (ATmega328P) 16 MHz 68,6 mm 53,4 mm 25 g - Các chân lượng GND (Ground): cực âm nguồn điện cấp cho Arduino UNO Khi bạn dùng thiết bị sử dụng nguồn điện riêng biệt chân phải nối với 5V: cấp điện áp 5V đầu Dòng tối đa cho phép chân 500mA 3.3V: cấp điện áp 3.3V đầu Dòng tối đa cho phép chân 50mA Vin (Voltage Input): để cấp nguồn cho Arduino UNO, bạn nối cực dương nguồn với chân cực âm nguồn với chân GND IOREF: điện áp hoạt động vi điều khiển Arduino UNO đo chân Và dĩ nhiên ln 5V Mặc dù bạn không lấy nguồn 5V từ chân để sử dụng chức cấp nguồn RESET: việc nhấn nút Reset board để reset vi điều khiển tương đương với việc chân RESET nối với GND qua điện trở 10KΩ - Các cổng vào/ra Arduino UNO có 14 chân digital dùng để đọc xuất tín hiệu Chúng có mức điện áp 0V 5V với dòng vào/ra tối đa chân 40mA Ở chân có điện trở pull-up từ cài đặt vi điều khiển ATmega328 (mặc định điện trở khơng kết nối) Một số chân digital có chức đặc biệt sau: chân Serial: (RX) (TX): dùng để gửi (transmit – TX) nhận (receive – RX) liệu TTL Serial Arduino Uno giao tiếp với thiết bị khác thông qua chân Kết nối bluetooth thường thấy nói nơm na kết nối Serial khơng dây Nếu khơng cần giao tiếp Serial, bạn không nên sử dụng chân không cần thiết Chân PWM (~): 3, 5, 6, 9, 10, 11: cho phép bạn xuất xung PWM với độ phân giải 8bit (giá trị từ → 28-1 tương ứng với 0V → 5V) hàm analogWrite() Nói cách đơn giản, bạn điều chỉnh điện áp chân từ mức 0V đến 5V thay cố định mức 0V 5V chân khác Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngồi chức thơng thường, chân dùng để truyền phát liệu giao thức SPI với thiết bị khác LED 13: Arduino UNO có đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, bạn thấy đèn nhấp nháy để báo hiệu Nó nối với chân số 13 Khi chân người dùng sử dụng, LED sáng - Arduino UNO có chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp khoảng 0V → 5V Với chân AREF board, bạn để đưa vào điện áp tham chiếu sử dụng chân analog Tức bạn cấp điện áp 2.5V vào chân bạn dùng chân analog để đo điện áp khoảng từ 0V → 2.5V với độ phân giải 10bit - Đặc biệt, Arduino UNO có chân A4 (SDA) A5 (SCL) hỗ trợ giao tiếp I2C/TWI với thiết bị khác - Lập trình cho Arduino Để lập trình gửi lệnh nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án cấp đến cho người dùng mơi trường lập trình Sự trễ từ gần zero Ngõ tỉ lệ trực tiếp với ngõ vào từ nguồn cung cấp Dạng đóng gói SOIC bọc chì chân (thêm phía sau chữ LC) Sơ đồ chân chức Module ACS712 có loại: ACS 712-05B (5Ampe): 180 – 190 mV/A ACS 712-20A (20Ampe): 96 – 104 mV/A ACS 712-30A (30Ampe): 64 – 68 mV/A Sơ đồ chân Module ACS712 Các ứng dụng IC cảm biến dòng ACS712 Ứng dụng 1: ACS712 xuất tín hiệu analog, VOUT mà biến đổi tuyến tính với dòng điện IP lấy mẫu thứ cấp DC AC, phạm vi định CF giới khuyến cáo dùng cho mục đích quản lý nhiễu, với giá trị phụ thuộ ứng dụng Ứng dụng Mạch phát đỉnh Ứng dụng Cấu hình mạch bên tăng độ lợi đến 610mV/A (đã test dùng ACS712ELC – 05A) Ứng dụng Mạch chốt lỗi dòng 10A Ngưỡng lỗi set R1 R2 Mạch chốt lỗi dòng giữ n trạng thái nguồn 5v đượcc kéo xuống 2.3 Màn hình LCD 2004 Điện áp hoạt động V Kích thước: 98 x 60 x 13.5 mm Chữ đen, xanh lá/ chữ trắng, xanh dương Khoảng cách hai chân kết nối 0.1 inch tiện dụng kết nối với Breadboard Tên chân ghi mặt sau hình LCD hổ trợ việc kết nối, dây điện Có đèn led nền, dùng biến trở PWM điều chình độ sáng để sử dụng điện Có thể điều khiển với dây tín hiệu Châ Ký hiệu Mô tả Giá trị n VSS GND 0V VCC 5V V0 Độ tương phản RS Lựa chọn thanh ghi RS=0 (mức thấp) chọn thanh ghi lệnh RS=1 (mức cao) chọn thanh ghi dữ liệu R/W=0 thanh ghi viết R/W Chọn thanh ghi đọc/viết dữ liệu E Enable DB0 DB1 DB2 10 DB3 11 DB4 Chân truyền dữ liệu 8 bit: DB0DB7 12 DB5 13 DB6 14 DB7 15 A Cực dương led nền 0V đến 5V 16 K Cực âm led nền 0V R/W=1 thanh ghi đọc 2.4 Biến trở 1k Biến trở volume 1K dùng phổ biến nhiều mạch công suất Tên khác potentionmeter Biến trở volume 1K có điện trở thay đổi điều chỉnh Biến trở volume 1K có chân, chân ngồi nối vào Vcc Gnd, chân cho giá trị điện áp nằm khoảng 0(V) -> Vcc (V) 2.5 Dây cắm BUS Dùng để kết nối module lại với với đèn, dùng loại đực – đực đực – CHƯƠNG 3: THIẾT KẾ THI CÔNG 3.1 Nội dung thực 3.1.1 Nguyên lý hoạt động Cảm biến dòng điện sử dụng IC ACS712 dùng để dòng lên đến 5A Đặc biệt đường tín hiệu analog tỉ lệ nhiễu thấp Khi đo DC :Ta mắc tải nối tiếp Ip+ Ip- , dòng điện từ Ip+ đến Ip- tạo Vout từ 2.5V đến 5V tương ứng đến 5A Nếu mắc ngược lại Vout từ 2.5 đến 0V dòng từ đến -5A Ban đầu chưa có Ip Vout 2.5V, có Ip dựa vào Ip dần tiến tới hay dần tiến tới 5V để t xác định chiều dòng điện 3.1.2 Thi công mạch Khi đo DC phải mắc tải nối tiếp Ip+ Ip- chiều Điện áp đầu (chân Out) từ 2.5 – 5V tương ứng dòng – 5A, n mắc ngược điệp áp điện 2.5V đến 0V tương ứng với 0A đến -5A Để đổi điện áp dòng điện lập trình IDE Arduino, cần offset điện áp lúc đầu 2.5V (lúc chưa tải) tương ứng với lấy độ nhạy cảm biến ACS712-20A 185mV/A Tức tính từ mức 2.5V lần tăng lên 185mV ta 1A Vậy thức tính dòng điện là: ecurrent = ((Voltage – offsetvoltage) / sensitivity) Trong đó: ecurrent: dòng điện đo Voltage: Điện áp cảm VĐK đo từ Output cảm biến offsetvoltage: Điện áp offset (2.5V) sensitivity: độ nhạy cảm biến (185mV/A) Trong lập trình Arduino ta dùng cơng thức sau để đọc giá trị điện áp từ output: Voltage = (adcvalue / 1024.0) * 5000; (mV) Trong đó: adcvalue giá trị analog VĐK đọc Sơ đồ kết nối ACS712-20A với Arduino mô Proteus 3.1.3 Code cho mạch // include the library code: #include //library for LCD // initialize the library with the numbers of the interface pins LiquidCrystal lcd(8, 9, 10, 11, 12, 13); //Measuring Current Using ACS712 const int analogchannel = 0; //Kết nối Output cảm biến với chân A0 Arduino int sensitivity = 185; // Độ nhạy 100 cho Module 20A 66 cho Module 30A int adcvalue= 0; int offsetvoltage = 2500; double Voltage = 0; // Giá trị điện áp double ecurrent = 0;// Giá trị dòng void setup() { //baud rate Serial.begin(9600); lcd.begin(20, 4); lcd.setCursor(1,1); lcd.print("SVTDHNLU.COM"); delay(3000); lcd.clear(); lcd.display(); lcd.setCursor(1,0); lcd.print("Doc gia tri tu: "); lcd.setCursor(1,1); lcd.print("Cam bien dong DC"); lcd.setCursor(5,2); lcd.print("ACS 712"); delay(2000); } void loop() { adcvalue = analogRead(analogchannel);//Đọc giá trị cảm biến từ chân Analog Voltage = (adcvalue / 1024.0) * 5000; // mV ecurrent = ((Voltage - offsetvoltage) / sensitivity); //Cơng thức tính dòng điện (A) lcd.clear();//clears the display of LCD delay(1000);//delay of sec lcd.display(); lcd.setCursor(1,0); lcd.print("adc Value = "); lcd.setCursor(13,0); lcd.print(adcvalue); Serial.print("\t mV = "); Serial.print(Voltage,3); // Hiển thị chữ số thập phân sau dấu chấm lcd.setCursor(1,1); lcd.print("Diep ap = "); lcd.setCursor(11,1); lcd.print(Voltage,3);//Hiển thị chữ số thập phân sau dấu chấm lcd.setCursor(17,1); lcd.print("mV"); Serial.print("\t Dong dien = "); Serial.println(ecurrent,3);//Hiển thị chữ số thập phân sau dấu chấm lcd.setCursor(1,2); lcd.print("Dong dien = "); lcd.setCursor(11,2); lcd.print(ecurrent,3);//Hiển thị chữ số thập phân sau dấu chấm lcd.setCursor(16,2); lcd.print("A"); delay(2500); } 3.2 Kết thực 3.3 Kết luận kiến nghị - Kết luận: + Sau trình nghiên cứu, thiết kế thi cơng mạch hướng dẫn tận tình giảng viên, em hồn thành đề tài + Tuy q trình tiến hành đề tài gặp nhiều khó khăn nghiên cứu thiếu sót, kinh nghiệm thực tế em rút nhiều kinh nghiệm học tập tinh thần làm việc - Ưu – nhược điểm: + Ưu điểm: sản phẩm thu nhỏ gọn, dễ sử dụng,tiện lợi, đáp ứng nhu cầu sử dụng đề lúc đầu +Nhược điểm: sản phẩm làm lần đầu nên nhiều sai sót độ ổn định chưa cao, có lúc xảy nhiễu tính thẩm mĩ chưa cao - Kiến nghị: + Hướng phát triển đề tài kết hợp khối điều khiển để sản phẩm có thêm nhiều chức năng, phát triển thêm phần cấu trúc bên cho thẩm mỹ để đáp ứng nhu cầu người sử dụng Hướng đến việc đưa vào phát triển kinh doanh + Cuối cùng, em xin chân thành cảm ơn giảng viên nhiệt tình giúp đỡ tạo điều kiện thuận lợi cho em hoàn thành đề tài TÀI LIỆU THAM KHẢO [3] https://techmaster.vn [4] http://arduino.vn