#include <Arduino.h>
/**
* Project: -
* Author: Matrodsilver
* Description: Instrument :D
* License: MIT
**/
#include <HCSR04.h>
#define buzzer 27
#define infravermelho 33
#define triggerPin 25
#define echoPin 26
#define maxCm 405
UltraSonicDistanceSensor distanceSensor(triggerPin, echoPin, maxCm);
float frequency = 0, semitones = 0;
const float f0 = 261.626;
const byte outs[] = {buzzer};
#define qnt_outs = sizeof(outs) / sizeof(byte)
const byte ins[] = {infravermelho};
void setup()
{
Serial.begin(9600);
for (byte pinOut : outs) pinMode(pinOut, OUTPUT);
for (byte pinIn : ins) pinMode(pinIn, INPUT);
noTone(buzzer);
}
void loop()
{
if (digitalRead(infravermelho))
{
semitones = map(distanceSensor.measureDistanceCm(), 1, 400, 0, 53);
frequency = f0 * pow(2, (semitones / 12));
Serial.println("+" + String(semitones) + " : " + String(frequency) + "Hz");
tone(buzzer, 1044, 1);
delay(2);
noTone(buzzer);
delay(1);
}
}