Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Συνδέσεις
- Βήμα 2: Δημιουργία προγράμματος
- Βήμα 3: Προσθήκη κώδικα
- Βήμα 4: Προσθήκη USART
- Βήμα 5: Εκτέλεση του κώδικα
- Βήμα 6: Αλλάξτε την ευαισθησία
- Βήμα 7: Αλλάξτε οτιδήποτε σας αρέσει
Βίντεο: Διακόπτης Clap-on: 7 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Ένας συγγενής με ρώτησε μια φορά αν μπορώ να δημιουργήσω έναν διακόπτη που αντιδρά στο χτύπημα των χεριών σας. Έτσι, έχω παραγγείλει κάποια πράγματα για τη δημιουργία ενός έργου και αποφάσισα να κάνω ένα διδακτικό, ώστε όλοι να έχουν έναν υπέροχο διακόπτη σαν κι αυτόν.
Ο μικροελεγκτής είναι ο εγκέφαλος αυτού του έργου. Ένας αισθητήρας ήχου είναι συνδεδεμένος στον μικροελεγκτή, ο αισθητήρας στέλνει αναλογικά δεδομένα όταν ανιχνεύεται ήχος. Ο μικροελεγκτής είναι προγραμματισμένος να ανιχνεύει μεγάλες διαφορές στον ήχο. Όταν ανιχνευτεί μια αρκετά υψηλή διαφορά, που σημαίνει ένα χτύπημα, ο μικροελεγκτής στέλνει ένα σήμα στο ρελέ. Το ρελέ αλλάζει και το φως ανάβει. Όταν χτυπάτε για δεύτερη φορά, το φως θα σβήσει ξανά.
Προμήθειες
Φυσικά πράγματα:
- 1x ATmega328P Xplained Mini με καλώδιο για προγραμματισμό
- 1x μονάδα ρελέ 1 καναλιού (KY-019 ή παρόμοιο)
- 1x μονάδα αισθητήρα ήχου (KY-038 ή παρόμοιο)
- 1x Breadboard
- 6x αρσενικό-αρσενικό καλώδιο άλτης
- 1x πρίζα με καλώδιο (ή οποιαδήποτε άλλη συσκευή που θέλετε να ενεργοποιήσετε)
- 1x λάμπα
- 1x αντίσταση* (χρησιμοποιώ 220 Ohm)
- 1x LED*
Λογισμικό (λήψη):
- AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Στόκος (www.putty.org)*
* Για σκοπούς δοκιμών
Βήμα 1: Συνδέσεις
Συνδέστε όλα τα καλώδια όπως φαίνεται στην εικόνα.
Βήμα 2: Δημιουργία προγράμματος
Μου αρέσει να κωδικοποιώ σε C, οπότε αυτό το έργο είναι γραμμένο στο C.
Εάν δεν έχετε ακόμη κατεβάσει και εγκαταστήσει το απαραίτητο λογισμικό, κάντε λήψη και εγκαταστήστε το τώρα.
Ακολουθήστε τώρα τα επόμενα βήματα:
- Ανοίξτε το AtmelStudio.
- Κάντε κλικ στο "Αρχείο" -> "Νέο" -> "Έργο".
- Κάντε κλικ στο "Εκτελέσιμο έργο GCC C". Δώστε στο έργο σας όνομα και τοποθεσία για αποθήκευση. Κάντε κλικ στο "Εντάξει".
- Αναζητήστε το ATmega328P. Κάντε κλικ στο "ATmega328P" -> "Ok".
- Κάντε κλικ στην Εξερεύνηση λύσεων στο "main.c" για να ανοίξετε το κύριο πρόγραμμα.
Βήμα 3: Προσθήκη κώδικα
Διαγράψτε τον κωδικό που υπάρχει ήδη στο main.c
Αντιγράψτε και επικολλήστε τον ακόλουθο κώδικα στο main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); διπλό val1, val2; int main (άκυρο) {// Αρχικοποίηση του USART_init USART (9600); USART_putstr ("#USART init / n"); // Αρχικοποίηση του ADC InitADC (); USART_putstr ("#ADC init / n"); // PC1 pin της εξόδου PORTC, η υπόλοιπη είσοδος. DDRC = 0b00000010; // ορίστε τις αρχικές τιμές σε PORTC χαμηλές. PORTC = 0b00000000; ενώ (1) {// τιμή ποτενσιόμετρου ανάγνωσης // τιμή ανάγνωσης και αποθήκευση σε val1 val1 = ReadADC (0); _delay_ms (1); // διαβάστε την επόμενη τιμή en store στο val2 val2 = ReadADC (0); char str [10]; // το ReadADC () δίνει την τιμή πίσω σε ακέραιους αριθμούς. Εάν θέλουμε να κάνουμε εντοπισμό σφαλμάτων ή να δούμε την αξία του στόκου, // η τιμή πρέπει να μετατραπεί σε χαρακτήρες, ώστε το USART να μπορεί να την εκτυπώσει. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // αν οι 2 τιμές έχουν κάποια διαφορά. Ένας ήχος ανιχνεύεται και αλλάζει μια θύρα. // MINIMALVALUE μπορεί να αλλάξει, αυξάνοντας το καθιστά λιγότερο ευαίσθητο. Η μείωση θα το κάνει πιο ευαίσθητο εάν (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Επιλέξτε Vref = AVcc ADMUX | = (1 << REFS0); // ρυθμίστε το prescaller στο 128 και ενεργοποιήστε το ADC ADCSRA | = (1 << ADPS2] | (1 << ADPS1] | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// επιλέξτε ADC κανάλι με μάσκα ασφαλείας ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // μεμονωμένη λειτουργία μετατροπής ADCSRA | = (1 << ADSC); // περιμένετε έως ότου ολοκληρωθεί η μετατροπή ADC ενώ (ADCSRA & (1 << ADSC)); επιστροφή ADC? }
Βήμα 4: Προσθήκη USART
Το USART είναι ένα σειριακό πρωτόκολλο επικοινωνίας που μπορεί να χρησιμοποιηθεί στον μικροελεγκτή. Το χρησιμοποιώ στον μικροελεγκτή για να βλέπω αναλογικά δεδομένα από τον αισθητήρα.
Το USART έχει ήδη προγραμματιστεί σωστά, περιέχει αρχείο κεφαλίδας (.h) και προέλευσης (.c). Κατεβάστε τα 2 αρχεία και προσθέστε τα στο πρόγραμμά σας στο AtmelStudio.
Κάντε δεξί κλικ στο όνομα του έργου στο Solution Explorer. Κάντε κλικ στην επιλογή "Προσθήκη" -> "Υφιστάμενο αντικείμενο …" και επιλέξτε τα 2 ληφθέντα αρχεία.
Βήμα 5: Εκτέλεση του κώδικα
Συνδέστε τον μικροελεγκτή στον υπολογιστή. Αναζητήστε στον υπολογιστή σας τον "διαχειριστή συσκευών" και ανοίξτε τον. Αναζητήστε "Θύρες (COM & LPT)" και θυμηθείτε τη θύρα COM που είναι ενεργοποιημένος από τον μικροελεγκτή.
Ανοίξτε το PuTTY και κάντε κλικ στο "Serial" πληκτρολογήστε τη θύρα COM που έχετε βρει του μικροελεγκτή και κάντε κλικ στο "Open". Εμφανίζεται ένα τερματικό, αφήστε το προς το παρόν.
Επιστρέψτε στο AtmelStudio για να επιλέξετε το σωστό εργαλείο για τον προγραμματισμό του μικροελεγκτή.
- Κάντε κλικ στο εργαλείο σφυρί.
- Επιλέξτε το πρόγραμμα εντοπισμού σφαλμάτων/προγραμματιστή "mEDBG*ATML".
- Επιλέξτε διεπαφή "debugWIRE".
- Κάντε κλικ στην επιλογή "Έναρξη χωρίς εντοπισμό σφαλμάτων".
Το πρόγραμμα θα δημιουργήσει και θα γράψει.
Όταν το πρόγραμμα εκτελείται σωστά, θα δείτε ακέραιες τιμές στο puTTY. Χρησιμοποιώντας ένα κατσαβίδι μπορώ να αλλάξω την τιμή που εμφανίζεται στο puTTY γυρίζοντας τη βίδα στον αισθητήρα. Ο αισθητήρας μου δίνει τις τιμές από 0 έως 1000 όταν γυρίζετε τη βίδα μέχρι τέλους. Γυρίζω τη βίδα στο 100 (10%) της συνολικής τιμής. Έχω διαπιστώσει ότι αυτό λειτουργεί για μένα.
Βήμα 6: Αλλάξτε την ευαισθησία
Για να ρυθμίσετε την ευαισθησία όταν ανάβει το φως, μπορείτε να χρησιμοποιήσετε 2 επιλογές, αλλά επιλέξτε μία όχι και τις δύο:
- Αλλαγή βίδας αισθητήρα.
- Αλλαγή τιμής κώδικα.
Χρησιμοποιώ την επιλογή 2. Η αύξηση του MINIMALVALUE θα το κάνει λιγότερο ευαίσθητο, η μείωση το καθιστά πιο ευαίσθητο.
#define MINIMALVALUE 5
Βήμα 7: Αλλάξτε οτιδήποτε σας αρέσει
ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Προσέξτε όταν αλλάζετε υψηλότερες τάσεις
Όταν είστε ευχαριστημένοι με την ευαισθησία του αισθητήρα, μπορείτε να αλλάξετε το κύκλωμα. Αλλάξτε το κύκλωμα όπως στην παραπάνω εικόνα. Τώρα μπορείτε να αλλάξετε ό, τι σας αρέσει!
Συνιστάται:
Διακόπτης τηλεχειριζόμενου φωτός Bluetooth - Μετασκευή. Διακόπτης φωτός ακόμα λειτουργεί, χωρίς επιπλέον εγγραφή .: 9 βήματα (με εικόνες)
Διακόπτης τηλεχειριζόμενου φωτός Bluetooth - Μετασκευή. Ο διακόπτης φωτός εξακολουθεί να λειτουργεί, χωρίς επιπλέον εγγραφή .: Ενημέρωση 25 Νοεμβρίου 2017 - Για έκδοση υψηλής ισχύος αυτού του έργου που μπορεί να ελέγξει κιλοβάτ φορτίου, ανατρέξτε στην ενότητα Επαναπροσαρμογή ελέγχου BLE σε φορτία υψηλής ισχύος - Δεν απαιτείται επιπλέον παροχή Ενημέρωση 15 Νοεμβρίου 2017 - Ορισμένες πλακέτες BLE / στοίβες λογισμικού με
Αυτόματος διακόπτης πληκτρολογίου και ποντικιού - Διακόπτης ανάντη USB: 5 βήματα
Αυτόματος διακόπτης πληκτρολογίου και ποντικιού - USB Upstream Switch: Σε αυτό το έργο θα συναρμολογήσουμε έναν αυτόματο διακόπτη πληκτρολογίου και ποντικιού που επιτρέπει την εύκολη κοινή χρήση μεταξύ δύο υπολογιστών. Η ιδέα για αυτό το έργο προήλθε από την ανάγκη μου, ανά πάσα στιγμή, να έχω δύο υπολογιστές το γραφείο του εργαστηρίου μου. Τις περισσότερες φορές είναι ο δικός μου
Διακόπτης χαστουκιού: Απλός διακόπτης αφής χωρίς συγκόλληση: 7 βήματα
Slap Switch: Simple, No-Solder Touch Switch: Το Slap Switch είναι ένας απλός διακόπτης αφής αντίστασης, σχεδιασμένος για το έργο μου Explod the Controller για ενσωμάτωση φυσικού παιχνιδιού σε παιχνίδια στον υπολογιστή με το Makey Makey και το Scratch. Το έργο χρειαζόταν έναν διακόπτη αφής που ήταν: στιβαρός, για να χαστουκιστεί
Διακόπτης Clap (40 χτυπήματα σε 5 δευτερόλεπτα): 4 βήματα (με εικόνες)
Διακόπτης Clap (40 Claps σε 5 δευτερόλεπτα): Το Clap Switch έχει τη δυνατότητα να ενεργοποιεί/απενεργοποιεί οποιοδήποτε ηλεκτρικό εξάρτημα συνδέοντας την έξοδο του κυκλώματος με έναν διακόπτη ρελέ. Εδώ θα κάνουμε έναν διακόπτη χειροκρότημα με λίγα στοιχεία με πολύ καλές εξηγήσεις. Σε σύγκριση με όλους τους άλλους διακόπτες χτυπήματος
Διακόπτης Clap Bluetooth: 3 βήματα (με εικόνες)
Bluetooth Clap Switch .: Αυτός είναι ένας φθηνός τρόπος για την επαναχρησιμοποίηση παλιών ηχείων bluetooth. Αυτή είναι μια συσκευή DIY που είναι σε θέση να ενεργοποιήσει ή να σβήσει τα φώτα ή οτιδήποτε αστικής τάσης χτυπώντας ένα λογισμικό που είναι εγκατεστημένο στο κινητό. Πράγματα που χρειάζεστε:. Πίνακας Arduino 5v relayany παλιό bluetooth