1. Trang chủ
  2. » Thể loại khác

BÁO cáo bài tập lớn môn kỹ THUẬT đo LƯỜNG và cảm BIẾN

62 448 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

PHẦN 1. KIẾN THỨC CƠ BẢN 1.1. Tổng quan về cảm biến và công nghệ cảm biến Sinh viên trình bày các khái niệm, phân loại cảm biến và các vấn đề liên quan như chống nhiễu, xử lý tín hiệu v.v.v a. Khái niệm Cảm biến là thiết bị điện tử cảm nhận những trạng thái, quá trình vật lý hay hóa học ở môi trường cần khảo sát và biến đổi thành tín hiệu điện để thu thập thông tin về trạng thái hay quá trình đó b. Phân loại Trên thực tế có vô vàn những loại cảm biến khác nhau và chúng ta có thể chia các cảm biến thành hai nhóm chính: • Cảm biến vật lí: có thể kể đến một vài ví dụ dễ hình dung như sóng ánh sáng, hồng ngoại, tia X, hạt bức xạ, nhiệt độ, áp suất, âm thanh, từ trường, gia tốc,… • Cảm biến hóa học: thường thấy như độ ẩm, độ PH, ion, khói,….

BÁO CÁO BÀI TẬP LỚN MÔN KỸ THUẬT ĐO LƯỜNG VÀ CẢM BIẾN Cảm biến và Ứng dụng Thành viên và phân công STT Họ và tên 1 Bùi Xuân Khánh 2 Nguyễn Duy Lăng 3 4 5 Nội dung công việc chính 1 11 MỤC LỤC 2 22 PHẦN 1 KIẾN THỨC CƠ BẢN 1.1 Tổng quan về cảm biến và công nghệ cảm biến Sinh viên trình bày các khái niệm, phân loại cảm biến và các vấn đề liên quan như chống nhiễu, xử lý tín hiệu v.v.v a Khái niệm Cảm biến là thiết bị điện tử cảm nhận những trạng thái, quá trình vật lý hay hóa học ở môi trường cần khảo sát và biến đổi thành tín hiệu điện để thu thập thông tin về trạng thái hay quá trình đó b Phân loại Trên thực tế có vô vàn những loại cảm biến khác nhau và chúng ta có thể chia các cảm biến thành hai nhóm chính: • Cảm biến vật lí: có thể kể đến một vài ví dụ dễ hình dung như sóng ánh sáng, hồng ngoại, tia X, hạt bức xạ, nhiệt độ, áp suất, âm thanh, từ trường, gia tốc,… • Cảm biến hóa học: thường thấy như độ ẩm, độ PH, ion, khói,… Ngoài ra ta cũng có một số hình thức phân chia khác Cảm biến chủ động và bị động Cảm biến chủ động: không sử dụng điện năng bổ sung để chuyển sang tín hiệu điện Điển hình là cảm biến áp điện làm bằng vật liệu gốm, chuyển áp suất thành điện tích trên bề mặt Cảm biến bị động có sử dụng điện năng bổ sung để chuyển sang tín hiệu điện Điển hình là các photodiode khi có ánh sáng chiếu vào thì có thay đổi của điện trở tiếp giáp bán dẫn p-n được phân cực ngược Phân loại theo nguyên lí hoạt động Theo nguyên lí hoạt động ta có thể kể đến những loại cảm biến nổi bật như: • Cảm biến điện trở: hoạt động dựa theo di chuyển con chạy hoặc góc quay của biến trở, hoặc sự thay đổi điện trở do co giãn vật dẫn • Cảm biến cảm ứng: cảm biến biến áp vi phân, cảm biến cảm ứng điện từ, cảm biến dòng xoáy, cảm biến cảm ứng điện động, cảm biến điện dung,… • Cảm biến điện trường: cảm biến từ giảo, cảm biến áp điện,… 3 • Và một số cảm biến nổi bật khác như: cảm biến quang, cảm biến huỳnh quang nhấp nháy, cảm biến điện hóa đầu dò ion và độ pH, cảm biến nhiệt độ,… 1.2 Tổng quan về môi trường và công cụ lập trình 1.2.1 Tổng quan về bộ kit andruino Arduino là một nền tảng mà mọi thiết bị phần cứng đều được làm sẵn và chuẩn hóa, người dùng chỉ việc chọn những thứ mình cần, ráp lại là có thể chạy được Bạn muốn làm xe điều khiển từ xa ? Arduino cung cấp cho bạn module điều khiển động cơ có sẵn, mạch điều khiển có sẵn, mạch thu phát sóng không dây có sẵn,… Bạn sẽ không cần phải động não thiết kế mạch điện cho chiếc xe bởi đơn giản là mọi thứ đều có sẵn Giống như một con người với “thể xác” đã được xây dựng sẵn, một hệ thống Arduino phải có “tâm hồn” để có thể “sống” Và tôi gọi việc tạo ra “tâm hồn” ấy là “Lập trình” Tuy nhiên bạn sẽ không phải lập trình từ A đến Z Mỗi thứ phần cứng gắn mác “Arduino” đều có những đoạn lệnh đã được viết sẵn (gọi là thư viện) do cộng đồng người dùng Arduino cùng phát triển Bạn chỉ việc bưng vào và xào nấu lại theo ý muốn của mình Tới đây, bạn đã giải quyết được vấn đề thứ 2 Đừng lo nếu bạn không biết gì về lập trình bởi chúng chỉ giống như những bài tập Tin học lớp 11 lặt vặt ở trường thôi 4 Chính vì tính tiện lợi và đơn giản cho người sử dụng mà Arduino đã trở thành một hiện tượng trong làng điện tử thế giới Những sản phẩm của cộng đồng người dùng Arduino cũng như những thiết bị hỗ trợ Arduino lớn đến mức không thể thống kê được Nó phát triển đến mức mà ta có thể gọi nó là một hệ sinh thái đa dạng như tiêu đề - giống như Windows hay Android Tôi tin rằng nếu bạn học chữ bằng những quyển vở tập viết thì bạn sẽ cần tới Arduino để đến với điện tử Một vài thành viên trong đại gia đình Arduino *Arduino có thể kết nối với những gì ? Một hệ thống Arduino có thể cung cấp cho bạn rất nhiều sự tương tác với môi trường xung quanh với: • Hệ thống cảm biến đa dạng về chủng loại (đo đạc nhiệt độ, độ ẩm, gia tốc, vận tốc, cường độ ánh sáng, màu sắc vật thể, lưu lượng nước, phát hiện chuyển động, phát hiện kim loại, khí độc,…),… • Các thiết bị hiển thị (màn hình LCD, đèn LED,…) • Các module chức năng (shield) hỗ trợ kêt nối có dây với các thiết bị khác hoặc các kết nối không dây thông dụng (3G, GPRS, Wifi, Bluetooth, 315/433Mhz, 2.4Ghz,…), … 5 • Định vị GPS, nhắn tin SMS,… • … và nhiều thứ thú vị khác đang chờ bạn khám phá *Lịch sử ra đời của Arduino Arduino ra đời tại thị trấn Ivrea, nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduin Nó chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ cho sinh viên học tập của giáo sư Massimo Banzi, một trong những người phát triển Arduino tại trường Interaction Design Instistute Ivrea (IDII) Dù hầu như không có một sự tiếp thị hay quảng cáo nào nhưng tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờ vô vàn lời truyền miệng tốt đẹp của những người dùng đầu tiên Arduino UNO R3 6 Nhắc tới dòng mạch Arduino dùng để lập trình, cái đầu tiên mà người ta thường nói tới chính là dòng Arduino UNO Hiện dòng mạch này đã phát triển tới thế hệ thứ 3 (R3) Bạn sẽ bắt đầu đến với Arduino qua thứ này Bạn có thể dùng Arduino Nano cũng được nhưng tôi khuyên bạn nên dùng cái này 7 1.2.2 Cài đặt IDE, driver, các thao tác trên IDE Cài đặt Driver: Để máy tính của bạn và board Arduino giao tiếp được với nhau, chúng ta cần phải cài đặt driver trước tiên Nếu bạn dùng Windows 8, trong một số trường hợp Windows không cho phép bạn cài Arduino driver (do driver không được kí bằng chữ kí số hợp lệ) Do vậy bạn cần vào Windows ở chế độ Disable driver signature enforcement thì mới cài được driver Đầu tiên, các bạn chạy file arduino-1.6.4\drivers\dpinst-x86.exe (Windows x86) hoặc arduino-1.6.4\drivers\dpinst-amd64.exe (Windows x64) Cửa sổ “Device Driver Installation Wizard” hiện ra, các bạn chọn Next để tiếp tục 8 Khi có yêu cầu xác nhận cài đặt driver, chọn “Install” Đợi khoảng 10 giây trong lúc quá trình cài đặt diễn ra … 9 Quá trình cài đặt đã hoàn tất Bấm “Finish” để thoát 10 Sơ đồ mạch lắp mạch kết nối công tắc hành trình 3 Nguyên tắc lập trình và tính toán Phương pháp đọc tín hiệu: đọc tín hiệu analog và tín hiệu digital thông thường Xét lối ra (OUTPUT) hoạt động ở 2 mức: HIGH – mức giá trị 1 LOW – mức giá trị 0 Thực hiện kiểm tra trạng thái nút bấm bằng hàm digitalRead() trong đoạn chương trình loop() Sử dụng LED để kiểm tra Nếu OUT = 1 mức HIGH đèn sáng Ngược lại, OUT = 0 mức LOW đèn tắt Tuy nhiên, để tiết kiệm thời gian thì người ta sử dụng phương pháp ngắt (Interrupt): Sử dụng phương thức ngắt (interrupt) gọi hàm tự động khi hệ thống sinh ra 1 sự kiện những sự kiện này được thiết lập bằng phần cứng và cấu hình trong phần mềm Ngắt sẽ giúp chương trình gọn và xử lý nhanh hơn Cài đặt ngắt sẽ sinh ra khi trạng thái nút chuyển từ HIGH LOW Phương thức này giúp tắt bật và chuyển trạng thái nhanh hơn, đồng thời vẫn cho ta biết được trạng thái của công tắc Với Arduino Uno có 2 ngắt Cú pháp: attachinterrupt(interrupt, ISR, mode) attachinterrupt(digitalPinToInterrupt(pin), ISR, mode) Thông số: Interrupt: số thứ tự ngắt Trên Arduino Uno có 2 ngắt với số thứ tự là 0 và 1 Ngắt số 0 với chân digital số 2, ngắt số 1 với chân digital số 3 digitalPinToInterrupt(pin): để dịch mã kỹ thuật số thực tế sang số ngắt cụ thể ISR: tên hàm gọi khi ngắt được sinh ra Mode: kiểu kích hoạt, bao gồm: - LOW: kích hoạt liên tục trạng thái chân digital khi ở mức thấp - HIGH: kích hoạt liên tục trạng thái chân digital khi ở mức cao - RISING: kích hoạt trạng thái của chân digital chuyển từ mức điện áp thấp sang mức điện áp cao - FALLING: kích hoạt trạng thái của chân digital chuyển từ mức điện áp cao sang mức điện áp thấp - CHANGE: không phân biệt mức điện áp cao hay thấp Code tham khảo : #include 48 LiquidCrystal lcd(8,9,4,5,6,7); void setup() { // put your setup code here, to run once: pinMode(2,INPUT_PULLUP); pinMode(13,OUTPUT); attachInterrupt(0,On,LOW); } void loop() { // put your main code here, to run repeatedly: digitalWrite(13,HIGH); } void On() { digitalWrite(13,LOW); } 49 3 Kết quả đo 2.1.5 Động cơ giảm tốc G12-N20 + Encoder 2.1.5.1 - Nguyên lý, cấu tạo Cấu tạo: o Encoder được cấu tạo gồm một đĩa tròn xoay quay quanh trục.Trên đĩa được đục lỗ (rãnh), khi đĩa này quay và chiếu đèn led lên trên mặt đĩa thì có sự ngắt quãng.Phía bên kia của đĩa người ta đặt một con mắt thu (photosensor) để thu nhận tín hiệu từ đầu quay 50 Hình ảnh minh họa - Nguyên lý : o Người ta ghi nhận được đèn led có chiếu qua lỗ hay không thông qua cảm biến Số xung đếm được và tăng lên tính bằng số tần ánh sáng bị cắt o Giả sử trên đĩa có 1 lỗ duy nhất thì cứ mỗi lần con mắt thu được tín hiệu đèn led thì có nghĩa là đĩa đã quay được một vòng 2.1.5.2 Cấu hính phần cứng Kết nối dây động cơ và encoder với Arduino UNO - VCC (dây đen): chân 5V: Cấp nguồn cho encoder - GND (dây xanh dương): chân GND: Cấp nguồn cho encoder - C1 (dây xanh lá): chân D3: Chân đọc tín hiệu Phase A - C2 (dây vàng): chân D2: Chân đọc tín hiệu Phase B - M1, M2 (Dây trắng, đỏ): Cấp nguồn cho động cơ (có thể sử dụng chân VIN và GND trên mạch Arduino để cấp nguồn 5V cho động cơ) 51 Sơ đồ mô phỏng lắp mạch động cơ giảm tốc và Encoder 4 Nguyên tắc lập trình và tính toán Để đo được tốc độ động cơ, ta cần đo chu kỳ xung (T) của 1 pha, hay thời gian ngắn nhất giữa 2 lần chuyển mức tín hiệu cùng chiều (từ 0 lên 1 hoặc từ 1 xuống 0) Trong trường hợp này, để quay được 1 vòng động cơ trải qua 7 chu kỳ xung (trước giảm tốc), hay 350 chu kỳ xung sau giảm tốc Tốc độ quay của động cơ (rpm) đc tính bằng công thức: Để xác định vị trí động cơ, ta đếm số chu kỳ xung, mỗi chu kỳ xung tương ứng với 360/7 độ trước giảm tốc hay 360/350 độ sau giảm tốc Để xác định chiều quay của động cơ, ta so sánh trạng thái giữa 2 xung, ví dụ, tại thời điểm tín hiệu pha A chuyển tù 0 lên 1 (RISING), tín hiệu pha B ở mức 1 nếu động cơ quay cùng chiều kim đồng hồ và ở mức 0 nếu động cơ xoay ngược chiều kim đồng hồ Do tốc độ quay của động cơ lớn (tối đa 15.000rpm), do vậy để đảm bảo đo đạc chính xác chu kỳ xung, ta sử dụng các chân ngắt của vi điều khiển (chân D2 và D3) Code tham khảo : #include LiquidCrystal lcd(8,9,4,5,6,7); unsigned long LastTime = 0,DeltaTime; long rpm; int dir,st = 0; void setup() { // put your setup code here, to run once: lcd.begin(16,2); 52 Serial.begin(9600); pinMode(2,INPUT); pinMode(3,INPUT); attachInterrupt(0,speed,FALLING); } void loop() { // put your main code here, to run repeatedly: lcd.setCursor(0,0); lcd.print(rpm); switch(dir) { case 0: lcd.setCursor(0,1); lcd.print("clock-wise"); break; case 1: lcd.setCursor(0,1); lcd.print("anticlock-wise"); break; } } void speed() { st++; if(st==0) { LastTime = micros(); } if(st==7) { DeltaTime = micros() - LastTime; 53 rpm = 60000000/DeltaTime; st = -1; } dir = digitalRead(3); } 4 Kết quả đo 2.1.6 Cảm biến khoảng cách siêu âm HC-SR04 54 2.1.6.1 - Nguyên lý, cấu tạo Cấu tạo và nguyên lý : 1 Phần phát tín hiệu  Các đầu phát và đầu thu siêu âm là các loa gốm được chế tạo đặc biệt, hoạt động phát siêu âm có cường độ cao nhất ở một tần số nào đó ( thường là 40kHz cho các ứng dụng đo khoảng cách) Các loa này cần có nguồn tín hiệu điều khiển có điện áp cao mới phát tốt được (theo datasheet thì là ~ 30V) Chính vì vậy trong phần phát, phần đệm công suất sử dụng một con MAX232 làm nhiệm vụ đệm Nó sẽ lấy tín hiệu từ bộ điều khiển, khuếch đại biên độ lên +/-30V cung cấp cho loa gốm  Để tiết kiệm nguồn cho module cảm biến, phần cấp điện cho MAX232 được điều khiển thông qua một tran PNP, khi không hoạt động, bộ điều khiển sẽ làm cho tran này ngưng dẫn, hạn chế tiêu thụ dòng 2 Phần thu tín hiệu  Khi loa gốm làm đầu thu ( loa này được chế tạo chỉ nhạy với một tần số nào đó- 40KHz) thu được sóng siêu âm, nó sẽ phát ra một điện thế giữa hai cực Điện thế này là rất nhỏ, vì vậy nó được đưa qua một OPAM, ở đây là TL072 ( Một số module sự dụng LM324, ) Tín hiệu này liên tục được khuých đại biên độ và cuối cùng là đưa qua một bộ so sánh, kết hợp với tín hiệu từ bộ điều khiển để đưa về bộ điều khiển thông qua một trans NPN 3 Phần xử lý, điều khiển  Phần xử lý, điều khiển thường sử dụng một vi điều khiển (PIC16F688, STC11, ) làm nhiệm vụ phát xung, xử lý tính toán thời gian từ khi phát đến khi thu được sóng siêu âm do nó phát ra nếu nhận được tín hiệu TRIG Đến đây thì nguyên lý hoạt động thông thường của cảm biến này thì ai cũng biết rồi nhé ( cấp xung TRIG, chờ đo độ rộng xung ECHO để tính toán thời gian, ) 2.1.6.2 Cấu hính phần cứng HC-SR04 Arduino Uno VCC (cấp nguồn cho cảm biến) 5V GND (dây nối đất) GND Trig (phát xung) Digital 2 Echo (nhận xung) Digital 3 Chân kết nối cảm biến khoảng cách HC-SR04 55 Sơ đồ mô phỏng kết nối mạch và cảm biến HC-SR04 5 Nguyên tắc lập trình và tính toán - Cảm biến khoảng cách phát sóng siêu âm tới vật cần đo - Sóng siêu âm gặp vật cản phản xạ lại cảm biến - Đo thời gian t từ khi phát sóng siêu âm đến khi sóng siêu âm phản xạ ngược lại cảm biến - Khoảng cách tính theo công thức: 56 Mô phỏng nguyên lý đo khoảng cách bằng cảm biến HC-SR04 Cụ thể áp dụng vào cảm biến: - Để đo khoảng cách, ta sẽ phát 1 xung rất ngắn từ chân Trig Sau đó, cảm biến sẽ tạo ra 1 xung HIGH ở chân Echo, chân Echo sẽ chuyển sang Low khi nhận được xung phản xạ về Chiều rộng của xung (thời gian chân Echo chuyển từ High về Low) sẽ bằng với thời gian sóng siêu âm được phát từ cảm biển và quay trở lại -Code tham khảo : #include LiquidCrystal lcd(8,9,4,5,6,7); const int trig=2,echo=3; void setup() { // put your setup code here, to run once: lcd.begin(16,2); Serial.begin(9600); pinMode(trig,OUTPUT); 57 pinMode(echo,INPUT); } void loop() { // put your main code here, to run repeatedly: float duration,distance; digitalWrite(trig,LOW); delayMicroseconds(2); digitalWrite(trig,HIGH); delayMicroseconds(2); digitalWrite(trig,LOW); duration = pulseIn(echo,HIGH,30000); distance = duration*0.034/2; lcd.print("Kcach: "); lcd.print(distance); delay(500); lcd.clear(); } 58 5 Kết quả đo 59 PHẦN 3 CẢM BIẾN NÂNG CAO Sinh viên lựa chọn 1 cảm biển nâng cao và xây dựng ứng dụng với loại cảm biến này PHẦN 4 ĐÁNH GIÁ HOẠT ĐỘNG CỦA CÁC THÀNH VIÊN 60 ... điện từ, cảm biến dịng xốy, cảm biến cảm ứng điện động, cảm biến điện dung,… • Cảm biến điện trường: cảm biến từ giảo, cảm biến áp điện,… • Và số cảm biến bật khác như: cảm biến quang, cảm biến huỳnh... loại cảm biến bật như: • Cảm biến điện trở: hoạt động dựa theo di chuyển chạy góc quay biến trở, thay đổi điện trở co giãn vật dẫn • Cảm biến cảm ứng: cảm biến biến áp vi phân, cảm biến cảm ứng... 1.1 Tổng quan cảm biến công nghệ cảm biến Sinh viên trình bày khái niệm, phân loại cảm biến vấn đề liên quan chống nhiễu, xử lý tín hiệu v.v.v a Khái niệm Cảm biến thiết bị điện tử cảm nhận trạng

Ngày đăng: 13/12/2020, 17:19

Xem thêm:

TỪ KHÓA LIÊN QUAN

Mục lục

    PHẦN 1. KIẾN THỨC CƠ BẢN

    1.1. Tổng quan về cảm biến và công nghệ cảm biến

    1.2. Tổng quan về môi trường và công cụ lập trình

    1.2.1. Tổng quan về bộ kit andruino

    *Arduino có thể kết nối với những gì ?

    *Lịch sử ra đời của Arduino

    * Vùng viết chương trình

    * Vùng thông báo (debug)

    * Một số lưu ý

    1.2.3. Một số thao tác với phần cứng

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w