Advertisement
iArcsinE

US Sensor + Temperature Sensor Buzzer Pitch Controller

Dec 10th, 2020
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///////////////////////////////////////////////////////////
  2. // CONTROL PITCH USING COMBINATION OF US SENSOR AND TEMP //
  3. ///////////////////////////////////////////////////////////
  4.  
  5. long duration, inches, cm;
  6. int celsius = 0, fahrenheit = 0;
  7.  
  8. void setup()
  9. {
  10.   pinMode(7, OUTPUT);   // ping
  11.   pinMode(6, INPUT);    // input
  12.   pinMode(5, OUTPUT);   // led
  13.   pinMode(4, OUTPUT);   // buzzer_US
  14.   pinMode(3, OUTPUT);   // buzzer_temp
  15.   pinMode(A0, INPUT);   // temp
  16. }
  17.  
  18. void loop()
  19. {
  20.   digitalWrite(7, LOW);
  21.   delayMicroseconds(2);
  22.   digitalWrite(7, HIGH);
  23.   delayMicroseconds(10);
  24.   digitalWrite(7, LOW);
  25.  
  26.   duration = pulseIn(6, HIGH);
  27.   inches = msToInch(duration);
  28.   cm = msToCm(duration);
  29.  
  30.   celsius = map(((analogRead(A0) - 20) * 3.04), 0, 1023, -40, 125);
  31.   fahrenheit = ((celsius * 9) / 5 + 32);
  32.  
  33.   if (cm <= 150) { digitalWrite(5, HIGH); }
  34.   else { digitalWrite(5, LOW); }
  35.  
  36.   tone(4, cm + (celsius * 2), 500);
  37.  
  38.   delay(500);
  39. }
  40.  
  41. long msToInch(long ms) {
  42.     return ms / 74 / 2;
  43. }
  44.  
  45. long msToCm(long ms) {
  46.     return ms / 29 / 2;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement