Motion Sensing pärlstav gardin (2 / 7 steg)
Steg 2: Koppla lysdioderna
För att tråd resten av strängen, följer du samma process men klippa gamla ledning och lägga till en ny, så du lödning tillsammans tre delar (det hjälper för att vrida de två kablarna tillsammans innan lödning dem. på LED ledningen). Bestäm längden på kabeln från gardinen du använder och avstånd i din lysdioder. Det är bättre att ha lite extra tråd, men för mycket gör det svårt att få plats i gardinen. Se också till att lägga värme förminska över trådarna innan du löda till bly.
Du kan kontrollera färdiga LED stränger med koden nedan genom att helt enkelt koppla in dem i stället för enskilda lysdioderna.
KOD:
int lightPin = 0; Motion sensor stift
LED leder ansluten till PWM stift
CONST int RED_LED1_PIN = 9;
CONST int GREEN_LED1_PIN = 10;
CONST int BLUE_LED1_PIN = 11;
CONST int RED_LED2_PIN = 5;
CONST int GREEN_LED2_PIN = 6;
CONST int BLUE_LED2_PIN = 3;
Används för att lagra den aktuella intensitetsnivån av de enskilda lysdioderna
int redIntensity1 = 0;
int greenIntensity1 = 0;
int blueIntensity1 = 0;
Tid vi spenderar visar varje färg
CONST int DISPLAY_TIME = 50; I millisekunder
void setup()
{
Serial.BEGIN(9600);
}
void loop()
{
int lightLevel = analogRead(lightPin); läser rörelsesensorn
Serial.println(lightLevel);
om (lightLevel < 350) {/ / 350 w/batteri, 480 w/USB cykel färg från grönt via blå
(I denna slinga vi flytta från 100% grön, blå till grön 0% 0%, 100% blå)
för (blueIntensity1 = 0; blueIntensity1 < = 225; blueIntensity1 += 5) {
greenIntensity1 = (255-blueIntensity1) -25;
blueIntensity2 = blueIntensity2;
greenIntensity2 = 255-blueIntensity2;
analogWrite (BLUE_LED1_PIN, blueIntensity1);
analogWrite (GREEN_LED1_PIN, greenIntensity1);
analogWrite (RED_LED2_PIN, blueIntensity1);
analogWrite (BLUE_LED2_PIN, greenIntensity1);
Delay(DISPLAY_TIME);
}
Cykel cykel från blått genom röd
(I denna slinga vi flytta från 100% blå, 0% rött till 0% blå, 100% rött)
för (redIntensity1 = 0; redIntensity1 < = 225; redIntensity1 += 5) {
blueIntensity1 = (255-redIntensity1) -25;
redIntensity2 = redIntensity1;
blueIntensity2 = 255-redIntensity2;
analogWrite (GREEN_LED1_PIN, redIntensity1);
analogWrite (BLUE_LED1_PIN, blueIntensity1);
analogWrite (BLUE_LED2_PIN, redIntensity1);
analogWrite (RED_LED2_PIN, blueIntensity1);
Delay(DISPLAY_TIME);
}
}
annat {
analogWrite (RED_LED1_PIN, 0);
analogWrite(BLUE_LED1_PIN,0);
analogWrite(GREEN_LED1_PIN,0);
analogWrite (RED_LED2_PIN, 0);
analogWrite(BLUE_LED2_PIN,0);
analogWrite(GREEN_LED2_PIN,0);
}
}