Good day!
So, I have this Arduino Mega 2560, and I want to control the PWM of digital pins 2-13 using sequences of data in an array. The outputs are controlling the "brightness" of LEDs - so far I have had success controlling brightness scanning through an array pin to pin, but ideally I would like each output to sequence through an array, and from different starting points.
Here is what I have got, and it does not work.
int potPin = 0;
int timer = analogRead(potPin);
const int transistorPin2 = 2;
const int transistorPin3 = 3;
const int transistorPin4 = 4;
const int transistorPin5 = 5;
const int transistorPin6 = 6;
const int transistorPin7 = 7;
const int transistorPin8 = 8;
const int transistorPin9 = 9;
const int transistorPin10 = 10;
const int transistorPin11 = 11;
const int transistorPin12 = 12;
const int transistorPin13 = 13;
int pwmVals[] = {0,7,15,31,63,127,255,127,63,31,15,0,7,15,31,63,127,255,127,63,31,15,7};
int valCount = 11;
int i;
int brightness = pwmVals[i];
void setup() {
for (int i = 0; i < valCount; i++);
Serial.begin(9600);
pinMode(transistorPin2, OUTPUT);
pinMode(transistorPin3, OUTPUT);
pinMode(transistorPin4, OUTPUT);
pinMode(transistorPin5, OUTPUT);
pinMode(transistorPin6, OUTPUT);
pinMode(transistorPin7, OUTPUT);
pinMode(transistorPin8, OUTPUT);
pinMode(transistorPin9, OUTPUT);
pinMode(transistorPin10, OUTPUT);
pinMode(transistorPin11, OUTPUT);
pinMode(transistorPin12, OUTPUT);
pinMode(transistorPin13, OUTPUT);
}
void loop() {
int sensorValue = analogRead(potPin);
Serial.println(sensorValue);
delay(1);
int timer = map ( analogRead(potPin), 0,1023, 2000,400 );
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin2, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin3, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin4, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin5, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin6, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin7, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin8, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin9, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin10, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin11, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin12, brightness);
delayMicroseconds(timer);
}
for (int i = 0; i < valCount; i++);
{analogWrite(transistorPin13, brightness);
delayMicroseconds(timer);
}
}
Much appreciated,
J