Πίνακας περιεχομένων:

Έξυπνος διαδραστικός φανός: 5 βήματα (με εικόνες)
Έξυπνος διαδραστικός φανός: 5 βήματα (με εικόνες)

Βίντεο: Έξυπνος διαδραστικός φανός: 5 βήματα (με εικόνες)

Βίντεο: Έξυπνος διαδραστικός φανός: 5 βήματα (με εικόνες)
Βίντεο: TikTok Φάρσα Με την μητέρα μου 😋 2024, Νοέμβριος
Anonim
Έξυπνο διαδραστικό φανάρι
Έξυπνο διαδραστικό φανάρι

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

Απαιτούμενα εξαρτήματα:- Arduino (..duh)- LM317 Mosfet- 2x 60cm Αναλογικές λωρίδες RGB LED (12V)- σωλήνας PVC (1m x 125mm)- Καλώδια (κόκκινο και μαύρο)- Μεταλλικές πλάκες για καλύμματα φωτός- ακρυλικό για το φως - εικονίδια (ελέγξτε το flaticon.com για εικονίδια.svg)- Spraycan ασπρόμαυρο χρώμα.- Ηλεκτρική ταινία- Όλα τα απαιτούμενα εξαρτήματα συγκόλλησης- Οθόνη με την απαιτούμενη ασπίδα (δεν χρησιμοποιείται στο σεμινάριο)

Βήμα 1: Βήμα 1: Φτιάξτε τα καλύμματα φωτός

Βήμα 1: Φτιάξτε τα καλύμματα φωτός
Βήμα 1: Φτιάξτε τα καλύμματα φωτός

Ο σχεδιασμός εξαρτάται πραγματικά από εσάς. Φτιάξαμε ένα καπάκι 15x15cm για να κρατάμε τα φώτα. Κόψαμε τις μεταλλικές πλάκες στο σωστό μέγεθος και χρησιμοποιήσαμε μια μεταλλική μύτη (όχι, όχι από το Avatar) για να λυγίσουμε τα καπάκια στα σωστά σχήματα. Οι πλάκες πλάτης κατασκευάστηκαν από διαφορετικό εξάρτημα.

Βήμα 2: Βήμα 2: Προετοιμασία του πόλου PVC

Βήμα 2: Προετοιμασία του πόλου PVC
Βήμα 2: Προετοιμασία του πόλου PVC

Κόψτε 2 οπές στον στύλο PVC για να ταιριάζουν με τα καλύμματα φωτός. Στη συνέχεια, χρησιμοποιήστε ένα μαύρο σπρέι βαφής για να βάψετε ολόκληρο το πράγμα μαύρο. Εάν θέλετε, μπορείτε να προσθέσετε λευκές λωρίδες στο κάτω μέρος του στύλου (συνηθισμένο στην Ολλανδία).

Βήμα 3: Βήμα 3: Συναρμολόγηση των λωρίδων LED RGB και αμμοβολή των ακρυλικών πλακών

Βήμα 3: Συναρμολόγηση των λωρίδων LED RGB και αμμοβολή των ακρυλικών πλακών
Βήμα 3: Συναρμολόγηση των λωρίδων LED RGB και αμμοβολή των ακρυλικών πλακών
Βήμα 3: Συναρμολόγηση των λωρίδων LED RGB και αμμοβολή των ακρυλικών πλακών
Βήμα 3: Συναρμολόγηση των λωρίδων LED RGB και αμμοβολή των ακρυλικών πλακών

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

Στη συνέχεια θα χρειαστεί να αμμοβολήσετε το επιλεγμένο σύμβολο για την ακρυλική πλάκα. Πάρτε λίγη ταινία και καλύψτε ολόκληρη την ακρυλική πλάκα. Στη συνέχεια κόψτε το σχήμα/φιγούρα που θέλετε. Μετά από αυτό, μπορείτε να αμμοβολήσετε την πλάκα για να έχετε ένα αποτέλεσμα που μοιάζει με παγωμένο γυαλί.

Βήμα 4: Βήμα 4: Συνδέστε τις λωρίδες LED RGB στο Arduino

Βήμα 4: Συνδέστε τις λωρίδες LED RGB στο Arduino
Βήμα 4: Συνδέστε τις λωρίδες LED RGB στο Arduino

