- Force Sensor ή Force Sensitive Resistor
- Απαιτούμενα στοιχεία
- Διάγραμμα κυκλώματος και εξήγηση εργασίας
Σε αυτό το έργο θα αναπτύξουμε ένα διασκεδαστικό κύκλωμα χρησιμοποιώντας τον αισθητήρα Force και το Arduino Uno. Αυτό το κύκλωμα παράγει ήχο γραμμικά σχετικά με τη δύναμη που ασκείται στον αισθητήρα. Για αυτό θα συνδέσουμε τον αισθητήρα FORCE με το Arduino Uno. Στο UNO, θα χρησιμοποιήσουμε τη λειτουργία ADC 8 bit (Αναλογική σε ψηφιακή μετατροπή) για να κάνουμε τη δουλειά.
Force Sensor ή Force Sensitive Resistor
Ένας αισθητήρας FORCE είναι ένας μορφοτροπέας που αλλάζει την αντίστασή του όταν ασκείται πίεση στην επιφάνεια. Ο αισθητήρας FORCE διατίθεται σε διάφορα μεγέθη και σχήματα. Θα χρησιμοποιήσουμε μία από τις φθηνότερες εκδόσεις επειδή δεν χρειαζόμαστε μεγάλη ακρίβεια εδώ. Το FSR400 είναι ένας από τους φθηνότερους αισθητήρες δύναμης στην αγορά. Η εικόνα του FSR400 φαίνεται στο παρακάτω σχήμα. Ονομάζονται επίσης ανθεκτική στη δύναμη αντίσταση ή FSR καθώς η αντίστασή της αλλάζει ανάλογα με τη δύναμη ή την πίεση που ασκείται σε αυτήν. Όταν εφαρμόζεται πίεση σε αυτήν την αντίσταση ανίχνευσης δύναμης, η αντίστασή της μειώνεται, δηλαδή, η αντίσταση είναι αντιστρόφως ανάλογη με τη δύναμη που ασκείται. Έτσι, όταν δεν ασκείται πίεση, η αντίσταση του FSR θα είναι πολύ υψηλή.
Τώρα είναι σημαντικό να σημειωθεί ότι το FSR 400 είναι ευαίσθητο σε όλο το μήκος, η δύναμη ή το βάρος πρέπει να συγκεντρωθεί στο λαβύρινθο στο μέσο του ματιού του αισθητήρα, όπως φαίνεται στο σχήμα. Εάν η δύναμη ασκηθεί σε λάθος χρόνους, η συσκευή θα μπορούσε να προκαλέσει μόνιμη ζημιά.
Ένα άλλο σημαντικό πράγμα που πρέπει να γνωρίζετε ότι, ο αισθητήρας μπορεί να οδηγήσει ρεύματα υψηλής εμβέλειας. Λάβετε λοιπόν υπόψη τα ρεύματα οδήγησης κατά την εγκατάσταση. Επίσης, ο αισθητήρας έχει όριο ισχύος που είναι 10 Newtons. Έτσι μπορούμε να εφαρμόσουμε μόνο 1 κιλό βάρους. Εάν εφαρμοστούν βάρη υψηλότερα από 1Kg, ο αισθητήρας ενδέχεται να εμφανίσει κάποιες αποκλίσεις. Εάν αυξηθεί περισσότερο από 3 κιλά. ο αισθητήρας μπορεί να προκαλέσει μόνιμη ζημιά.
Όπως ειπώθηκε νωρίτερα, αυτός ο αισθητήρας χρησιμοποιείται για την ανίχνευση των αλλαγών στην πίεση. Έτσι, όταν το βάρος εφαρμόζεται πάνω από τον αισθητήρα FORCE, η αντίσταση αλλάζει δραστικά. Η αντίσταση του FS400 σε βάρος φαίνεται στο παρακάτω γράφημα,
Όπως φαίνεται στο παραπάνω σχήμα, η αντίσταση μεταξύ των δύο επαφών του αισθητήρα μειώνεται με το βάρος ή η αγωγιμότητα μεταξύ των δύο επαφών του αισθητήρα αυξάνεται. Η αντίσταση ενός καθαρού αγωγού δίνεται από:
Οπου, p- Ανθεκτικότητα του αγωγού
l = Μήκος αγωγού
A = Περιοχή αγωγού.
Τώρα σκεφτείτε έναν αγωγό με αντίσταση "R", εάν εφαρμοστεί κάποια πίεση πάνω από τον αγωγό, η περιοχή στον αγωγό μειώνεται και το μήκος του αγωγού αυξάνεται ως αποτέλεσμα της πίεσης. Έτσι με τον τύπο, η αντίσταση του αγωγού θα πρέπει να αυξηθεί, καθώς η αντίσταση R είναι αντιστρόφως ανάλογη προς την περιοχή και επίσης άμεσα ανάλογη με το μήκος l.
Έτσι με αυτό για έναν αγωγό υπό πίεση ή βάρος αυξάνεται η αντίσταση του αγωγού. Αλλά αυτή η αλλαγή είναι μικρή σε σύγκριση με τη συνολική αντίσταση. Για μια σημαντική αλλαγή πολλοί αγωγοί στοιβάζονται μεταξύ τους. Αυτό συμβαίνει στους αισθητήρες δύναμης που φαίνονται στο παραπάνω σχήμα. Όταν κοιτάζουμε προσεκτικά μπορεί κανείς να δει πολλές γραμμές μέσα στον αισθητήρα. Κάθε μία από αυτές τις γραμμές αντιπροσωπεύει έναν αγωγό. Η ευαισθησία του αισθητήρα είναι σε αριθμούς αγωγών.
Αλλά σε αυτήν την περίπτωση η αντίσταση θα μειώνεται με πίεση, επειδή το υλικό που χρησιμοποιείται εδώ δεν είναι καθαρός αγωγός. Το FSR εδώ είναι ανθεκτικές συσκευές πολυμερούς πάχους πολυμερούς (PTF). Επομένως, αυτές δεν είναι συσκευές καθαρού αγωγού. Αυτά αποτελούνται από ένα υλικό, το οποίο εμφανίζει μείωση της αντίστασης με αύξηση της δύναμης που εφαρμόζεται στην επιφάνεια του αισθητήρα. Αυτό το υλικό παρουσιάζει χαρακτηριστικά όπως φαίνεται στο γράφημα του FSR.
Αυτή η αλλαγή στην αντίσταση δεν μπορεί να κάνει τίποτα εκτός αν μπορούμε να τις διαβάσουμε. Ο ελεγκτής στο χέρι μπορεί να διαβάσει μόνο τις πιθανότητες τάσης και τίποτα λιγότερο, γι 'αυτό θα χρησιμοποιήσουμε το κύκλωμα διαχωριστή τάσης, με αυτό μπορούμε να αντλήσουμε την αλλαγή αντίστασης καθώς αλλάζει τάση.
Το διαχωριστικό τάσης είναι ένα κύκλωμα αντίστασης και φαίνεται στο σχήμα. Σε αυτό το δίκτυο αντίστασης έχουμε μία σταθερή αντίσταση και άλλη μεταβλητή αντίσταση. Όπως φαίνεται στο σχήμα, το R1 εδώ είναι μια σταθερή αντίσταση και το R2 είναι αισθητήρας FORCE που λειτουργεί ως αντίσταση. Το μεσαίο σημείο του κλαδιού μετράται. Με την αλλαγή R2, έχουμε αλλαγή στο Vout. Έτσι με αυτό έχουμε μια αλλαγή τάσης με το βάρος.
Τώρα σημαντικό που πρέπει να σημειωθεί εδώ είναι ότι η είσοδος που έχει ληφθεί από τον ελεγκτή για μετατροπή ADC είναι τόσο χαμηλή όσο 50 μAmp. Αυτό το φαινόμενο φόρτωσης του διαχωριστή τάσης με βάση την αντίσταση είναι σημαντικό καθώς το ρεύμα που αντλείται από το Vout του διαχωριστή τάσης αυξάνει το ποσοστό σφάλματος αυξάνεται, προς το παρόν δεν χρειάζεται να ανησυχούμε για το φαινόμενο φόρτωσης.
Πώς να ελέγξετε έναν αισθητήρα FSR
Η αντίσταση ανίχνευσης δύναμης μπορεί να ελεγχθεί χρησιμοποιώντας ένα πολύμετρο. Συνδέστε τις δύο ακίδες του αισθητήρα FSR στο πολύμετρο χωρίς να ασκήσετε δύναμη και ελέγξτε την τιμή αντίστασης, θα είναι πολύ υψηλή. Στη συνέχεια, εφαρμόστε λίγο δύναμη στην επιφάνειά του και δείτε τη μείωση της τιμής αντίστασης.
Εφαρμογές του FSR Sensor
Οι αντιστάσεις ανίχνευσης δύναμης χρησιμοποιούνται κυρίως για τη δημιουργία "κουμπιών" ανίχνευσης πίεσης. Χρησιμοποιούνται σε διάφορους τομείς όπως αισθητήρες πληρότητας αυτοκινήτου, αντιστατικά μαξιλάρια αφής, ρομποτικά δάχτυλα, τεχνητά άκρα, πληκτρολόγια, συστήματα προφοράς ποδιών, μουσικά όργανα, Ενσωματωμένα ηλεκτρονικά είδη, Εξοπλισμός δοκιμών και μετρήσεων, κιτ ανάπτυξης OEM και φορητά ηλεκτρονικά, αθλητικά. Χρησιμοποιούνται επίσης σε συστήματα Augmented Reality, καθώς και για την ενίσχυση της αλληλεπίδρασης μέσω κινητού.
Απαιτούμενα στοιχεία
Υλικό: Arduino Uno, τροφοδοτικό (5v), 1000 uF πυκνωτής, 100nF πυκνωτής (3 τεμάχια), 100KΩ αντίσταση, βομβητής, 220Ω αντίσταση, FSR400 Force αισθητήρας.
ΛΟΓΙΣΜΙΚΟ: Atmel studio 6.2 ή Aurdino κάθε βράδυ
Διάγραμμα κυκλώματος και εξήγηση εργασίας
Η σύνδεση κυκλώματος για διασύνδεση Resistor ανίχνευσης δύναμης με Arduino φαίνεται στο παρακάτω διάγραμμα.
Η τάση στον αισθητήρα δεν είναι εντελώς γραμμική. θα είναι θορυβώδες. Για να φιλτράρετε τον θόρυβο τοποθετούνται πυκνωτές σε κάθε αντίσταση στο κύκλωμα διαχωριστή όπως φαίνεται στο σχήμα.
Εδώ πρόκειται να πάρουμε την τάση που παρέχεται από το διαχωριστικό (τάση που αντιπροσωπεύει το βάρος γραμμικά) και να την τροφοδοτήσουμε σε ένα από τα κανάλια ADC του UNO. Μετά τη μετατροπή θα πάρουμε αυτήν την ψηφιακή τιμή (που αντιπροσωπεύει το βάρος) και θα την συσχετίσουμε με την τιμή PWM για την οδήγηση του βομβητή.
Έτσι, με το βάρος έχουμε μια τιμή PWM που αλλάζει την αναλογία λειτουργίας ανάλογα με την ψηφιακή τιμή. Όσο υψηλότερη είναι η ψηφιακή τιμή, τόσο υψηλότερη είναι η αναλογία λειτουργίας του PWM, τόσο υψηλότερος ο θόρυβος που παράγεται από το βομβητή. Έτσι συσχετίσαμε το βάρος με τον ήχο.
Πριν προχωρήσουμε περαιτέρω ας μιλήσουμε για το ADC του Arduino Uno. Το ARDUINO διαθέτει έξι κανάλια ADC, όπως φαίνεται στο σχήμα. Σε αυτά μπορεί να χρησιμοποιηθεί ένα ή όλα αυτά ως είσοδοι για αναλογική τάση. Το UNO ADC έχει ανάλυση 10 bit (έτσι οι ακέραιες τιμές από (0- (2 ^ 10) 1023)). Αυτό σημαίνει ότι θα αντιστοιχίσει τις τάσεις εισόδου μεταξύ 0 και 5 volt σε ακέραιες τιμές μεταξύ 0 και 1023. Έτσι για κάθε (5/1024 = 4,9mV) ανά μονάδα.
Εδώ πρόκειται να χρησιμοποιήσουμε το A0 του UNO.
Πρέπει να γνωρίζουμε λίγα πράγματα.
|
Πρώτα απ 'όλα, τα κανάλια UNO ADC έχουν μια προεπιλεγμένη τιμή αναφοράς 5V. Αυτό σημαίνει ότι μπορούμε να δώσουμε μια μέγιστη τάση εισόδου 5V για μετατροπή ADC σε οποιοδήποτε κανάλι εισόδου. Δεδομένου ότι ορισμένοι αισθητήρες παρέχουν τάσεις από 0-2.5V, με αναφορά 5V έχουμε μικρότερη ακρίβεια, επομένως έχουμε μια οδηγία που μας επιτρέπει να αλλάξουμε αυτήν την τιμή αναφοράς. Έτσι, για να αλλάξουμε την τιμή αναφοράς που έχουμε ("analogReference ();") Προς το παρόν το αφήνουμε ως.
Ως προεπιλογή, έχουμε τη μέγιστη ανάλυση ADC πλακέτας που είναι 10 bits, αυτή η ανάλυση μπορεί να αλλάξει χρησιμοποιώντας οδηγίες ("analogReadResolution (bits);"). Αυτή η αλλαγή ανάλυσης μπορεί να είναι χρήσιμη για ορισμένες περιπτώσεις. Προς το παρόν το αφήνουμε ως.
Τώρα, εάν οι παραπάνω συνθήκες έχουν οριστεί ως προεπιλεγμένες, μπορούμε να διαβάσουμε την τιμή από το ADC του καναλιού '0' καλώντας απευθείας τη λειτουργία "analogRead (pin);", εδώ "pin" αντιπροσωπεύει pin όπου συνδέσαμε το αναλογικό σήμα, σε αυτήν την περίπτωση θα ήταν "A0". Η τιμή από το ADC μπορεί να ληφθεί σε ακέραιο ως "int SENSORVALUE = analogRead (A0). ", Με αυτήν την οδηγία η τιμή μετά την αποθήκευση του ADC στον ακέραιο" SENSORVALUE ".
Το PWM του Arduino Uno μπορεί να επιτευχθεί σε οποιαδήποτε από τις καρφίτσες που συμβολίζονται ως «~» στον πίνακα PCB. Υπάρχουν έξι κανάλια PWM στο UNO. Θα χρησιμοποιήσουμε το PIN3 για το σκοπό μας.
analogWrite (3, ΑΞΙΑ); |
Από την παραπάνω συνθήκη μπορούμε να πάρουμε απευθείας το σήμα PWM στον αντίστοιχο πείρο. Η πρώτη παράμετρος σε αγκύλες είναι για την επιλογή του αριθμού pin του σήματος PWM. Η δεύτερη παράμετρος είναι για το λόγο εργασίας γραφής.
Η τιμή PWM του UNO μπορεί να αλλάξει από 0 σε 255. Με το "0" όσο το χαμηλότερο στο "255" ως το υψηλότερο. Με 255 ως αναλογία λειτουργίας θα έχουμε 5V στο PIN3. Εάν ο λόγος λειτουργίας είναι 125, θα λάβουμε 2,5V στο PIN3.
Τώρα έχουμε τιμή 0-1024 ως έξοδο ADC και 0-255 ως λόγο δασμού PWM. Έτσι, το ADC είναι περίπου τέσσερις φορές ο λόγος PWM. Έτσι, διαιρώντας το αποτέλεσμα ADC με 4 θα πάρουμε την κατά προσέγγιση αναλογία δασμού.
Με αυτό θα έχουμε ένα σήμα PWM του οποίου ο λόγος λειτουργίας αλλάζει γραμμικά με το βάρος. Αυτό δίνεται στον βομβητή, έχουμε γεννήτρια ήχου ανάλογα με το βάρος.