-
Notifications
You must be signed in to change notification settings - Fork 12
Basic Signal Generation
The Tsunami is capable of generating waveforms from DC all the way up to 2 megahertz. The Tsunami has a really easy to use Arduino library that makes doing this really straightforward. Here's the code to initialize the Tsunami and set the frequency to 440Hz - A4, for those of you who make music.
void setup() {
// Initialize the Tsunami
Tsunami.begin();
}
void loop() {
Tsunami.setFrequency(440.0);
}
By default, the Tsunami will output at its loudest amplitude - 6 volts peak to peak - and with 0 DC offset. We can adjust those parameters just as easily as setting the frequency:
void main() {
Tsunami.setAmplitude(1.0); // 1 volt peak-peak
Tsunami.setOffset(-1.0); // -1 volt DC offset.
Tsunami.setFrequency(440.0);
}
Let's make things a little more interesting and demonstrate how to do a frequency sweep. Let's do it musically, going up in octaves:
void main() {
float frequency = 110.0;
while(frequency < 8000.0) {
Tsunami.setFrequency(frequency);
frequency *= 1.05946309;
delay(500);
}
}
First, we set the starting frequency to 110 hz - A2 - and tell the Tsunami to output it. Then, we multiply the frequency by 1.05.... This is the twelfth root of two, which is to say that it will take 12 steps to double the frequency: that's the number of notes in an octave. Next, we delay half a second, and the loop repeats again until we reach 8 kilohertz - just after playing the musical note B8.
If you hook a speaker up to the Tsunami while it's running this code, you'll hear a series of musical scales, with notes half a second apart. Easy!