Πίνακας περιεχομένων:
Βίντεο: Happy Hack Light Switch: 3 Βήματα
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Τις τελευταίες 2 εβδομάδες δουλέψαμε σε ένα σχολικό έργο που ονομάζεται "Happy hacking". Με αυτό το έργο προσπαθήσαμε να κάνουμε ένα "Happy hack" για έναν δημόσιο χώρο. Λοιπόν, τι είναι το "Happy hack"; Στην περίπτωσή μας έπρεπε να κάνουμε κάτι θετικό με βάση μια απογοήτευση. Η χρήση του Arduino ήταν απαραίτητη για αυτό το έργο. Το "Happy hack" που αποφασίσαμε να κάνουμε ήταν μια εγκατάσταση για την από απόσταση αναστροφή του διακόπτη φώτων.
Βήμα 1: Υλικά:
1x Arduino Uno
1x Breadboard
2x σερβο
1x υπέρυθρο αισθητήρα
Σύρμα 11x
1x υπέρυθρο αποστολέα (αφαίρεση τηλεόρασης)
ταινία-κασέτα
Βήμα 2: Πώς να συνδεθείτε:
Βάλτε έναν δέκτη υπερύθρων Arduino στον πίνακα ψωμιού. υποθέτοντας ότι η μπροστινή πλευρά του δέκτη είναι η πλευρά με τη σφαίρα πάνω του:
- Συνδέστε ένα καλώδιο από το πιο αριστερό «πόδι» στη θύρα Uno Arduino «6».
- Συνδέστε ένα καλώδιο από το μεσαίο "πόδι" στη σειρά "-" στη σανίδα ψωμιού.
- Συνδέστε ένα καλώδιο από το πιο δεξιό "πόδι" στη σειρά "+" στον πίνακα ψωμιού.
Βεβαιωθείτε ότι ένα καλώδιο βρίσκεται μεταξύ της σειράς "-" στο breadboard και μιας θύρας "γείωσης" στο Arduino uno και βεβαιωθείτε ότι ένα καλώδιο βρίσκεται μεταξύ της σειράς "+" στο breadboard και της θύρας "5V" στο Arduino uno.
Τώρα συνδέστε τα 2 servos,
- Και τα δύο με ένα σύρμα από το πιο σκούρο σύρμα στο σερβο, στη σειρά «-» στο ψωμί.
- Και τα δύο με ένα σύρμα από το μεσαίο σύρμα στο σερβο, στη σειρά «+» στο ψωμί.
Τώρα, για ένα από τα servos συνδέστε το υπόλοιπο σερβο καλώδιο στη θύρα Arduino uno '9' και συνδέστε το άλλο σερβο στη θύρα uno Arduino '10'.
Βήμα 3: Κωδικός:
#περιλαμβάνω //
#περιλαμβάνω //
#περιλαμβάνω //
IRrecv irrecv (6);
decode_results αποτελέσματα?
Servo theServo1;
Servo theServo2;
bool lightOn = false;
bool disco = false?
void setup () {
theServo1.attach (10);
theServo2.attach (9);
pinMode (6, ΕΙΣΟΔΟΣ);
Serial.begin (9600);
irrecv.enableIRIn (); // Εκκινήστε τον δέκτη
irrecv.blink13 (αληθινό);
}
void loop () {
εάν (irrecv.decode (& αποτελέσματα)) {
Serial.println (results.value); // Παίρνετε ένα διαφορετικό αποτέλεσμα για κάθε κουμπί. Ελέγξτε λοιπόν στη σειριακή οθόνη τι αξία έχουν τα κουμπιά σας.
if (results.value == 3772793023) {// Αυτό είναι το αποτέλεσμα του κουμπιού λειτουργίας (3772793023). Αυτό είναι πιθανώς διαφορετικό με το τηλεχειριστήριό σας.
lightOn =! lightOn;
αν (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
αν (! lightOn) {
theServo1.write (95);
theServo2.write (95);
}
καθυστέρηση (1000)?
}
if (results.value == 3772839943) {// Αυτό είναι το αποτέλεσμα του κουμπιού πληροφοριών μας (37728).
ντίσκο =! ντίσκο;
καθυστέρηση (1000)?
}
Serial.println (results.value);
irrecv.resume (); // Λάβετε την επόμενη τιμή
}
αν (ντίσκο) {
lightOn =! lightOn;
αν (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
αν (! lightOn) {
theServo1.write (95);
theServo2.write (90);
}
καθυστέρηση (2000).
}
}