Nano Piano es un piano de cuatro teclas que se ejecuta en un Arduino Nano. Este proyecto es amigable para principiantes y es genial si está buscando ingresar a Arduino o la electrónica en general.

Cosas utilizadas en este proyecto

  • Arduino Nano
  • Resistencia 1k ohmios
  • Zumbador
  • Interruptor pulsador 12mm
  • Fuente de alimentación de pared (5V 3A)
  • Protoboard 400p

Una base de construcción es esencialmente cómo se conectan todos los componentes. Algunos ejemplos importantes son el tablero perf (también llamado tablero proto ) y el tablero .

 Programa

Antes de construir el piano, debe cargar el programa en Arduino. Para esto, necesitará instalar Arduino IDE, que es compatible con Windows 10, Linux y MacOS X.

// Customize the frequency values for each note (Note: It is not possible to generate tones lower than 31Hz.).
int noteOneFreq = 170;
int noteTwoFreq = 180;
int noteThreeFreq = 190;
int noteFourFreq = 200;
// Variables for each of the digital pins for components.
const int noteOne = 2;
const int noteTwo = 3;
const int noteThree = 4;
const int noteFour = 5;
const int passiveBuzzer = 6;
// Variables set to a default value.
int noteOneState = false;
int noteTwoState = false;
int noteThreeState = false;
int noteFourState = false;
void setup() {
// Setting INPUT pins.
pinMode(noteOne, INPUT);
pinMode(noteTwo, INPUT);
pinMode(noteThree, INPUT);
pinMode(noteFour, INPUT);
// Setting OUTPUT pins.
pinMode(passiveBuzzer, OUTPUT);
}
void loop() {
// Creating variables to read the state of each of the INPUT pins.
noteOneState = digitalRead(noteOne);
noteTwoState = digitalRead(noteTwo);
noteThreeState = digitalRead(noteThree);
noteFourState = digitalRead(noteFour);
if (noteOneState == HIGH) {   // Checks if note state is sending a HIGH signal.
tone(passiveBuzzer, noteOneFreq);   // Sends a frequency value to the passive buzzer according to which button is pressed.
} else if (noteTwoState == HIGH) {   // Repeats.
tone(passiveBuzzer, noteTwoFreq);
} else if (noteThreeState == HIGH) {
tone(passiveBuzzer, noteThreeFreq);
} else if (noteFourState == HIGH) {
tone(passiveBuzzer, noteFourFreq);
} else
noTone(passiveBuzzer);   // If none of the notes are sending a HIGH signal send noTone to the passive buzzer.
}
https://www.hackster.io/