Hi,
I need to use all 22 PWM channels on the board fr my project, and am using a variation of the standard fade example code to check it (below). I'm not sure how to go about configuring the pins to be PWM though.
According to Adafruit any pins from the below can be used:
A1, A2, A12, A15.
D2-D9, D11, D13-D45, D48, D50-D53.
MISO, MOSI, SCK, SCL, SDA.
So I am trying to use pins in the range of 22-43, and just using the analogueWrite command.
I get PWM signal on some but nothing on pins 22, 29,32,33,36,37,40,41,42,43.
I tried to look at the datasheet for help, but the nearly 2k was a bit overwhelming for a noob!
Any pointers would provide a great help in understanding this. I'm entirely new to the board and these chips.
/*
Fade
*/
// designate PWM pins
int PWM1 = 22;
int PWM2 = 23;
int PWM3 = 24;
int PWM4 = 25;
int PWM5 = 26;
int PWM6 = 27;
int PWM7 = 28;
int PWM8 = 29;
int PWM9 = 30;
int PWM10 = 31;
int PWM11 = 32;
int PWM12 = 33;
int PWM13 = 34;
int PWM14 = 35;
int PWM15 = 36;
int PWM16 = 37;
int PWM17 = 38;
int PWM18 = 39;
int PWM19 = 40;
int PWM20 = 41;
int PWM21 = 42;
int PWM22 = 43;
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:
void setup() {
// declare all PWM pins to be output:
pinMode(PWM1, OUTPUT);
pinMode(PWM2, OUTPUT);
pinMode(PWM3, OUTPUT);
pinMode(PWM4, OUTPUT);
pinMode(PWM5, OUTPUT);
pinMode(PWM6, OUTPUT);
pinMode(PWM9, OUTPUT);
pinMode(PWM10, OUTPUT);
pinMode(PWM11, OUTPUT);
pinMode(PWM12, OUTPUT);
pinMode(PWM13, OUTPUT);
pinMode(PWM14, OUTPUT);
pinMode(PWM15, OUTPUT);
pinMode(PWM16, OUTPUT);
pinMode(PWM17, OUTPUT);
pinMode(PWM18, OUTPUT);
pinMode(PWM19, OUTPUT);
pinMode(PWM20, OUTPUT);
pinMode(PWM21, OUTPUT);
pinMode(PWM22, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness
analogWrite(PWM1, brightness);
analogWrite(PWM2, brightness);
analogWrite(PWM3, brightness);
analogWrite(PWM4, brightness);
analogWrite(PWM5, brightness);
analogWrite(PWM6, brightness);
analogWrite(PWM7, brightness);
analogWrite(PWM8, brightness);
analogWrite(PWM9, brightness);
analogWrite(PWM10, brightness);
analogWrite(PWM11, brightness);
analogWrite(PWM12, brightness);
analogWrite(PWM13, brightness);
analogWrite(PWM14, brightness);
analogWrite(PWM15, brightness);
analogWrite(PWM16, brightness);
analogWrite(PWM17, brightness);
analogWrite(PWM18, brightness);
analogWrite(PWM19, brightness);
analogWrite(PWM20, brightness);
analogWrite(PWM21, brightness);
analogWrite(PWM22, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}