Accelerometer kontrollerat LED'S (4 / 5 steg)
Steg 4: Skriva dina koder
Denna del kräver vissa tänkande. För att göra X, Y och Z axeln kontroll lysdioder ljusstyrka, måste de anslutas till de analoga stiften på Arduino.
Koderna kan se ut ungefär så här-
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 tid;
int analogOut;
int flash;
void setup() {
Serial.BEGIN(9600);
Serial.println();
}
void loop() {
medan (tid < 1000) {
tid = millis();
analogWrite (RedPin, 255);
analogWrite (GreenPin, 255);
analogWrite (BluePin, 255);
fördröjning (1000);
analogWrite (RedPin, 0);
analogWrite (GreenPin, 0);
analogWrite (BluePin, 0);
fördröjning (10).
}
medan (tid > 1000 & & tid < 16000) {
tid = millis();
analogValue = analogRead(sensorPinRed);
maxReadingRed = max (analogValue, maxReadingRed);
minReadingRed = min (analogValue, minReadingRed);
Serial.Print ("Analog röd");
Serial.Print (analogValue, DEC);
fördröjning (20);
analogValue = analogRead(sensorPinGreen);
maxReadingGreen = max (analogValue, maxReadingGreen);
minReadingGreen = min (analogValue, minReadingGreen);
Serial.Print ("Analog grön");
Serial.Print (analogValue, DEC);
fördröjning (20);
analogValue = analogRead(sensorPinBlue);
maxReadingBlue = max (analogValue, maxReadingBlue);
minReadingBlue = min (analogValue, minReadingBlue);
Serial.Print ("Analog blått");
Serial.println (analogValue, DEC);
fördröjning (20);
}
medan (tid > 16000 & & tid < 17000) {
tid = millis();
analogWrite (RedPin, 255);
analogWrite (GreenPin, 255);
analogWrite (BluePin, 255);
fördröjning (1000);
analogWrite (RedPin, 0);
analogWrite (GreenPin, 0);
analogWrite (BluePin, 0);
}
medan (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 = begränsa (analogValue, minReadingRed, maxReadingRed);
Serial.Print ("analogValue röd =");
Serial.Print(analogValue);
analogOut = karta (analogValue, minReadingRed, maxReadingRed, 0, 255);
analogOut = begränsa (analogOut, 0, 255);
Serial.Print ("skalas till");
Serial.Print (analogOut, DEC);
analogWrite (RedPin, analogOut);
analogValue = analogRead(sensorPinGreen);
analogValue = begränsa (analogValue, minReadingGreen, maxReadingGreen);
Serial.Print ("grön =");
Serial.Print(analogValue);
analogOut = karta (analogValue, minReadingGreen, maxReadingGreen, 0, 255);
analogOut = begränsa (analogOut, 0, 255); Serial.Print ("skalas till");
Serial.Print (analogOut, DEC);
analogWrite (GreenPin, analogOut);
analogValue = analogRead(sensorPinBlue);
analogValue = begränsa (analogValue, minReadingBlue, maxReadingBlue);
Serial.Print ("blå =");
Serial.Print(analogValue);
analogOut = karta (analogValue, minReadingBlue, maxReadingBlue, 0, 255);
analogOut = begränsa (analogOut, 0, 255);
Serial.Print ("skalas till");
Serial.println (analogOut, DEC);
analogWrite (BluePin, analogOut);
fördröjning (25).
analogValue = analogRead(sensorPinRed);
analogOut = karta (analogValue, minReadingRed, maxReadingRed, 0, 255);
Serial.Print ("röda =");
Serial.Print (analogValue, DEC);
analogWrite (RedPin, analogOut);
analogValue = analogRead(sensorPinGreen); analogOut = karta (analogValue, minReadingGreen, maxReadingGreen, 0, 255);
Serial.Print ("grön =");
Serial.Print (analogValue, DEC);
analogWrite (GreenPin, analogOut);
analogValue = analogRead(sensorPinBlue);
analogOut = karta (analogValue, minReadingBlue, maxReadingBlue, 0, 255);
Serial.Print ("blå =");
Serial.println (analogValue, DEC);
analogWrite (BluePin, analogOut);
Delay(25);