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

Διαδραστικά φώτα αυλής, φώτα πεζοδρομίου: 3 βήματα
Διαδραστικά φώτα αυλής, φώτα πεζοδρομίου: 3 βήματα

Βίντεο: Διαδραστικά φώτα αυλής, φώτα πεζοδρομίου: 3 βήματα

Βίντεο: Διαδραστικά φώτα αυλής, φώτα πεζοδρομίου: 3 βήματα
Βίντεο: ΕΝΑ ΓΡΑΜΜΑ ΜΙΑ ΙΣΤΟΡΙΑ - Ο Δακρυσμένος Δράκος (Δ) 2024, Ιούλιος
Anonim
Διαδραστικά φώτα αυλής, φώτα πεζοδρομίου
Διαδραστικά φώτα αυλής, φώτα πεζοδρομίου
Διαδραστικά φώτα αυλής, φώτα πεζοδρομίου
Διαδραστικά φώτα αυλής, φώτα πεζοδρομίου

Wantedθελα να φτιάξω ένα είδος διαδραστικών φώτων αυλής για την πίσω αυλή μου. Η ιδέα ήταν, όταν κάποιος περπατούσε με έναν τρόπο, θα ξεκινούσε ένα κινούμενο σχέδιο προς την κατεύθυνση που περπατούσατε. Ξεκίνησα με Dollar General $ 1,00 ηλιακά φώτα

Βήμα 1: Σπρώξτε τα φώτα Solor

Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights

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

Βήμα 2: Εγκατάσταση καλύτερων φώτων

Εγκατάσταση καλύτερων φώτων
Εγκατάσταση καλύτερων φώτων
Εγκατάσταση καλύτερων φώτων
Εγκατάσταση καλύτερων φώτων
Εγκατάσταση καλύτερων φώτων
Εγκατάσταση καλύτερων φώτων

για το led χρησιμοποίησα αδιάβροχο ws2811b που μπορείτε να βρείτε εδώ

www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…

Αρχικά σχεδίαζα να βάλω τους αισθητήρες PIR μέσα στα ηλιακά φώτα. αλλά αυτό αποδείχθηκε ότι ήταν πολύ προβληματικό επειδή ο αισθητήρας ουσιαστικά δεν μπορούσε να δει πέρα από το πλαστικό. πρέπει να έχει κάποιο είδος καταλληλότητας φιλτραρίσματος UV. έτσι επέλεξα κάτι περισσότερο σαν αυτό

www.thingiverse.com/thing:2590216

Βήμα 3: Κωδικοποίηση

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

void setup () {

// βάλτε τον κωδικό εγκατάστασης εδώ, για να εκτελεστεί μία φορά: FastLED.addLeds (leds, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

void loop () {

Serial.println (FlagState);

if (FlagState == 0) {ForwardLeds (); } if (FlagState == 1) {RevLeds (); } if (FlagState == 2) {Αναμονή (); }}

void ForwardLeds () {

FirstLed = -1; LastLed = 16; για (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Λευκό; leds [FirstLed] = CRGB:: Λευκό; καθυστέρηση (750)? FastLED.show (); Serial.print ("white pass"); Serial.print (i); Serial.println ("των 8"); } FirstLed = -1; LastLed = 16; για (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Μπλε; leds [FirstLed] = CRGB:: Μπλε; καθυστέρηση (250)? FastLED.show (); Serial.print ("Blue Pass"); Serial.print (i); Serial.println ("των 8"); } FirstLed = -1; LastLed = 16; για (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Μωβ; leds [FirstLed] = CRGB:: Μωβ; καθυστέρηση (250)? FastLED.show (); Serial.print ("Red Pass"); Serial.print (i); Serial.println ("των 8"); } FirstLed = -1; LastLed = 16; για (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Μαύρο; leds [FirstLed] = CRGB:: Μαύρο; καθυστέρηση (250)? FastLED.show (); Serial.print ("Απενεργοποίηση led"); Serial.print (i); Serial.println ("των 8"); } FlagState = 2; // αλλαγή κατάστασης σημαίας} void RevLeds () {Serial.println ("αντίστροφα"); FirstLed = 8; LastLed = 7; για (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Λευκό; leds [FirstLed] = CRGB:: Λευκό; καθυστέρηση (750)? FastLED.show (); Serial.print ("Λευκό πέρασμα"); Serial.print (i); Serial.println ("των 8"); } FirstLed = 8; LastLed = 7; για (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Μπλε; leds [FirstLed] = CRGB:: Μπλε; καθυστέρηση (250)? FastLED.show (); Serial.print ("Blue pass"); Serial.print (i); Serial.println ("των 8"); } FirstLed = 8; LastLed = 7; για (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Μωβ; leds [FirstLed] = CRGB:: Μωβ; καθυστέρηση (250)? FastLED.show (); Serial.print ("Κόκκινο πέρασμα"); Serial.print (i); Serial.println ("των 8"); }

FirstLed = 8;

LastLed = 7; για (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Μαύρο; leds [FirstLed] = CRGB:: Μαύρο; καθυστέρηση (250)? FastLED.show (); Serial.print ("Απενεργοποίηση Led"); Serial.print (i); Serial.println ("των 8"); } FlagState = 2; // αλλαγή κατάστασης σημαίας} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("ενεργοποιείται προς τα εμπρός"); FlagState = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev ενεργοποιήθηκε"); FlagState = 1; } Serial.println ("βρόχος Ολοκληρώθηκε η αναμονή"); }

Συνιστάται: