Stap 1: Controleer het fundamentele circuit
Na het circuit diagram hierboven, draad één RGB LED en de sensor van de motie tot en met de Arduino (Opmerking: Controleer het gegevensblad voor uw bijzondere bewegingssensor voor bedrading). Voer de onderstaande code en bevestigen dat de LED door alle drie kleuren in unison loopt wanneer de bewegingssensor beweging detecteert.
U kunt de code voor het wijzigen van de kleur van de LED en maken welk patroon je wilt aanpassen. Ons had twee LEDs (gewoon sluit deze dan aan drie ongebruikte PWM pinnen) en stelde te wisselen door middel van koele kleuren (één set LEDs verschoten tussen blauw en rood, anderzijds tussen groen en blauw).
(De werking van de code: de code is eigenlijk een gemodificeerde versie van Sparkfun de code voor het gebruik van een fotoweerstand naar besturingselement LEDs. Als de bewegingssensor "" iets ziet, pieken de spanning in A0. Wanneer de code deze piek detecteert, het loopt de LEDs door hun kleuren en als er geen spike de LEDs blijven uit.)
CODE:
int lightPin = 0; eigenlijk de bewegingssensor
LED leidt verbonden met PWM pinnen
Const int RED_LED_PIN = 9;
Const int GREEN_LED_PIN = 10;
Const int BLUE_LED_PIN = 11;
Gebruikt voor het opslaan van het huidige intensiteitsniveau van de individuele LED 's
int redIntensity = 0;
int greenIntensity = 0;
int blueIntensity = 0;
Lengte van tijd dat wij elke kleur
Const int DISPLAY_TIME = 50; In milliseconden
VOID Setup
{
pinMode (ledPin1, OUTPUT); Hiermee stelt u de led pin aan output
pinMode (ledPin2, OUTPUT); Hiermee stelt u de led pin aan output
pinMode (ledPin3, OUTPUT); Hiermee stelt u de led pin aan output
Serial.begin(9600);
}
void loop
{
int lightLevel = analogRead(lightPin); Lees de bewegingssensor
Serial.println(lightLevel);
Als (lightLevel < 650) {//if de sensor ziet motion (spanningspieken boven de drempel)
Cyclus kleur van rood tot groen
(In deze lus verruilen we 100% rood, 0% groene op 0% rood, 100% groen)
voor (greenIntensity = 0; greenIntensity < = 255; greenIntensity += 5) {}
redIntensity = 255-greenIntensity;
analogWrite (GREEN_LED_PIN, greenIntensity);
analogWrite (RED_LED_PIN, redIntensity);
delay(DISPLAY_TIME);
}
Cyclus van kleur van groen tot blauw
(In deze lus verruilen we 100% groen, 0% blauw op 0% groen, 100% blauw)
voor (blueIntensity = 0; blueIntensity < = 255; blueIntensity += 5) {}
greenIntensity = 255-blueIntensity;
analogWrite (BLUE_LED_PIN, blueIntensity);
analogWrite (GREEN_LED_PIN, greenIntensity);
delay(DISPLAY_TIME);
}
Cyclus van blauw door op rood
(In deze lus verruilen we 100% rood, 100% blauw, 0% rood tot 0% blauw)
voor (redIntensity = 0; redIntensity < = 255; redIntensity += 5) {}
blueIntensity = 255-redIntensity;
analogWrite (RED_LED_PIN, redIntensity);
analogWrite (BLUE_LED_PIN, blueIntensity);
delay(DISPLAY_TIME);
}
}
else {//if de sensor niet zien iets
analogWrite (RED_LED_PIN, 0);
analogWrite(BLUE_LED_PIN,0);
analogWrite(GREEN_LED_PIN,0);
digitalWrite(ledPin1,LOW);
digitalWrite (ledPin2, laag);
digitalWrite (ledPin3, laag);
}
}