Advertisement
Guest User

Untitled

a guest
Nov 17th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. #include <SPI.h>
  2. #include <SD.h> // Inclure la librairie SD
  3. #define SDPIN 10 // Selection du port de lecture de la carte SD
  4. #include <TMRpcm.h>
  5. const float SOUND_SPEED = 340.00 / 1000; // la constante SOUND_SPEED prend la valeur 340/1000, sois la vitesse du son dans l'air
  6. int trig =5; // la constante TRIGGER_PIN prend la valeur 5
  7. int echo = 6; // la constante ECHO_PIN prend la valeur 6
  8.  
  9.  
  10. File myFile;
  11. TMRpcm tmrpcm;
  12.  
  13. char caractere; // Définition du caractère pour la gestion dans le moniteur série
  14.  
  15. void setup(){
  16. Serial.begin(9600); // début de la communication série
  17. tmrpcm.speakerPin = 9; // Speaker sur la pin 9
  18. tmrpcm.setVolume(4); // gestion du volume de 0 à 7
  19. tmrpcm.quality(1); // qualitée audio 0 ou 1
  20.  
  21. // Initialisation de la carte SD
  22. if (!SD.begin(SDPIN)) {
  23. Serial.println("initialization failed!"); // S'il y a un soucis "initialization failed!" s'affichera au moniteur
  24. return;
  25. }
  26. pinMode(trig,OUTPUT); // le port n°5 devient le port d'envoie de l'utrason (sortie)
  27. digitalWrite(trig,LOW); // le port d'envoie de l'utrason n'émet aucun signal électrique
  28. pinMode(echo,INPUT); // le port n°6 devient le port de reception de l'utrason (entrée)
  29.  
  30. }
  31.  
  32.  
  33. void loop(){
  34.  
  35. digitalWrite(trig,HIGH); // le port d'envoie de l'utrason émet un signal électrique
  36. delayMicroseconds(10); // délais 10 milliscondes
  37. digitalWrite(trig,LOW); // le port d'envoie de l'utrason n'émet aucun signal électrique
  38. float measure = pulseIn(echo,HIGH); // la variable measure prend la valeur (en microseconde) équivalente au temps écoulé entre l'envoi de l'utrason et sa réception
  39. float distance = measure/2 * SOUND_SPEED; // la variable distance_mm prend la valeur measure qu'on divise par deux (car l'ultrason fait un aller-retour en rebondissant sur une surface)
  40. // on multiplie ensuite par la vitesse du son dans l'air pour avoir la distance entre l'émetteur et la surface de reception
  41. distance = distance/10; // on divise le résultat par 10 pour l'avoir en centimètre
  42. Serial.print(distance); // afficher la variable distance sur le port série
  43. Serial.print("___");
  44. delay(500); // délais 500 milliscondes
  45.  
  46. if(distance < 20){ // si la distance est inférieure a 2 cm
  47. Serial.println("Lecture"); // ecrit dans le moniteur série
  48. tmrpcm.play("Brice3.wav"); // joue la musique de Brice de Nice Brice3.wav"
  49. delay(100000000);
  50. }
  51. }
  52.  
  53.  
  54. void playSound(char *file){
  55. tmrpcm.play(file);
  56. return;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement