Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- My second sketch: pulse the LED with a sine wave.
- */
- const float pi = 3.14159;
- int ledPin = 9;
- void sinArc(int analogPin, int duration, float arcStart, float arcStop) {
- int steps = 255;
- int startStep = (int)(arcStart * (float)steps);
- int stopStep = (int)(arcStop * (float)steps);
- int sleep = (int)((float)duration / (float)(stopStep - startStep));
- int maxAmplitude = 256;
- int DCoffSet = 0;
- for(int _step = 0; _step <= steps; _step += 1) {
- int amplitude = DCoffSet + (int)((float)maxAmplitude * sin(pi * (float)_step / (float)steps));
- analogWrite(analogPin, amplitude);
- delay(sleep);
- }
- }
- void sinOn(int analogPin, int duration) {
- sinArc(analogPin, duration, 0.0, 0.5);
- }
- void sinOff(int analogPin, int duration) {
- sinArc(analogPin, duration, 0.5, 1.0);
- }
- void sinWave(int analogPin, int duration) {
- sinArc(analogPin, duration, 0.0, 1.0);
- }
- void setup() {
- pinMode(13, OUTPUT);
- analogWrite(ledPin, 0);
- }
- void loop() {
- sinWave(ledPin, 2000);
- }
Add Comment
Please, Sign In to add comment