- Απαιτούμενα συστατικά:
- Επεξήγηση κυκλώματος:
- Γεννήτρια σήματος χρησιμοποιώντας 555 Timer IC:
- Πύλη Schmitt Trigger:
- Επεξήγηση μετρητή συχνότητας Arduino:
Σχεδόν κάθε ηλεκτρονικός χόμπι πρέπει να έχει αντιμετωπίσει ένα σενάριο στο οποίο πρέπει να μετρήσει τη συχνότητα του σήματος που παράγεται από ένα ρολόι ή έναν μετρητή ή ένα χρονόμετρο. Μπορούμε να χρησιμοποιήσουμε τον παλμογράφο για να κάνουμε τη δουλειά, αλλά δεν μπορούμε όλοι να αντέξουμε έναν παλμογράφο. Μπορούμε να αγοράσουμε εξοπλισμό για τη μέτρηση της συχνότητας, αλλά όλες αυτές οι συσκευές είναι δαπανηρές και δεν είναι για όλους. Έχοντας αυτό κατά νου, θα σχεδιάσουμε έναν απλό αλλά αποτελεσματικό μετρητή συχνότητας χρησιμοποιώντας την πύλη ενεργοποίησης Arduino Uno και Schmitt.
Αυτός ο μετρητής συχνότητας Arduino είναι οικονομικά αποδοτικός και μπορεί εύκολα να κατασκευαστεί, θα χρησιμοποιήσουμε το ARDUINO UNO για τη μέτρηση της συχνότητας του σήματος, το UNO είναι η καρδιά του έργου εδώ.
Για να δοκιμάσουμε τον μετρητή συχνότητας, πρόκειται να φτιάξουμε μια πλαστή γεννήτρια σήματος. Αυτή η πλαστή γεννήτρια σήματος θα κατασκευαστεί χρησιμοποιώντας ένα χρονοδιακόπτη 555. Το κύκλωμα χρονοδιακόπτη δημιουργεί ένα τετραγωνικό κύμα που θα παρασχεθεί στο UNO για δοκιμή.
Με τα πάντα στη διάθεσή μας θα έχουμε έναν μετρητή συχνότητας Arduino και μια γεννήτρια τετραγωνικών κυμάτων. Το Arduino μπορεί επίσης να χρησιμοποιηθεί για τη δημιουργία άλλου είδους κυματομορφών όπως ημιτονοειδές κύμα, πριόνι δοντιών κ.λπ.
Απαιτούμενα συστατικά:
- 555 χρονοδιακόπτης IC και 74LS14 Schmitt trigger gate ή NOT gate.
- 1K Ω αντίσταση (2 τεμάχια), 100Ω αντίσταση
- Πυκνωτής 100nF (2 τεμάχια), πυκνωτής 1000μF
- LCD 16 * 2,
- 47KΩ δοχείο,
- Breadboard και μερικοί σύνδεσμοι.
Επεξήγηση κυκλώματος:
Το διάγραμμα κυκλώματος της μέτρησης συχνότητας με χρήση του Arduino φαίνεται στο παρακάτω σχήμα. Το κύκλωμα είναι απλό, μια οθόνη LCD διασυνδέεται με το Arduino για την εμφάνιση της μετρηθείσας συχνότητας του σήματος. Το «Wave Input» πηγαίνει στο κύκλωμα γεννήτριας σήματος, από το οποίο τροφοδοτούμε το σήμα στον Arduino. Μια πύλη σκανδάλης Schmitt (IC 74LS14) χρησιμοποιείται για να διασφαλιστεί ότι τροφοδοτείται μόνο το ορθογώνιο κύμα στο Arduino. Για το φιλτράρισμα του θορύβου έχουμε προσθέσει μερικούς πυκνωτές σε ισχύ. Αυτός ο μετρητής συχνότητας μπορεί να μετρήσει συχνότητες έως 1 MHz.
Το κύκλωμα γεννήτριας σήματος και η σκανδάλη Schmitt εξηγούνται παρακάτω.
Γεννήτρια σήματος χρησιμοποιώντας 555 Timer IC:
Πρώτα απ 'όλα θα μιλήσουμε για τη γεννήτρια τετραγωνικών κυμάτων βασισμένων σε IC 555 ή θα έπρεπε να πω 555 Astable Multivibrator. Αυτό το κύκλωμα είναι απαραίτητο γιατί, με τον μετρητή συχνότητας στη θέση του, πρέπει να έχουμε ένα σήμα του οποίου η συχνότητα είναι γνωστή σε εμάς. Χωρίς αυτό το σήμα δεν θα μπορέσουμε ποτέ να πούμε τη λειτουργία του μετρητή συχνότητας. Εάν έχουμε ένα τετράγωνο γνωστής συχνότητας, μπορούμε να χρησιμοποιήσουμε αυτό το σήμα για να δοκιμάσουμε τον μετρητή συχνότητας Arduino Uno και μπορούμε να το τροποποιήσουμε για ρυθμίσεις ακρίβειας, σε περίπτωση αποκλίσεων. Η εικόνα του Signal Generator χρησιμοποιώντας 555 Timer IC δίνεται παρακάτω:
Τυπικό κύκλωμα 555 σε λειτουργία Astable δίνεται παρακάτω, από το οποίο έχουμε παράγει το παραπάνω δεδομένο κύκλωμα γεννήτριας σήματος.
Η συχνότητα σήματος εξόδου εξαρτάται από RA, RB αντιστάσεις και πυκνωτή C. Η εξίσωση δίνεται ως, Συχνότητα (F) = 1 / (Χρονική περίοδος) = 1,44 / ((RA + RB * 2) * C).
Εδώ τα RA και RB είναι τιμές αντίστασης και το C είναι τιμή χωρητικότητας. Βάζοντας τις τιμές αντίστασης και χωρητικότητας στην παραπάνω εξίσωση λαμβάνουμε τη συχνότητα του τετραγωνικού κύματος εξόδου.
Μπορεί κανείς να δει ότι το RB του παραπάνω διαγράμματος αντικαθίσταται από ένα δοχείο στο Κύκλωμα Γεννήτριας Σήματος. Αυτό γίνεται έτσι ώστε να μπορούμε να έχουμε τετραγωνικό κύμα μεταβλητής συχνότητας στην έξοδο για καλύτερη δοκιμή. Για απλότητα, μπορεί κανείς να αντικαταστήσει το δοχείο με μια απλή αντίσταση.
Πύλη Schmitt Trigger:
Γνωρίζουμε ότι όλα τα σήματα δοκιμής δεν είναι τετράγωνα ή ορθογώνια κύματα. Έχουμε τριγωνικά κύματα, κύματα δοντιών, ημιτονοειδή κύματα και ούτω καθεξής. Με τον ΟΗΕ να είναι σε θέση να ανιχνεύσει μόνο τα τετράγωνα ή ορθογώνια κύματα, χρειαζόμαστε μια συσκευή που θα μπορούσε να αλλάξει οποιαδήποτε σήματα σε ορθογώνια κύματα, έτσι χρησιμοποιούμε Schmitt Trigger πύλη. Το Schmitt trigger gate είναι μια ψηφιακή λογική πύλη, σχεδιασμένη για αριθμητικές και λογικές λειτουργίες.
Αυτή η πύλη παρέχει OUTPUT με βάση το επίπεδο τάσης INPUT. Ένα Schmitt Trigger έχει ένα επίπεδο τάσης THERSHOLD, όταν το σήμα INPUT που εφαρμόζεται στην πύλη έχει ένα επίπεδο τάσης υψηλότερο από το THRESHOLD της λογικής πύλης, το OUTPUT πηγαίνει HIGH. Εάν το επίπεδο σήματος τάσης INPUT είναι χαμηλότερο από το THRESHOLD, το OUTPUT της πύλης θα είναι χαμηλό. Δεν παίρνουμε συνήθως τη σκανδάλη Schmitt ξεχωριστά, έχουμε πάντα μια πύλη ΔΕΝ μετά την σκανδάλη Schmitt. Η εργασία Schmitt Trigger εξηγείται εδώ: Schmitt Trigger Gate
Θα χρησιμοποιήσουμε το τσιπ 74LS14, αυτό το τσιπ έχει 6 πύλες Schmitt Trigger σε αυτό. Αυτές οι SIX πύλες συνδέονται εσωτερικά όπως φαίνεται στο παρακάτω σχήμα.
Ο Πίνακας Αλήθειας της πύλης Inverted Schmitt Trigger φαίνεται στο παρακάτω σχήμα, με αυτό πρέπει να προγραμματίσουμε το UNO για την αντιστροφή των θετικών και αρνητικών χρονικών περιόδων στα τερματικά του.
Τώρα θα τροφοδοτήσουμε οποιοδήποτε τύπο σήματος στην πύλη ST, θα έχουμε ορθογώνιο κύμα ανεστραμμένων χρονικών περιόδων στην έξοδο, θα τροφοδοτήσουμε αυτό το σήμα στο UNO.
Επεξήγηση μετρητή συχνότητας Arduino:
Ο κωδικός για αυτήν τη μέτρηση συχνότητας χρησιμοποιώντας το arduino είναι αρκετά απλός και εύκολα κατανοητός. Εδώ εξηγούμε τη λειτουργία pulseIn που είναι κυρίως υπεύθυνη μέτρηση της συχνότητας. Το Uno έχει μια ειδική λειτουργία pulseIn , η οποία μας επιτρέπει να προσδιορίσουμε τη διάρκεια θετικής κατάστασης ή τη διάρκεια αρνητικής κατάστασης ενός συγκεκριμένου ορθογώνιου κύματος:
Htime = pulseIn (8, ΥΨΗΛΟΣ); Ltime = pulseIn (8, LOW);
Η δεδομένη συνάρτηση μετρά τον χρόνο για τον οποίο υπάρχει υψηλό ή χαμηλό επίπεδο στο PIN8 του Uno. Έτσι, σε έναν κύκλο κύματος, θα έχουμε τη διάρκεια των θετικών και αρνητικών επιπέδων σε Micro δευτερόλεπτα. Η λειτουργία pulseIn μετρά τον χρόνο σε μικρο δευτερόλεπτα. Σε ένα δεδομένο σήμα, έχουμε υψηλό χρόνο = 10 mS και χαμηλό χρόνο = 30 ms (με συχνότητα 25 HZ). Έτσι, 30000 θα αποθηκευτούν σε ακέραιο Ltime και 10000 σε Htime. Όταν τα προσθέσουμε μαζί, θα έχουμε τη Διάρκεια Κύκλου και αναστρέφοντας θα έχουμε τη Συχνότητα.
Ο πλήρης κωδικός και το βίντεο για αυτόν τον μετρητή συχνότητας χρησιμοποιώντας το Arduino δίνονται παρακάτω.