that_one_nigga_you_k

musical ultrasound

Nov 1st, 2018
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #define trigger 10
  2. #define eCHo 11
  3. #define buzzer 13
  4.  
  5. long distancia;
  6. int led[6] = {3, 4, 5, 6, 7, 8};
  7. int freq[6] = {2112, 2661, 3163, 3552, 3763, 3987};  /* essas frequencias são notas musicais específicas / these frequences are in musical notes*/
  8.  
  9.  
  10. void setup() {
  11.   Serial.begin(9600);
  12.  
  13.   for(int i = 0; i < 6; i++){
  14.     pinMode(led[i], OUTPUT);
  15.   }
  16.  
  17.   pinMode(eCHo, INPUT);
  18.   pinMode(trigger, OUTPUT);
  19.   digitalWrite(trigger, LOW);
  20.   digitalWrite(eCHo, LOW);
  21. }
  22.  
  23. void loop() {
  24.   Serial.println(distanciar());
  25.   if(distanciar() > 0 && distanciar() <= 10){
  26.     ativarLeds(6, 1);
  27.   }
  28.   else if(distanciar() > 10 && distanciar() <= 20){
  29.     ativarLeds(5, 2);
  30.   }
  31.   else if(distanciar() > 20 && distanciar() <= 30){
  32.     ativarLeds(4, 3);
  33.   }
  34.   else if(distanciar() > 30 && distanciar() <= 40){
  35.     ativarLeds(3, 4);
  36.   }
  37.   else if(distanciar() > 40 && distanciar() <= 50){
  38.     ativarLeds(2, 5);
  39.   }
  40.   else{
  41.     ativarLeds(1, 6);
  42.   }
  43. }
  44.  
  45. int distanciar(){
  46.   digitalWrite(trigger, HIGH);
  47.   delayMicroseconds(10);
  48.   digitalWrite(trigger, LOW);
  49.   distancia = pulseIn(eCHo, HIGH) * 0.0170145;
  50.   return distancia;
  51. }
  52.  
  53. void ativarLeds(int qntdLeds, int f){
  54.   for(int i = 0; i < qntdLeds; i++){
  55.     digitalWrite(led[i], HIGH);  
  56.   }
  57.   for(int i = 5; i > qntdLeds - 1; i--){
  58.     digitalWrite(led[i], LOW);
  59.   }
  60.   tone(buzzer, freq[f-1]);
  61. }
Add Comment
Please, Sign In to add comment