Étape 4: Écrire vos Codes
Cette partie exige une réflexion. Pour rendre le X, de Y et de Z luminosité de contrôle de l’axe de la LED, il faut les connecter les broches analogiques de l’Arduino.
Les Codes peuvent ressembler à ceci-
const int RedPin = 3 ;
const int GreenPin = 5 ;
const int BluePin = 6 ;
const int sensorPinRed = A0 ;
const int sensorPinGreen = A2 ;
const int sensorPinBlue = A4 ;
var int = 1 ;
int minReadingRed = 750 ;
int maxReadingRed = 0 ;
int minReadingGreen = 750 ;
int maxReadingGreen = 0 ;
int minReadingBlue = 750 ;
int maxReadingBlue = 0 ;
int analogValue = 0 ;
int temps ;
int analogOut ;
int flash ;
void setup() {}
Serial.Begin(9600) ;
Serial.println() ;
}
void loop() {}
alors que {(< 1000 fois)
temps = millis() ;
analogWrite (RedPin, 255) ;
analogWrite (GreenPin, 255) ;
analogWrite (BluePin, 255) ;
retarder (1000) ;
analogWrite (RedPin, 0) ;
analogWrite (GreenPin, 0) ;
analogWrite (BluePin, 0) ;
retard (10) ;
}
tandis que (temps > 1000 & & temps < 16000) {}
temps = millis() ;
analogValue = analogRead(sensorPinRed) ;
maxReadingRed = max (analogValue, maxReadingRed) ;
minReadingRed = min (analogValue, minReadingRed) ;
Serial.Print ("Red analogique") ;
Serial.Print (analogValue, DEC) ;
retard (20) ;
analogValue = analogRead(sensorPinGreen) ;
maxReadingGreen = max (analogValue, maxReadingGreen) ;
minReadingGreen = min (analogValue, minReadingGreen) ;
Serial.Print ("Green analogique") ;
Serial.Print (analogValue, DEC) ;
retard (20) ;
analogValue = analogRead(sensorPinBlue) ;
maxReadingBlue = max (analogValue, maxReadingBlue) ;
minReadingBlue = min (analogValue, minReadingBlue) ;
Serial.Print ("bleu analogique") ;
Serial.println (analogValue, DEC) ;
retard (20) ;
}
tandis que (temps > 16000 & & temps < 17000) {}
temps = millis() ;
analogWrite (RedPin, 255) ;
analogWrite (GreenPin, 255) ;
analogWrite (BluePin, 255) ;
retarder (1000) ;
analogWrite (RedPin, 0) ;
analogWrite (GreenPin, 0) ;
analogWrite (BluePin, 0) ;
}
tandis que (var == 1) {}
minReadingRed = minReadingRed + 0,5 * (maxReadingRed - minReadingRed) ;
minReadingGreen = minReadingGreen + 0,5 * (maxReadingGreen - minReadingGreen) ;
minReadingBlue = minReadingBlue + 0,5 * (maxReadingBlue - minReadingBlue) ;
Serial.println() ;
Serial.Print ("minReadingRed =") ;
Serial.Print (minReadingRed, DEC) ;
Serial.Print ("maxReadingRed =") ;
Serial.println (maxReadingRed, DEC) ;
Serial.Print ("minReadingGreen =") ;
Serial.Print (minReadingGreen, DEC) ;
Serial.Print ("maxReadingGreen =") ;
Serial.println (maxReadingGreen, DEC) ;
Serial.Print ("minReadingBlue =") ;
Serial.Print (minReadingBlue, DEC) ;
Serial.Print ("maxReadingBlue =") ;
Serial.println (maxReadingBlue, DEC) ;
var = 2 ;
}
analogValue = analogRead(sensorPinRed) ;
analogValue = contraindre (analogValue, minReadingRed, maxReadingRed) ;
Serial.Print (« analogValue rouge = ") ;
Serial.Print(analogValue) ;
analogOut = carte (analogValue, minReadingRed, maxReadingRed, 0, 255) ;
analogOut = contraindre (analogOut, 0, 255) ;
Serial.Print ("mise à l’échelle de") ;
Serial.Print (analogOut, DEC) ;
analogWrite (RedPin, analogOut) ;
analogValue = analogRead(sensorPinGreen) ;
analogValue = contraindre (analogValue, minReadingGreen, maxReadingGreen) ;
Serial.Print ("vert =") ;
Serial.Print(analogValue) ;
analogOut = carte (analogValue, minReadingGreen, maxReadingGreen, 0, 255) ;
analogOut = contraindre (analogOut, 0, 255) ; Serial.Print ("mise à l’échelle de") ;
Serial.Print (analogOut, DEC) ;
analogWrite (GreenPin, analogOut) ;
analogValue = analogRead(sensorPinBlue) ;
analogValue = contraindre (analogValue, minReadingBlue, maxReadingBlue) ;
Serial.Print ("bleu =") ;
Serial.Print(analogValue) ;
analogOut = carte (analogValue, minReadingBlue, maxReadingBlue, 0, 255) ;
analogOut = contraindre (analogOut, 0, 255) ;
Serial.Print ("mise à l’échelle de") ;
Serial.println (analogOut, DEC) ;
analogWrite (BluePin, analogOut) ;
retard (25) ;
analogValue = analogRead(sensorPinRed) ;
analogOut = carte (analogValue, minReadingRed, maxReadingRed, 0, 255) ;
Serial.Print ("Red =") ;
Serial.Print (analogValue, DEC) ;
analogWrite (RedPin, analogOut) ;
analogValue = analogRead(sensorPinGreen) ; analogOut = carte (analogValue, minReadingGreen, maxReadingGreen, 0, 255) ;
Serial.Print ("vert =") ;
Serial.Print (analogValue, DEC) ;
analogWrite (GreenPin, analogOut) ;
analogValue = analogRead(sensorPinBlue) ;
analogOut = carte (analogValue, minReadingBlue, maxReadingBlue, 0, 255) ;
Serial.Print ("bleu =") ;
Serial.println (analogValue, DEC) ;
analogWrite (BluePin, analogOut) ;
Delay(25) ;