Added explicit osc example
parent
75e35b99a4
commit
3fba273897
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Simple (PWM) Oscillator Explained
|
||||||
|
*
|
||||||
|
Instead of using the Tone() function, you can create a square wave oscillator by
|
||||||
|
turning the digital pin 11 (speakerpin) on (HIGH) and off (LOW) very fast:
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
HIGH | ___ ___
|
||||||
|
| | | | | 50% duty cycle
|
||||||
|
LOW | ____| |____| | (50% on, 50 off) Determined by delayMicroseconds()
|
||||||
|
|
|
||||||
|
|____________________
|
||||||
|
TIME
|
||||||
|
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define SPEAKER_PIN 11
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
// set pin 11 as output
|
||||||
|
pinMode(SPEAKER_PIN, OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
|
||||||
|
digitalWrite( SPEAKER_PIN, LOW );
|
||||||
|
delayMicroseconds( analogRead(A2) ); // wait
|
||||||
|
digitalWrite( SPEAKER_PIN, HIGH );
|
||||||
|
delayMicroseconds( analogRead(A2) ); // wait
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//note: delayMircoseconds wont pause your whole code like normal delay() would do
|
||||||
|
//so, the code inside the while loop is executed simultaniously with the code in the
|
||||||
|
//main loop. See usage in simple-poly-osc.ino
|
||||||
|
}
|
Loading…
Reference in New Issue