Trong dự án này, chúng tôi sẽ phát triển một mạch vui nhộn sử dụng cảm biến Force và Arduino Uno. Mạch này tạo ra âm thanh liên quan tuyến tính với lực tác dụng lên cảm biến. Đối với điều đó, chúng ta sẽ giao diện cảm biến FORCE với Arduino Uno. Trong UNO, chúng tôi sẽ sử dụng tính năng ADC (Chuyển đổi tương tự sang kỹ thuật số) 8 bit để thực hiện công việc.
Cảm biến lực hoặc Điện trở nhạy cảm
Cảm biến FORCE là một bộ chuyển đổi thay đổi điện trở của nó khi có áp lực tác động lên bề mặt. Cảm biến FORCE có nhiều kích cỡ và hình dạng khác nhau. Chúng tôi sẽ sử dụng một trong những phiên bản rẻ hơn vì chúng tôi không cần nhiều độ chính xác ở đây. FSR400 là một trong những cảm biến lực rẻ nhất trên thị trường. Hình ảnh của FSR400 được hiển thị trong hình dưới đây. Chúng còn được gọi là Điện trở nhạy cảm với lực hoặc FSR vì điện trở của nó thay đổi theo lực hoặc áp suất tác dụng lên nó. Khi áp lực được đặt lên điện trở cảm nhận lực này thì điện trở của nó giảm, nghĩa là điện trở tỷ lệ nghịch với lực tác dụng. Vì vậy, khi không có áp lực nào được tác động lên nó, sức đề kháng của FSR sẽ rất cao.
Bây giờ điều quan trọng cần lưu ý là FSR 400 rất nhạy theo chiều dài, lực hoặc trọng lượng phải được tập trung vào mê cung ở giữa mắt của cảm biến, như thể hiện trong hình. Nếu tác dụng lực không đúng thời điểm, thiết bị có thể bị hỏng vĩnh viễn.
Một điều quan trọng khác cần biết rằng, cảm biến có thể điều khiển dòng điện ở phạm vi cao. Vì vậy, hãy ghi nhớ các dòng điện trong khi cài đặt. Ngoài ra, cảm biến có giới hạn về lực là 10 Newton. Vì vậy, chúng tôi có thể áp dụng chỉ 1Kg trọng lượng. Nếu đặt trọng lượng cao hơn 1Kg, cảm biến có thể hiển thị một số sai lệch. Nếu nó tăng hơn 3Kg. cảm biến có thể bị hỏng vĩnh viễn.
Như đã nói trước đó, cảm biến này được sử dụng để cảm nhận sự thay đổi của áp suất. Vì vậy, khi trọng lượng được đặt lên trên cảm biến FORCE, điện trở sẽ thay đổi đáng kể. Khả năng chống lại trọng lượng của FS400 được thể hiện trong biểu đồ bên dưới,
Như trong hình trên, điện trở giữa hai tiếp điểm của cảm biến giảm theo trọng lượng hoặc độ dẫn giữa hai tiếp điểm của cảm biến tăng lên. Điện trở của một dây dẫn thuần cảm được cho bởi:
Ở đâu, p- Điện trở suất của dây dẫn
l = Chiều dài của dây dẫn
A = Diện tích của vật dẫn.
Bây giờ hãy xem xét một dây dẫn có điện trở “R”, nếu một số áp lực được đặt trên đầu của dây dẫn, diện tích trên dây dẫn giảm và chiều dài của dây dẫn tăng lên do áp suất. Vì vậy, theo công thức, điện trở của dây dẫn phải tăng lên, vì điện trở R tỷ lệ nghịch với diện tích và cũng tỷ lệ thuận với chiều dài l.
Vì vậy, với điều này đối với một dây dẫn dưới áp suất hoặc trọng lượng, điện trở của dây dẫn tăng lên. Nhưng sự thay đổi này là nhỏ so với sức đề kháng tổng thể. Để có một sự thay đổi đáng kể, nhiều dây dẫn được xếp chồng lên nhau. Đây là những gì xảy ra bên trong Cảm biến lực được hiển thị trong hình trên. Khi nhìn kỹ, người ta có thể thấy nhiều đường bên trong cảm biến. Mỗi dòng này đại diện cho một dây dẫn. Độ nhạy của cảm biến nằm ở số dây dẫn.
Nhưng trong trường hợp này, điện trở sẽ giảm theo áp suất vì vật liệu được sử dụng ở đây không phải là chất dẫn điện thuần túy. FSR ở đây là các thiết bị có màng dày polyme (PTF) mạnh mẽ. Vì vậy, đây không phải là những thiết bị vật liệu dẫn điện thuần túy. Chúng được tạo thành từ một vật liệu, thể hiện sự giảm sức cản khi lực tác dụng lên bề mặt của cảm biến tăng lên. Vật liệu này cho thấy các đặc tính như được thể hiện trong đồ thị của FSR.
Sự thay đổi về điện trở này không có tác dụng gì trừ khi chúng ta có thể đọc được chúng. Bộ điều khiển trong tầm tay chỉ có thể đọc các cơ hội về điện áp và không kém hơn, đối với điều này, chúng ta sẽ sử dụng mạch phân áp, với đó chúng ta có thể suy ra sự thay đổi điện trở khi thay đổi điện áp.
Bộ phân áp là một mạch điện trở và được thể hiện trong hình. Trong mạng điện trở này, chúng ta có một điện trở không đổi và điện trở khác. Như trong hình, R1 ở đây là điện trở không đổi và R2 là cảm biến FORCE hoạt động như một điện trở. Điểm giữa của nhánh được lấy để đo. Với sự thay đổi của R2, chúng tôi có sự thay đổi ở Vout. Vì vậy, với điều này, chúng ta có một sự thay đổi điện áp theo trọng lượng.
Bây giờ điều quan trọng cần lưu ý ở đây là, đầu vào được bộ điều khiển thực hiện để chuyển đổi ADC thấp nhất là 50µAmp. Hiệu ứng tải của bộ chia điện áp dựa trên điện trở này rất quan trọng vì dòng điện được rút ra từ Vout của bộ chia điện áp làm tăng tỷ lệ phần trăm lỗi tăng lên, bây giờ chúng ta không cần phải lo lắng về hiệu ứng tải.
Cách kiểm tra Cảm biến FSR
Điện trở cảm nhận lực có thể được kiểm tra bằng đồng hồ vạn năng. Kết nối hai chân của cảm biến FSR với đồng hồ vạn năng mà không cần tác dụng bất kỳ lực nào và kiểm tra giá trị điện trở, nó sẽ rất cao. Sau đó, tác dụng một số lực lên bề mặt của nó và thấy giá trị điện trở giảm.
Các ứng dụng của cảm biến FSR
Điện trở cảm ứng lực chủ yếu được sử dụng để tạo ra các "nút" cảm ứng lực. Chúng được sử dụng trong nhiều lĩnh vực khác nhau, chẳng hạn như cảm biến chỗ ngồi trên xe, miếng cảm ứng điện trở, đầu ngón tay robot, chân tay giả, bàn phím, hệ thống đo nhịp chân, nhạc cụ, Điện tử nhúng, Thiết bị kiểm tra và đo lường, Bộ phát triển OEM và thiết bị điện tử cầm tay, thể thao. Chúng cũng được sử dụng trong các hệ thống Thực tế tăng cường cũng như để tăng cường tương tác trên thiết bị di động.
Thành phần bắt buộc
Phần cứng: Arduino Uno, Nguồn điện (5v), Tụ 1000 uF, Tụ 100nF (3 cái), Điện trở 100KΩ, Buzzer, Điện trở 220Ω, Cảm biến lực FSR400.
PHẦN MỀM: Atmel studio 6.2 hoặc Aurdino hàng đêm
Sơ đồ mạch và giải thích hoạt động
Kết nối mạch để giao tiếp Điện trở cảm ứng lực với Arduino được hiển thị trong sơ đồ dưới đây.
Điện áp trên cảm biến không hoàn toàn tuyến tính; nó sẽ là một ồn ào. Để lọc tiếng ồn, người ta đặt một tụ điện trên mỗi điện trở trong mạch phân chia như hình bên.
Ở đây chúng ta sẽ lấy điện áp được cung cấp bởi bộ chia (điện áp biểu thị tuyến tính trọng lượng) và cấp nó vào một trong các kênh ADC của UNO. Sau khi chuyển đổi, chúng tôi sẽ lấy giá trị kỹ thuật số đó (đại diện cho trọng lượng) và liên hệ nó với giá trị PWM để điều khiển bộ rung.
Vì vậy, với trọng lượng, chúng ta có giá trị PWM thay đổi tỷ lệ nhiệm vụ của nó tùy thuộc vào giá trị kỹ thuật số. Giá trị kỹ thuật số càng cao thì tỷ lệ nhiệm vụ của PWM càng cao, do đó tiếng ồn do bộ rung tạo ra càng cao. Vì vậy, chúng tôi liên hệ trọng lượng với âm thanh.
Trước khi đi sâu hơn, hãy nói về ADC của Arduino Uno. ARDUINO có sáu kênh ADC, như trong hình. Trong đó, một hoặc tất cả chúng đều có thể được sử dụng làm đầu vào cho điện áp tương tự. UNO ADC có độ phân giải 10 bit (vì vậy các giá trị nguyên từ (0- (2 ^ 10) 1023)). Điều này có nghĩa là nó sẽ ánh xạ điện áp đầu vào từ 0 đến 5 vôn thành các giá trị nguyên từ 0 đến 1023. Vì vậy, với mọi (5/1024 = 4,9mV) trên mỗi đơn vị.
Ở đây chúng ta sẽ sử dụng A0 của UNO.
Chúng ta cần biết một số điều.
|
Trước hết, các kênh UNO ADC có giá trị tham chiếu mặc định là 5V. Điều này có nghĩa là chúng tôi có thể cung cấp điện áp đầu vào tối đa là 5V để chuyển đổi ADC ở bất kỳ kênh đầu vào nào. Vì một số cảm biến cung cấp điện áp từ 0-2,5V, với tham chiếu 5V, chúng tôi nhận được độ chính xác thấp hơn, vì vậy chúng tôi có hướng dẫn cho phép chúng tôi thay đổi giá trị tham chiếu này. Vì vậy, để thay đổi giá trị tham chiếu mà chúng tôi có (“analogReference ();”) Bây giờ chúng tôi để nó như.
Theo mặc định, chúng tôi nhận được độ phân giải ADC tối đa của bo mạch là 10bits, độ phân giải này có thể được thay đổi bằng cách sử dụng lệnh (“analogReadResolution (bits);”). Thay đổi độ phân giải này có thể hữu ích cho một số trường hợp. Bây giờ chúng tôi để nó như.
Bây giờ nếu các điều kiện trên được đặt thành mặc định, chúng ta có thể đọc giá trị từ ADC của kênh '0' bằng cách gọi trực tiếp hàm "analogRead (pin);", ở đây "pin" đại diện cho chân mà chúng ta đã kết nối tín hiệu tương tự, trong trường hợp này là sẽ là "A0". Giá trị từ ADC có thể được lấy thành một số nguyên là “int SENSORVALUE = analogRead (A0); ”, Bằng lệnh này, giá trị sau khi ADC được lưu trữ trong số nguyên“ SENSORVALUE ”.
PWM của Arduino Uno có thể đạt được ở bất kỳ chân nào được ký hiệu là “~” trên bảng mạch PCB. Có sáu kênh PWM trong UNO. Chúng tôi sẽ sử dụng mã PIN3 cho mục đích của mình.
analogWrite (3, VALUE); |
Từ điều kiện trên ta có thể lấy trực tiếp tín hiệu PWM tại chân tương ứng. Tham số đầu tiên trong ngoặc là để chọn số chân của tín hiệu PWM. Tham số thứ hai là để viết tỷ lệ nhiệm vụ.
Giá trị PWM của UNO có thể được thay đổi từ 0 đến 255. Với “0” là thấp nhất đến “255” là cao nhất. Với 255 là tỷ lệ nhiệm vụ, chúng tôi sẽ nhận được 5V ở PIN3. Nếu tỷ lệ nhiệm vụ được đưa ra là 125, chúng tôi sẽ nhận được 2,5V ở PIN3.
Bây giờ chúng ta có giá trị 0-1024 làm đầu ra ADC và 0-255 dưới dạng tỷ lệ nhiệm vụ PWM. Vì vậy, ADC xấp xỉ bốn lần tỷ lệ PWM. Vì vậy, bằng cách chia kết quả ADC cho 4, chúng ta sẽ nhận được tỷ lệ nhiệm vụ gần đúng.
Với điều đó, chúng ta sẽ có một tín hiệu PWM có tỷ lệ nhiệm vụ thay đổi tuyến tính theo trọng lượng. Điều này được đưa cho buzzer, chúng tôi có máy phát âm thanh tùy thuộc vào trọng lượng.