panospapazoglou.gr

Arduino

 

Αισθητήρας αφής (touch sensor)



Σε αυτή την εφαρμογή, θα δούμε ορισμένα ζητήματα σχετικά με την ανάπτυξη και τη λειτουργία ενός αισθητήρα αφής, ο οποίος μπορεί να κατασκευαστεί εύκολα και με φθηνά υλικά.

Η παρουσίαση είναι οργανωμένη σε τρεις ενότητες και εσείς μπορείτε να βρείτε τις πληροφορίες που σας ενδιαφέρουν. Η βασική πρώτη ενότητα σχετίζεται με την κατασκευή και τη λειτουργία του αισθητήρα σε επίπεδο κυκλώματος και κώδικα. Στη δεύτερη ενότητα παρουσιάζεται με σύντομο τρόπο η αρχή λειτουργίας, ενώ στην τελευταία ενότητα, αναφέρονται ορισμένα προβλήματα που μπορεί να συναντήσετε, καθώς και ο τύπος των πιθανών λύσεων.



Όπως φαίνεται στην εικόνα που ακολουθεί, ένα κομμάτι αλουμινόχαρτο είναι αρκετό για την υλοποίηση του σημείου επαφής.

Με τον ίδιο τρόπο -ίδια αρχή- λειτουργεί και η οθόνη του κινητού τηλεφώνου. Η οθόνη λειτουργεί με την αφή του χεριού και όχι με την επαφή κάποιου άλλου αντικειμένου. Αυτό οφείλεται στο γεγονός ότι, αξιοποιούμε το χωρητικό φαινόμενο, αφού το σώμα μας λειτουργεί ως πυκνωτής, αυξάνοντας με την επαφή τη χωρητικότητα του κυκλώματος, το οποίο βρίσκεται πίσω από την οθόνη.

Στις επόμενες εικόνες φαίνεται ότι, μπορούμε να χρησιμοποιήσουμε και άλλα αντικείμενα, όπως ένα κέρμα. Μην ξεχνάτε όμως ότι, η ενεργοποίηση γίνεται πάντα με την αφή.

Το κύκλωμα είναι εξαιρετικά απλό, αφού αποτελείται μόνο από μια αντίσταση, τοποθετημένη σε δύο ακροδέκτες. Για κάθε αισθητήρα, απαιτούνται δύο ακροδέκτες. Μπορεί μια εφαρμογή, να έχει περισσότερους από έναν ακροδέκτες.

Η αντίσταση που θα χρησιμοποιήσουμε στη δοκιμή, είναι 10ΜΩ. Αυτή την τιμή μπορούμε να την επαληθεύσουμε κοιτάζοντας τον χρωματικό κώδικα. Μέσα στο microdev.gr και στην ενότητα Hardware, μπορείτε να βρείτε τον αντίστοιχο χρωματικό κώδικα. Η συγκεκριμένη αντίσταση, έχει τα χρώματα, καφέ, μαύρο και μπλε. Η τέταρτη λωρίδα είναι η ανοχή της τιμής. Επομένως, πρόκειται για αντίσταση τριών ζωνών. Το καφέ και το μαύρο αντιστοιχούν στα ψηφία 1 και 0 αντίστοιχα, άρα έχουμε τον αριθμό 10. Το μπλε είναι πολλαπλασιαστής 1M. Έτσι 10x1ΜΩ=10ΜΩ. Δοκιμάστε και αντιστάσεις 100ΚΩ έως 10ΜΩ και παρατηρήστε την αλλαγή στη συμπεριφορά του κυκλώματος.

Το επόμενο σχήμα δείχνει το τελικό δοκιμαστικό κύκλωμα στο οποίο έχει προστεθεί και ένα κύκλωμα με LED.

Βήμα 1 - Υλοποίηση κυκλώματος LED στο breadboard

Βήμα 2 – Προσθήκη αντίστασης για το κύκλωμα του αισθητήρα

Βήμα 3 – Προσθήκη επιφάνειας αφής (αλουμινόχαρτο)

Για τη λειτουργία του αισθητήρα θα πρέπει να αναπτυχθεί ο κατάλληλος κώδικας. Αυτό είναι μια απλή διαδικασία, αφού υπάρχουν έτοιμες συναρτήσεις, οι οποίες βρίσκονται μέσα σε διαθέσιμη βιβλιοθήκη. Η εγκατάσταση μπορεί να γίνει απευθείας από το περιβάλλον Arduino IDE.

Δείτε τα βασικά σημεία του κώδικα, τα οποία σχετίζονται με τη χρήση της βιβλιοθήκης.

Διαβάστε αναλυτικά τον κώδικα με τα αντίστοιχα σχόλια.

Επίδειξη με αλουμινόχαρτο (στο βίντεο της ενότητας)

Επίδειξη με κέρμα (στο βίντεο της ενότητας)



Το υλικό του αισθητήρα «σχηματίζει» έναν πυκνωτή, ο οποίος σε συνδυασμό με την αντίσταση, αποτελεί ένα κύκλωμα RC. Όταν αγγίζουμε τον αισθητήρα, αυξάνεται η χωρητικότητα του πυκνωτή, προκαλώντας διαφορετική συμπεριφορά στο κύκλωμα RC.

Λόγω του κυκλώματος RC, η στάθμη HIGH (στην οποία έρχεται άμεσα ο ακροδέκτης 10), ανιχνεύεται στον ακροδέκτη 5, μετά από κάποια χρονική καθυστέρηση (δείτε την καμπύλη). Αυτή η καθυστέρηση, η οποία αυξάνεται με την αύξηση της χωρητικότητας κατά το άγγιγμα, προκαλεί σημαντική διαφορά στη συμπεριφορά του κυκλώματος. Αυτή τη χρονική καθυστέρηση μετρά στην ουσία η βιβλιοθήκη που χρησιμοποιούμε.







Η τελευταία διαφάνεια, δείχνει αρχικά τη μορφή και το σχήμα του αισθητήρα που μπορούμε να φτιάξουμε πολύ γρήγορα (π.χ. με γωνίες ή κυκλικό). Στο σχήμα 2, έχουμε προσθέσει γειωμένη επιφάνεια, η οποία αγκαλιάζει τρεις αισθητήρες. Ιδιαίτερη προσοχή θα πρέπει να δοθεί στο κενό των 2mm (μαύρο δαχτυλίδι), μεταξύ του αισθητήρα και της γειωμένης περιοχής. Στο τελευταίο σχήμα, έχουμε εντονότερη γειωμένη περιοχή, η οποία θα μπορούσε να είναι μια ολόκληρη πλακέτα χαλκού.

Δοκιμαστικός κώδικας


Web design and Copyright © Dr. Panayotis (Panos) Papazoglou