Created
September 17, 2017 12:37
-
-
Save ha1t/02a549d1ea2ea8048c71ade764ca9b56 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
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