Τώρα έρχεται το δύσκολο κομμάτι: σύνδεση των λωρίδων LED RGB με το Arduino. Όταν συνδέετε τις ακίδες βεβαιωθείτε ότι έχετε βάλει το 12v στο 12v της ταινίας σας. Μεταξύ κάθε χρώματος, τόσο κόκκινου ή πράσινου, πρέπει να βάλετε ένα mosfet. Συνδέστε τα δεδομένα της λωρίδας led στη μεσαία καρφίτσα του mosfet και την αριστερή καρφίτσα στο Arduino σας. Η δεξιά καρφίτσα πρέπει να επιστρέψει στο έδαφος του Arduino.

Βήμα 5: Βήμα 5: Γράψτε τον κώδικα Arduino

Βήμα 5: Γράψτε τον κώδικα Arduino
Βήμα 5: Γράψτε τον κώδικα Arduino

Αυτός ο κώδικας Arduino ελέγχεται από bluetooth, επειδή δεν χρησιμοποιήσαμε εσωτερική οθόνη. Έτσι ο κωδικός ελέγχεται μέσω μηνυμάτων bluetooth στη λειτουργία βρόχου ().

#define r 6 #define g 11 #include

SoftwareSerial mySerial (10, 11); // RX, TX

#ορίστε θυμωμένοΜήκος 4

#καθορίστε την πτώσηΜήκος 3 #καθορίστε ευτυχισμένοΜήκος 4 #καθορίστεΤο τηλέφωνοΜήκος 13 #καθορίστε την ομιλίαΜήκος 5 #καθορίστε το περπάτημαΜήκος 4 #καθορίστε το περπάτημαOutLength 4 #καθορίστε το κύμαΜήκος 6

κουμπί boolΠιεσμένο;

int currentMillis; int previousMillis;

int animation1Delay;

int animation2Delay; int animation3Delay; int animation4Delay;

bool animation1Done = false;

bool animation2Done = false; bool animation3Done = false; bool animation4Done = false; bool animation5Done = false;

bool blockLight = false;

bool lightRed = true;

int currentAnimationDelay;

void setup () {

// βάλτε τον κωδικό εγκατάστασης εδώ, για να εκτελεστεί μία φορά: pinMode (r, OUTPUT); pinMode (g, OUTPUT);

Serial.begin (9600);

mySerial.begin (38400); Serial.setTimeout (25); buttonPressed = false; currentMillis = 0; previousMillis = 0;

animation1Delay = walkingLength * 1000;

animation2Delay = wavingLength * 1000; animation3Delay = happyLength * 1000; animation4Delay = walkingOutLength * 1000;

// currentAnimationDelay = animation1Delay * 1000;

lightRed = true; }

void loop () {

// καθυστέρηση (20);

// βάλτε τον κύριο κωδικό σας εδώ, για να εκτελείται επανειλημμένα: unsigned long currentMillis = millis (); if (buttonPressed == true) {if (animation1Done == false) {if (currentMillis - previousMillis> animation1Delay) {Serial.println ("0"); previousMillis = currentMillis; animation1Done = true; }} else if (animation2Done == false και animation1Done == true) {if (currentMillis - previousMillis> animation2Delay) {Serial.println ("1"); previousMillis = currentMillis; animation2Done = true; }} else if (animation3Done == false και animation2Done == true) {if (currentMillis - previousMillis> animation3Delay) {Serial.println ("2"); //Serial.println("sound:green "); previousMillis = currentMillis; animation3Done = true; lightRed = false; }} else if (animation4Done == false και animation3Done == true) {if (currentMillis - previousMillis> animation4Delay) {previousMillis = currentMillis; animation4Done = true; Serial.println ("FLSH"); }}}

εάν (Serial.available ()) {

String str = Serial.readString (); if (str == "CMD: BUTTON_PRESSED") {

animation1Done = false;

animation2Done = false; animation3Done = false; animation4Done = false; animation5Done = false;

animation1Delay = walkingLength * 1000;

animation2Delay = wavingLength * 1000; animation3Delay = happyLength * 1000; animation4Delay = walkingOutLength * 1000;

// currentAnimationDelay = animation1Delay * 1000;

lightRed = true; Serial.println ("3"); buttonPressed = true; previousMillis = currentMillis; }

if (str == "RED") {

blockLight = false; lightRed = true; }

εάν (str == "ΠΡΑΣΙΝΟ") {

blockLight = false; lightRed = false? }

if (str == "LIGHT: GREEN: OFF") {

blockLight = true; analogWrite (g, 255); } if (str == "LIGHT: GREEN: ON") {blockLight = true; analogWrite (g, 0); } //Serial.println(str); }

εάν (blockLight == false) {

εάν (lightRed == true) {

analogWrite (r, 0); analogWrite (g, 255); } if (lightRed == false) {analogWrite (r, 255); analogWrite (g, 0); }}}

Συνιστάται: