QC

A (Psuedo) Theremin

A quick and easy theremin to prepare yourself

Devices and components

Arduino Uno Rev3

16x2 LCD screen

ELEGOO HC-SR04 Ultrasonic Distance Sensor Kits

Breadboard (regular)

Piezoelectric buzzer

10K potentiometers

Connecting wires

220 resistance

Software and tools

Arduino IDE

Project description

INTRODUCTION

BUILDING INSTRUCTIONS

HOW TO USE

Arduino Theremin Code

1#include <LiquidCrystal.h>
2
3const int RS = 8;
4const int E = 9;
5const int DB4 = 10;
6const int DB5 = 11;
7const int DB6 = 12;
8const int DB7 = 13;
9
10auto lcd = LiquidCrystal(RS, E, DB4, DB5, DB6, DB7);
11
12const int PITCH_SENSOR_ECHO = 4;
13const int PITCH_SENSOR_TRIG = 5;
14
15long pitch_time;
16short pitch_distance;
17int pitch;
18
19const int SPEAKER = 6;
20
21const int LAG = 65;
22
23void setup()
24{
25 Serial.begin(9600);
26
27 pinMode(PITCH_SENSOR_TRIG, OUTPUT);
28 pinMode(PITCH_SENSOR_ECHO, INPUT);
29
30 pinMode(SPEAKER, OUTPUT);
31
32 lcd.begin(16,2);
33 lcd.setCursor(0,0);
34 lcd.print("Pitch: ");
35}
36
37void loop()
38{
39
40 //Calls a function to sense the distance (in time) to an object and stores it
41 pitch_time = senseDistance(PITCH_SENSOR_TRIG, PITCH_SENSOR_ECHO);
42
43 //Uses the time to calculate the distance in cm
44 pitch_distance = pitch_time / 58;
45
46 //Map the distance to the frequencies that you want to output
47 pitch = map(pitch_distance, 0, 355, 131, 523);
48
49 lcdDisplay(pitch);
50
51 tone(SPEAKER, pitch, 60);
52
53 delay(LAG);
54}
55
56//Function to sense distance
57long senseDistance(int triggerSensor, int echoSensor) {
58
59 digitalWrite(triggerSensor, HIGH);
60 delayMicroseconds(10);
61 digitalWrite(triggerSensor, LOW);
62
63 return pulseIn(echoSensor, HIGH);
64}
65
66//Function to output a display
67void lcdDisplay(int pitch) {
68 lcd.setCursor(7, 0);
69 lcd.print(pitch);
70 lcd.print("Hz ");
71
72}




Note: Content and images are from: https://projecthub.arduino.cc/, with some modifications.
If you want it removed due to copyright reasons, please leave a comment. Thank you.
I want to share this article more widely so that everyone knows about Arduino and your project.

SendData

Điều khiển trạng thái qua Firebase Trạng thái hiện tại: Đang tải... ĐỔI TRẠNG THÁI