Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Nais kong bumuo ng isang uri ng mga interactive na ilaw sa bakuran para sa aking bakuran sa likuran. Ang ideya ay, kapag ang isang tao ay lumakad sa isang paraan ay magtatakda ito ng isang animation sa direksyon na iyong nilalakaran. Nagsimula ako sa Dollar General na $ 1.00 solar light
Hakbang 1: Gutin ang Mga Solor Light
Ang unang hakbang ay alisin ang ilaw ng ilaw upang gumawa ng paraan para sa mas maraming kasiyahan. Nagsimula ako sa pamamagitan ng paggupit ng orihinal na led at baterya. Siguraduhin na i-save ang mga bahaging ito dahil magiging kapaki-pakinabang ang mga ito sa ibang proyekto Inalis ko rin ang chrome dome na nasa ilalim ng solar light at idinikit ito sa itaas tulad ng nakikita sa mga larawan
Hakbang 2: Pag-install ng Mas Mahusay na Mga ilaw
para sa humantong ginamit ko hindi tinatagusan ng tubig ws2811b na maaaring matagpuan dito
www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…
Orihinal kong planado na ilagay ang mga sensor ng PIR sa loob ng mga solar light. ngunit ito ay napatunayan na ilang kung ano ang may problemang dahil ang sensor ay karaniwang hindi maaaring makita ang nakaraang plastic. dapat itong magkaroon ng ilang uri ng pagkakasala sa pag-filter ng UV. kaya pumili ako para sa isang bagay na mas katulad nito
www.thingiverse.com/thing:2590216
Hakbang 3: Pag-coding
kung nais mong gawin ang mga ilaw na hindi gumagamit ng sensor o magpatakbo lamang sa lahat ng oras hanapin lamang ang lugar na nagkomento bilang "pagbabago ng estado ng bandila" at itakda ito sa ether 1 o 0 magdagdag ako ng maraming mga larawan kapag nakumpleto ko ito para sa aking sarili kaya gumagana pa rin ito ngunit sa palagay ko masyadong masinop na hindi agad naibabahagi. salamat sa pagtingin
walang bisa ang pag-setup () {
// ilagay ang iyong setup code dito, upang tumakbo nang isang beses: FastLED.addLeds (leds, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }
void loop () {
Serial.println (FlagState);
kung (FlagState == 0) {ForwardLeds (); } kung (FlagState == 1) {RevLeds (); } kung (FlagState == 2) {Naghihintay (); }}
walang bisa ang ForwardLeds () {
FirstLed = -1; LastLed = 16; para sa (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Puti; leds [FirstLed] = CRGB:: Puti; pagkaantala (750); FastLED.show (); Serial.print ("puting Pass"); Serial.print (i); Serial.println ("ng 8"); } FirstLed = -1; LastLed = 16; para sa (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Blue; leds [FirstLed] = CRGB:: Blue; pagkaantala (250); FastLED.show (); Serial.print ("Blue Pass"); Serial.print (i); Serial.println ("ng 8"); } FirstLed = -1; LastLed = 16; para sa (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Lila; leds [FirstLed] = CRGB:: Lila; pagkaantala (250); FastLED.show (); Serial.print ("Red Pass"); Serial.print (i); Serial.println ("ng 8"); } FirstLed = -1; LastLed = 16; para sa (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Itim; leds [FirstLed] = CRGB:: Itim; pagkaantala (250); FastLED.show (); Serial.print ("Patayin ang humantong"); Serial.print (i); Serial.println ("ng 8"); } FlagState = 2; // pagbabago ng estado ng bandila} void RevLeds () {Serial.println ("in reverse"); FirstLed = 8; LastLed = 7; para sa (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Puti; leds [FirstLed] = CRGB:: Puti; pagkaantala (750); FastLED.show (); Serial.print ("White pass"); Serial.print (i); Serial.println ("ng 8"); } FirstLed = 8; LastLed = 7; para sa (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Blue; leds [FirstLed] = CRGB:: Blue; pagkaantala (250); FastLED.show (); Serial.print ("Blue pass"); Serial.print (i); Serial.println ("ng 8"); } FirstLed = 8; LastLed = 7; para sa (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Lila; leds [FirstLed] = CRGB:: Lila; pagkaantala (250); FastLED.show (); Serial.print ("Red pass"); Serial.print (i); Serial.println ("ng 8"); }
FirstLed = 8;
LastLed = 7; para sa (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Itim; leds [FirstLed] = CRGB:: Itim; pagkaantala (250); FastLED.show (); Serial.print ("Patayin ang Led"); Serial.print (i); Serial.println ("ng 8"); } FlagState = 2; // pagbabago ng estado ng watawat} walang bisa Naghihintay () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); kung (buttonState1 == MATAAS) {Serial.println ("na-trigger ng pasulong"); FlagState = 0; } iba pa kung (buttonState2 == MATAAS) {Serial.println ("Rev triggered"); FlagState = 1; } Serial.println ("loop Tapos na naghihintay"); }