Guest User

Untitled

a guest
Jul 18th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. /*
  2. My second sketch: pulse the LED with a sine wave.
  3. */
  4.  
  5. const float pi = 3.14159;
  6.  
  7. int ledPin = 9;
  8.  
  9. void sinArc(int analogPin, int duration, float arcStart, float arcStop) {
  10. int steps = 255;
  11. int startStep = (int)(arcStart * (float)steps);
  12. int stopStep = (int)(arcStop * (float)steps);
  13. int sleep = (int)((float)duration / (float)(stopStep - startStep));
  14. int maxAmplitude = 256;
  15. int DCoffSet = 0;
  16. for(int _step = 0; _step <= steps; _step += 1) {
  17. int amplitude = DCoffSet + (int)((float)maxAmplitude * sin(pi * (float)_step / (float)steps));
  18. analogWrite(analogPin, amplitude);
  19. delay(sleep);
  20. }
  21. }
  22.  
  23. void sinOn(int analogPin, int duration) {
  24. sinArc(analogPin, duration, 0.0, 0.5);
  25. }
  26.  
  27. void sinOff(int analogPin, int duration) {
  28. sinArc(analogPin, duration, 0.5, 1.0);
  29. }
  30.  
  31. void sinWave(int analogPin, int duration) {
  32. sinArc(analogPin, duration, 0.0, 1.0);
  33. }
  34.  
  35. void setup() {
  36. pinMode(13, OUTPUT);
  37. analogWrite(ledPin, 0);
  38. }
  39.  
  40. void loop() {
  41. sinWave(ledPin, 2000);
  42. }
Add Comment
Please, Sign In to add comment