Project tutorial

I2S Theremin © GPL3+

Discover how to make an I2S Theremin based on the new Arduino I2S library.

  • 16,556 views
  • 3 comments
  • 22 respects

Components and supplies

Apps and online services

About this project

Arduino I2S library

The new Arduino I2S library allows you to send and receive digital audio data on the I2S bus. This example aims to show how to use this library to drive an I2S DAC to reproduce sound computed within the Arduino sketch.

For more information about the library and how it works read the library page.

I2S Connections

The I2S DAC used in this example needs only 3 wires for the I2S bus (plus power supply). Connections for the I2S on the Arduino MKRZero are the following:

  • SD (Serial Data) on pin A6;
  • SCK (Serial Clock) on pin 2;
  • FS (Frame or Word Select) on pin 3;

How it works

A theremin has basically two controls:

  • pitch
  • volume

In this example these two parameters are changed moving two slide potentiometers, but you can modify it to read them using for example a ping sensor! In this way your theremin will be more realistic!

The two potentiometers are wired in a voltage divider fashion, so moving them you will get (from analogRead()) values in the range 0 - 1023. These values are then mapped to between the minimum and maximum frequency and the minimum and maximum volume.

The sound sent on the I2S bus is a simple sine whose frequency and amplitude is changed according to the potentiometers reading.

Code

I2STheremin

Schematics

ZPvSe6TmgEzuDABUGz2i.png
Zpvse6tmgezudabugz2i

Comments

Similar projects you might like

A Microwave Interface for the IKEA Duktig Kids Kitchen

Project showcase by Myles Eftos

  • 1,253 views
  • 8 comments
  • 7 respects

Servo Signals and Characterization

by 3 developers

  • 1,030 views
  • 4 comments
  • 13 respects

Music Adaptive RGB LED with Arduino and Processing

Project in progress by ounane mohamed elfarouk

  • 994 views
  • 6 comments
  • 10 respects

Cellular IoT with Blynk & Hologram

by Moheeb Zara

  • 4,987 views
  • 9 comments
  • 18 respects

Monitoring Temperature Remotely with Blynk for Dummies

Project in progress by Cmtelesann

  • 1,214 views
  • 2 comments
  • 4 respects

How to Make a Customizable Punchable Keyboard Button

Project tutorial by Amal Mathew

  • 1,520 views
  • 4 comments
  • 3 respects
Add projectSign up / Login