Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h>
- #include <SD.h> // Inclure la librairie SD
- #define SDPIN 10 // Selection du port de lecture de la carte SD
- #include <TMRpcm.h>
- const float SOUND_SPEED = 340.00 / 1000; // la constante SOUND_SPEED prend la valeur 340/1000, sois la vitesse du son dans l'air
- int trig =5; // la constante TRIGGER_PIN prend la valeur 5
- int echo = 6; // la constante ECHO_PIN prend la valeur 6
- File myFile;
- TMRpcm tmrpcm;
- char caractere; // Définition du caractère pour la gestion dans le moniteur série
- void setup(){
- Serial.begin(9600); // début de la communication série
- tmrpcm.speakerPin = 9; // Speaker sur la pin 9
- tmrpcm.setVolume(4); // gestion du volume de 0 à 7
- tmrpcm.quality(1); // qualitée audio 0 ou 1
- // Initialisation de la carte SD
- if (!SD.begin(SDPIN)) {
- Serial.println("initialization failed!"); // S'il y a un soucis "initialization failed!" s'affichera au moniteur
- return;
- }
- pinMode(trig,OUTPUT); // le port n°5 devient le port d'envoie de l'utrason (sortie)
- digitalWrite(trig,LOW); // le port d'envoie de l'utrason n'émet aucun signal électrique
- pinMode(echo,INPUT); // le port n°6 devient le port de reception de l'utrason (entrée)
- }
- void loop(){
- digitalWrite(trig,HIGH); // le port d'envoie de l'utrason émet un signal électrique
- delayMicroseconds(10); // délais 10 milliscondes
- digitalWrite(trig,LOW); // le port d'envoie de l'utrason n'émet aucun signal électrique
- 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
- 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)
- // on multiplie ensuite par la vitesse du son dans l'air pour avoir la distance entre l'émetteur et la surface de reception
- distance = distance/10; // on divise le résultat par 10 pour l'avoir en centimètre
- Serial.print(distance); // afficher la variable distance sur le port série
- Serial.print("___");
- delay(500); // délais 500 milliscondes
- if(distance < 20){ // si la distance est inférieure a 2 cm
- Serial.println("Lecture"); // ecrit dans le moniteur série
- tmrpcm.play("Brice3.wav"); // joue la musique de Brice de Nice Brice3.wav"
- delay(100000000);
- }
- }
- void playSound(char *file){
- tmrpcm.play(file);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement