#include <Arduino.h>
/**
* Project: -
* Author: Matrodsilver
* Description: Instrument :D
* License: MIT
**/
#include <HCSR04.h>
#define buzzer 9
#define infravermelho 4
#define triggerPin 12
#define echoPin 11
#define maxCm 405
UltraSonicDistanceSensor distanceSensor(triggerPin, echoPin, maxCm);
float frequency = 0, semitom = 0;
byte ult_semitom = 255;
const float f0 = 1046.502075;
void setup()
{
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
pinMode(infravermelho, INPUT);
}
void loop()
{
Serial.println(digitalRead(infravermelho));
if (digitalRead(infravermelho))
{
semitom = map(constrain(distanceSensor.measureDistanceCm(), 0, maxCm), 0, 90, 14, 0);
if (semitom != ult_semitom)
{
ult_semitom = semitom;
frequency = f0 * pow(2, (semitom / 12));
Serial.println("+" + String(semitom) + " : " + String(frequency) + "Hz");
tone(buzzer,frequency);
}
}
else
{
noTone(buzzer);
ult_semitom = 255;
}
delay(1);
}