Contents
/*
* Sine wave : plain code
* A. J. Misquitta based on code by Amanda Ghassaei
*/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
*/
byte sine[] = {127, 134, 142, 150, 158, 166, 173,
181, 188, 195, 201, 207, 213, 219, 224, 229, 234,
238, 241, 245, 247, 250, 251, 252, 253, 254, 253,
252, 251, 250, 247, 245, 241, 238, 234, 229, 224,
219, 213, 207, 201, 195, 188, 181, 173, 166, 158,
150, 142, 134, 127, 119, 111, 103, 95, 87, 80, 72,
65, 58, 52, 46, 40, 34, 29, 24, 19, 15, 12, 8, 6,
3, 2, 1, 0, 0, 0, 1, 2, 3, 6, 8, 12, 15, 19, 24,
29, 34, 40, 46, 52, 58, 65, 72, 80, 87, 95, 103, 111, 119,};
int samples = 100; // These are the number of samples in sine[]
void setup(){
//set digital pins 0-7 as outputs
for (int i=0;i<8;i++){
pinMode(i,OUTPUT);
}
}
void loop(){
for (int t=0; t < samples; t++){
PORTD = sine[t]; // Use this for fast sampling
//PORTD = 127+127*sin(2*3.1415926*t/100); // and this for slow sampling
/* The period of the wave can be controlled using the delay.
* But remember that other functions in the loop also effect
* the period!
*/
delayMicroseconds(10); //wait 10us
}
}