Skip to content

Instantly share code, notes, and snippets.

@ha1t
Created September 17, 2017 12:37
Show Gist options
  • Save ha1t/02a549d1ea2ea8048c71ade764ca9b56 to your computer and use it in GitHub Desktop.
Save ha1t/02a549d1ea2ea8048c71ade764ca9b56 to your computer and use it in GitHub Desktop.
/*
Fade
This example shows how to fade an LED on pin 9 using the analogWrite()
function.
The analogWrite() function uses PWM, so if you want to change the pin you're
using, be sure to use another PWM capable pin. On most Arduino, the PWM pins
are identified with a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Fade
*/
int led = 9; // the PWM pin the LED is attached to
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 pin 9 to be an output:
pinMode(led, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
subloop(led);
delay(100);
subloop(10);
delay(100);
subloop(11);
delay(100);
subloop_white();
delay(100);
}
void subloop_white() {
int zero_count = 0;
while(true) {
// set the brightness of pin 9:
analogWrite(9, brightness);
analogWrite(10, brightness);
analogWrite(11, 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 >= 128) {
fadeAmount = -fadeAmount;
}
if (brightness == 0) {
zero_count += 1;
}
if (zero_count >= 1) {
break;
}
// wait for 30 milliseconds to see the dimming effect
delay(60);
}
}
void subloop(int led_pin) {
int zero_count = 0;
while(true) {
// set the brightness of pin 9:
analogWrite(led_pin, 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;
}
if (brightness == 0) {
zero_count += 1;
}
if (zero_count >= 1) {
break;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment