DIY Speaker - Make Your Own Salt Shaker!
by techwillsaveus in Circuits > Electronics
1951 Views, 11 Favorites, 0 Comments
DIY Speaker - Make Your Own Salt Shaker!
You have adventured to the Instructables website, which means you must want to create your own salt shaker! Good choice! Hope you have fun creating and experimenting following these instructions...
What you will need:
Start Arduino Kit
DIY Speaker Kit
Set Up Your Hardware!
Set up your Arduino, breadboard, and components following this beautiful schematic diagram!
Using jumper wires that corresponds to the diagram will help you to keep track of where your components are connected and where your positives (red wires) and negatives (black wires) are connected.This is good practise when creating any circuit.
Use a blue jumper wire from 'Pin 9' on the Arduino to 'VOL' (volume) pin on DIY Speaker kit
Use a green jumper wire from 'Pin 10' on the Arduino to 'SIG' (signal) on DIY Speaker kit
Use a red jumper wires from 'Pin 5V' on the Arduino to '5V' on the DIY Speaker kit
Use a black jumper wires pin 'GND' on the Arduino to 'GND' on the DIY Speaker kit
Type in Your Code
You can write out the code for yourself ,shown in the image, (you are more likely to learn more if you copy out the code) - but if you want to jump straight to the fun bit - you can open the Arduino file and upload straight to your circuit!
How the code works is explained step by step within the Arduino code - these explanations are written in grey and do not interfere with the code as they have two backslashes (//) before them.
// Define the notes you will use and the melody
#define NOTE_C1 33
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_G1 49
int melody[] = {NOTE_F1, NOTE_G1, NOTE_E1, NOTE_C1};
int noteDurations[] = {2, 2, 2, 1}; //The length of your notes
//Set up your LDR sensor on analog pin A0
int sensorPin = A0;
unsigned int sensorValue = 0;
void setup()
{
//Begin writing to the serial so that you can read the value of the LDR if you need to debug
Serial.begin(9600);
//Set pin9 as an output for volume
pinMode(9, OUTPUT);
//You can add your melody to the setup as it will keep playing continuosly
for(int thisNote = 0; thisNote < 5; thisNote++)
{
int noteDuration = 1000/noteDurations[thisNote];
tone(10, melody[thisNote]*4, noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
}
}
void loop()
{
//This line is printing the values from your LDR sensor to the serial monitor
Serial.println(analogRead(sensorPin));
//Read sensor value and turn your volume from 0% to 100%
sensorValue = analogRead(sensorPin);
if(sensorValue<500) //This number will change depending on the ambient light in the room.
{digitalWrite(9, HIGH);}
else
{digitalWrite (9, LOW);}
}
Experiment With Salt Patterns!
Experiment with how many patterns you can make, by using your light sensors to manipulate the vibrations of salt!