Stap 4: Uw Codes schrijven
Dit deel vereist sommige denken. Om de X, Y en Z as control de LED's helderheid, moeten ze worden aangesloten op de analoge pin van de Arduino.
De Codes kunnen lijken op-
Const int RedPin = 3;
Const int GreenPin = 5;
Const int BluePin = 6;
Const int sensorPinRed = A0;
Const int sensorPinGreen = A2;
Const int sensorPinBlue = A4;
int var = 1;
int minReadingRed = 750;
int maxReadingRed = 0;
int minReadingGreen = 750;
int maxReadingGreen = 0;
int minReadingBlue = 750;
int maxReadingBlue = 0;
int analogValue = 0;
int de tijd;
int analogOut;
int flash;
VOID Setup {}
Serial.begin(9600);
Serial.println();
}
void loop {}
terwijl (< 1000 keer) {}
tijd = millis();
analogWrite (RedPin, 255);
analogWrite (GreenPin, 255);
analogWrite (BluePin, 255);
vertraging (1000);
analogWrite (RedPin, 0);
analogWrite (GreenPin, 0);
analogWrite (BluePin, 0);
vertraging (10);
}
terwijl (tijd > 1000 & & tijd < 16000) {}
tijd = millis();
analogValue = analogRead(sensorPinRed);
maxReadingRed = max (analogValue, maxReadingRed);
minReadingRed = min (analogValue, minReadingRed);
Serial.Print ("analoge rood");
Serial.Print (analogValue, DEC);
vertraging (20);
analogValue = analogRead(sensorPinGreen);
maxReadingGreen = max (analogValue, maxReadingGreen);
minReadingGreen = min (analogValue, minReadingGreen);
Serial.Print ("analoge groen");
Serial.Print (analogValue, DEC);
vertraging (20);
analogValue = analogRead(sensorPinBlue);
maxReadingBlue = max (analogValue, maxReadingBlue);
minReadingBlue = min (analogValue, minReadingBlue);
Serial.Print ("analoge blauw");
Serial.println (analogValue, DEC);
vertraging (20);
}
terwijl (tijd > 16000 & & tijd < 17000) {}
tijd = millis();
analogWrite (RedPin, 255);
analogWrite (GreenPin, 255);
analogWrite (BluePin, 255);
vertraging (1000);
analogWrite (RedPin, 0);
analogWrite (GreenPin, 0);
analogWrite (BluePin, 0);
}
terwijl (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 = beperken (analogValue, minReadingRed, maxReadingRed);
Serial.Print ("analogValue rood =");
Serial.Print(analogValue);
analogOut = kaart (analogValue, minReadingRed, maxReadingRed, 0, 255);
analogOut = beperken (analogOut, 0, 255);
Serial.Print ("geschaald naar");
Serial.Print (analogOut, DEC);
analogWrite (RedPin, analogOut);
analogValue = analogRead(sensorPinGreen);
analogValue = beperken (analogValue, minReadingGreen, maxReadingGreen);
Serial.Print ("Green =");
Serial.Print(analogValue);
analogOut = kaart (analogValue, minReadingGreen, maxReadingGreen, 0, 255);
analogOut = beperken (analogOut, 0, 255); Serial.Print ("geschaald naar");
Serial.Print (analogOut, DEC);
analogWrite (GreenPin, analogOut);
analogValue = analogRead(sensorPinBlue);
analogValue = beperken (analogValue, minReadingBlue, maxReadingBlue);
Serial.Print ("blauw =");
Serial.Print(analogValue);
analogOut = kaart (analogValue, minReadingBlue, maxReadingBlue, 0, 255);
analogOut = beperken (analogOut, 0, 255);
Serial.Print ("geschaald naar");
Serial.println (analogOut, DEC);
analogWrite (BluePin, analogOut);
vertraging (25);
analogValue = analogRead(sensorPinRed);
analogOut = kaart (analogValue, minReadingRed, maxReadingRed, 0, 255);
Serial.Print ("rood =");
Serial.Print (analogValue, DEC);
analogWrite (RedPin, analogOut);
analogValue = analogRead(sensorPinGreen); analogOut = kaart (analogValue, minReadingGreen, maxReadingGreen, 0, 255);
Serial.Print ("Green =");
Serial.Print (analogValue, DEC);
analogWrite (GreenPin, analogOut);
analogValue = analogRead(sensorPinBlue);
analogOut = kaart (analogValue, minReadingBlue, maxReadingBlue, 0, 255);
Serial.Print ("blauw =");
Serial.println (analogValue, DEC);
analogWrite (BluePin, analogOut);
delay(25);