Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Lecteur Mp3 Arduino + Capteur de distance =FUN

Composants et fournitures

Arduino UNO
× 1
Lecteur mp3 série Arduino de Catalex
Vous avez également besoin d'une carte SD et d'une prise pour carte SD (grande à petite) pour le PC
× 1
Capteur à ultrasons - HC-SR04 (Générique)
× 2
certaines enceintes avec entrée jack mp3
× 1

À propos de ce projet

Comment utiliser le lecteur Serial Mp3 de CATALEX

Mon précédent tutoriel à ce sujet, une seule bibliothèque nécessaire (#include ), et quelques fonctions simples déjà expliquées dans le tutoriel précédent :

void sendCommand(int8_t command, int16_t dat) { if (command==CMD_PLAY_WITHFOLDER or command==CMD_PLAY_WITHVOLUME){Serial.print("JOUER LA CHANSON, BOUGEZ LÉGÈREMENT VOTRE TÊTE POUR UN GRAND EFFET");} délai( 20); Send_buf[0] =0x7e; //octet de départ Send_buf[1] =0xff; //version Send_buf[2] =0x06; //le nombre d'octets de la commande sans l'octet de début et l'octet de fin Send_buf[3] =command; // Send_buf[4] =0x00;//0x00 =pas de retour, 0x01 =retour Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; // octet de fin pour (uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]);//envoye le bit au mp3 série } Serial.println(); }  

Comment utiliser la gamme à ultrasons HC-SR04

Mon précédent tutoriel à ce sujet, aucune bibliothèque nécessaire, facile à utiliser de toute façon. Je viens de prendre mon précédent message hc-sr04 et de le mettre dans cette fonction :

long mesureDistance(){ longue durée, distance ; digitalWrite(trigPin, LOW); //PULSE ___|---|___ délaiMicrosecondes(2) ; digitalWrite(trigPin, HAUT); délaiMicrosecondes(10) ; digitalWrite(trigPin, LOW); durée =pulseIn(echoPin, HIGH); distance =(durée/2) / 29,1 ; Serial.println("distance:"); Serial.println(distance); distance de retour; //retourne la distance en cm}  

Comment les utiliser tous les deux Version 1 :Déclencheur à distance mp3 simple

Installez d'abord la bibliothèque si vous ne l'avez pas encore ().

Dans cette version du code, si quelque chose s'approche à moins de 50 cm, cela déclenche l'audio mp3. Je l'ai utilisé pour effrayer mes colocataires avec un clip très fort "enfoiré surprise".

Remarque : .ino complet le code est dans les pièces jointes du projet ci-dessous.

void loop() { if(measureDistance()<50){ sendCommand(CMD_PLAY_WITHFOLDER, 0X0203);//joue la troisième chanson du deuxième dossier delay(1000);//attends pour éviter les erreurs } delay (300); }  

Comment utiliser à la fois le déclencheur à distance mp3 Version 2 et Disturbance

Cette version ne se soucie pas de la distance, ne détecte que les différences entre les lectures. Si se déclenche soudainement par erreur, mettez une valeur plus élevée dans if(gap> 20){....... nous devons déclarer de nouvelles variables en dehors de la boucle. Je l'ai fait au début du code.

int firstTime=0;//nous devons déclarer firstTime en dehors de la boucle long Distance,auxDistance,gap=0; void loop() { Distance=measureDistance(trigPin,echoPin);//mesure la distance et stocke l'écart=abs(Distance-auxDistance);// calcule la différence entre maintenant et la dernière lecture if(firstTime==0){//nécessaire pour les choses de stabilité auxDistance=Distance; écart=0 ; // ne le fait que la première fois après avoir lu une chanson pour éviter le mauvais fonctionnement de la première boucle firstTime ++; retard(1000); } if(gap>
20){ //si la variation de distance est de 20cm sendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//joue la première chanson du deuxième dossier firstTime=0;//évite les erreurs !! nous n'aimons pas les erreurs delay(2000); } Serial.print("Nouvelle distance :");//debugggggg Serial.print(Distance); Serial.print(" Ancienne distance :"); Serial.print(auxDistance); Serial.println(espace); retard (300); auxDistance=Distance;//stocke la valeur du if() dans la prochaine boucle }  

Comment les utiliser tous les deux Version 3 : deux capteurs de distance

Avec deux capteurs de distance vous pouvez réellement deviner la direction du mouvement alors j'ai fait un programme qui dit "bonjour " ou "bye " selon la direction du mouvement de la personne.

  • Tout d'abord, nous définissons deux autres broches NUMÉRIQUES pour contrôler le deuxième HC-SR04 :
#define trigPin 13//pour le PREMIER module de distance #define echoPin 12 #define trigPin2 10//pour le SECOND module de distance #define echoPin2 9 
  • Nouvelles variables ! Ouais !
long Distance,auxDistance,gap=0; longue Distance2,auxDistance2,écart2=0; //nouvelles variables 
  • Dans le setup() nous ajoutons notre nouvelle déclaration d'épingles.
pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(trigPin2, SORTIE); pinMode(echoPin2, INPUT);  
  • Nous modifions la mesureDistance() fonction, maintenant la fonction lit les broches des arguments.
long measureDistance(int trigger,int echo){ longue durée, distance ; digitalWrite(déclencheur, BAS); //PULSE ___|---|___ délaiMicrosecondes(2) ; digitalWrite(déclencheur, ÉLEVÉ); délaiMicrosecondes(10) ; digitalWrite(déclencheur, BAS); durée =pulseIn(écho, HAUT); distance =(durée/2) / 29,1 ; Serial.println("distance:"); Serial.println(distance); distance de retour; }  
  • Dans notre boucle() :
void loop() { Distance=measureDistance(trigPin,echoPin);//mesure la distance1 et stocke Distance2=mesureDistance(trigPin2,echoPin2) ;//mesure la distance2 et stocke l'écart=abs(Distance-auxDistance); // calcule la différence entre maintenant et la dernière lecture gap2=abs(Distance2-auxDistance2) ; // calcule la différence entre maintenant et la dernière lecture if(firstTime==0){//nécessaire pour les choses de stabilité auxDistance=Distance ; auxDistance2=Distance2; écart=0 ; écart2=0 ; // ne le fait que la première fois après avoir lu une chanson pour éviter le mauvais fonctionnement de la première boucle firstTime ++; retard (2000); } if(gap>
20 and gap2<20 ){ //si la variation de distance est de 20cm sendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//joue la première chanson du deuxième dossier firstTime=0;//évite les erreurs !! nous n'aimons pas les erreurs Serial.println("MOUVEMENT DROIT DETECTE"); retard (2000); } if(gap2>20 and gap<20){ //si la variation de distance est de 20cm sendCommand(CMD_PLAY_WITHFOLDER, 0X0202);//joue la deuxième chanson du deuxième dossier firstTime=0;//évite les erreurs !! nous n'aimons pas les erreurs Serial.println("MOUVEMENT A GAUCHE DETECTE"); retard (2000); } Serial.println("\\\\\\\\\\\\\\\\\\\\\\");//debugggggg Serial.print("New Distace:");//debugggggg Serial. imprimer (Distance); Serial.print(" Ancienne distance :"); Serial.print(auxDistance); Serial.print(" GAP "); Serial.println(espace); Serial.print("New Distace2:");//debugggggg Serial.print(Distance); Serial.print(" Ancienne Distance2:"); Serial.print(auxDistance); Serial.print(" GAP2 "); Serial.println(espace); Serial.println("\\\\\\\\\\\\\\\\\\\\\");//debugggggg delay(300); auxDistance=Distance;//stocker la valeur du if() dans la prochaine boucle auxDistance2=Distance2;//stocker la valeur du if() dans la prochaine boucle } Perturbation2=0;left=0;right=0;delay (1000);//attendre pour éviter les erreurs } delay(300); auxDistance=Distance;//stocker la valeur du if() dans la prochaine boucleauxDistance2=Distance2;//stocker la valeur du if() dans la prochaine boucle}  

Bon hack, les gars !

Code

  • Version 1, Déclencheur à distance mp3 simple
  • Version 2, Déclencheur à distance mp3 de perturbation
  • VERSION 3,AVEC DEUX CAPTEURS, CAPTEUR DE DIRECTION
Version 1, Déclencheur à distance mp3 simpleArduino
Dans cette version du code, si quelque chose s'approche à moins de 50 cm, cela déclenche l'audio mp3. Je l'ai utilisé pour effrayer mes colocataires avec un clip "surprise motherfucker" très fort. 5//devrait se connecter au TX du module Serial MP3 Player#define ARDUINO_TX 6//connecter au RX du module#define trigPin 13//pour le module distance#define echoPin 12SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//init the protocole série, dire à myserial quelles broches sont TX et RX///////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////tous les commandes nécessaires dans la fiche technique (http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//Le lecteur MP3 comprend les commandes dans une chaîne de 8 int //0X7E FF 06 commande 00 00 00 EF;(si commande =01 ordre de la chanson suivante) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DONNÉES REQUISES (numéro de la chanson)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_U CMDX05#define ME 0X06//DONNÉES REQUISES (nombre de volume de 0 à 30(0x1E))#define SET_DAC 0X17#define CMD_PLAY_WITHVOLUME 0X22 //les données sont nécessaires 0x7E 06 22 00 xx yy EF;(xx volume)(yy nombre de chanson )#define CMD_SEL_DEV 0X09 //SÉLECTIONNER LE DISPOSITIF DE STOCKAGE, LES DONNÉES SONT REQUISES #define DEV_TF 0X02 //BONJOUR, IM LES DONNÉES REQUISES #define SLEEP_MODE_START 0X0A#define SLEEP_MODE_WAKEUP 0X0B#define CMD_RESET 0X0C#//CHIP RESET #define CMD_PAUSE 0X0E //LA LECTURE EST EN PAUSE#define CMD_PLAY_WITHFOLDER 0X0F//DONNÉES NÉCESSAIRES, 0x7E 06 0F 00 01 02 EF;(joue la chanson avec le répertoire \01\002xxxxxx.mp3#define STOP_PLAY 0X16#define 0X17_/FOLDER les données sont nécessaires 0x7E 06 17 00 01 XX EF ; (lire le dossier 01) (la valeur xx, nous ne nous en soucions pas) #define SET_CYCLEPLAY 0X19 // les données sont nécessaires 00 début ; 01 close#define SET_DAC 0X17//les données sont nécessaires 00 start DAC OUTPUT;01 DAC aucune sortie //////////////////////// ////////////////////////////////////////////////////////////// ////void setup(){ Serial.begin(9600);//Démarrez nos coms série pour le moniteur série dans notre pcmySerial.begin(9600);//Démarrez nos coms série pour LE MP3delay(500);//Attendez l'initialisation de la puce est terminée sendCommand(CMD_SEL_DEV, DEV_TF);//sélectionnez le délai de la carte TF (200);//attendez 200mspinMode(trigPin, OUTPUT);pinMode(echoPin, INPUT);}void loop(){ if(measureDistance( trigPin,echoPin)<50){sendCommand(CMD_PLAY_WITHFOLDER, 0X0203);//joue la troisième chanson du deuxième dossierdelay(1000);//attend pour éviter les erreurs}delay(300);}void sendCommand(int8_t command, int16_t dat ){ délai(20); Send_buf[0] =0x7e; //octet de départ Send_buf[1] =0xff; //version Send_buf[2] =0x06; //le nombre d'octets de la commande sans l'octet de début et l'octet de fin Send_buf[3] =command; // Send_buf[4] =0x00;//0x00 =pas de retour, 0x01 =retour Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; // octet de fin pour(uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]) ;//envoie le bit au mp3 série Serial.print(Send_buf[i],HEX);/ /Envoyer le bit au moniteur série dans le PC } Serial.println();}long measureDistance(int trigger,int echo){ longue durée, distance ; digitalWrite(déclencheur, BAS); //PULSE ___|---|___ délaiMicrosecondes(2) ; digitalWrite(déclencheur, ÉLEVÉ); délaiMicrosecondes(10) ; digitalWrite(déclencheur, BAS); durée =pulseIn(écho, HAUT); distance =(durée/2) / 29,1 ; Serial.println("distance:"); Serial.println(distance); distance de retour ;}
Version 2, Déclencheur à distance mp3 de perturbationArduino
Cette version ne se soucie pas de la distance, ne détecte que les différences entre les lectures.
//code réarrangé par Javier Muñoz 10/11/2016 me demander à [email protected]#include #define ARDUINO_RX 5// doit se connecter au TX du module Serial MP3 Player#define ARDUINO_TX 6//connecter au RX du module#define trigPin 13//pour le module de distance#define echoPin 12SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//init le protocole série, dire à myserial quelles broches sont TX et RX////////////////////////////////////////////////////// ////////////////////////////////////////// toutes les commandes nécessaires dans la fiche technique(http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//Le lecteur MP3 comprend les commandes dans une chaîne de 8 int //0X7E FF 06 commande 00 00 00 EF;(si commande =01 ordre du morceau suivant) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DONNÉES REQUISES (numéro de morceau)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_ONE 0X05#define CMD _SET_VOLUME 0X06//DONNÉES REQUISES (nombre de volume de 0 à 30(0x1E))#define SET_DAC 0X17#define CMD_PLAY_WITHVOLUME 0X22 //données nécessaires 0x7E 06 22 00 xx yy EF;(xx volume)(yy numéro de chanson )#define CMD_SEL_DEV 0X09 //SÉLECTIONNER LE DISPOSITIF DE STOCKAGE, LES DONNÉES SONT REQUISES #define DEV_TF 0X02 //BONJOUR, IM LES DONNÉES REQUISES #define SLEEP_MODE_START 0X0A#define SLEEP_MODE_WAKEUP 0X0B#define CMD_RESET 0X0C#//CHIP RESET #define CMD_PAUSE 0X0E //LA LECTURE EST EN PAUSE#define CMD_PLAY_WITHFOLDER 0X0F//DONNÉES NÉCESSAIRES, 0x7E 06 0F 00 01 02 EF;(joue la chanson avec le répertoire \01\002xxxxxx.mp3#define STOP_PLAY 0X16#define 0X17_/FOLDER les données sont nécessaires 0x7E 06 17 00 01 XX EF ; (lire le dossier 01) (la valeur xx, nous ne nous en soucions pas) #define SET_CYCLEPLAY 0X19 // les données sont nécessaires 00 début ; 01 close#define SET_DAC 0X17//les données sont nécessaires 00 start DAC OUTPUT;01 DAC aucune sortie //////////////////////// ////////////////////////////////////////////////////////////// ////int firstTime=0;//nous devons déclarer firstTime en dehors de la boucle long Distance,auxDistance,gap=0;void setup(){ Serial.begin(96000);//Démarrer nos communications série pour le moniteur série dans notre pcmySerial.begin (9600); // Démarrez nos communications série pour LE délai MP3 (500); // Attendez que l'initialisation de la puce soit terminée sendCommand (CMD_SEL_DEV, DEV_TF); // sélectionnez le délai de la carte TF (200); // attendez 200mspinMode(trigPin, OUTPUT);pinMode(echoPin, INPUT);}void loop() { Distance=measureDistance(trigPin,echoPin);//mesure la distance et storegap=abs(Distance-auxDistance);// calcule la différence entre maintenant et dernière lectureif(firstTime==0){//nécessaire pour la stabilité des chosesauxDistance=Distance;gap=0;//le fait seulement la première fois après avoir joué une chanson pour éviter la première boucle malfuntcionfirstTime++ ; delay(1000);} if(gap>
20){ //si la variation de distance est de 20cmsendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//joue la première chanson du deuxième dossier firstTime=0;//évite les erreurs !! nous n'aimons pas les erreursdelay (2000); } Serial.print("Nouvelle distance :");//debuggggggSerial.print(Distance);Serial.print(" Ancienne distance :");Serial.print(auxDistance);Serial.println(gap);delay(300); auxDistance=Distance ;//stocker la valeur du if() dans la boucle suivante} void sendCommand(int8_t command, int16_t dat){ if (command==CMD_PLAY_WITHFOLDER ou command==CMD_PLAY_WITHVOLUME){Serial.print("PLAYING SONG, BOUGEZ LÉGÈREMENT VOTRE TÊTE POUR UN GRAND EFFET");} delay(20); Send_buf[0] =0x7e; //octet de départ Send_buf[1] =0xff; //version Send_buf[2] =0x06; //le nombre d'octets de la commande sans l'octet de début et l'octet de fin Send_buf[3] =command; // Send_buf[4] =0x00;//0x00 =pas de retour, 0x01 =retour Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; // octet de fin pour (uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]);//envoye le bit au mp3 série } Serial.println();}long measureDistance(int trigger ,int echo){ longue durée, distance; digitalWrite(déclencheur, BAS); //PULSE ___|---|___ délaiMicrosecondes(2) ; digitalWrite(déclencheur, ÉLEVÉ); délaiMicrosecondes(10) ; digitalWrite(déclencheur, BAS); durée =pulseIn(écho, HAUT); distance =(durée/2) / 29,1;// Serial.println("distance:");// Serial.println(distance); distance de retour ;}
VERSION 3,AVEC DEUX CAPTEURS, DIRECCION SENSINGArduino
Maintenant avec deux capteurs de distance
//code réorganisé par Javier Muñoz 10/11/2016 me demander à [email protected]#include #define ARDUINO_RX 5//devrait se connecter au TX du lecteur MP3 série module#define ARDUINO_TX 6//connecter au RX du module#define trigPin 13//pour le PREMIER module de distance #define echoPin 12 #define trigPin2 10//pour le SECOND module de distance #define echoPin2 9#define trigPin 13//for le module de distance #define echoPin 12SoftwareSerial mySerial (ARDUINO_RX, ARDUINO_TX); // initialiser le protocole série, dire à myserial quelles broches sont TX et RX//////////////////// ////////////////////////////////////////////////////////////// ///////////////toutes les commandes nécessaires dans la fiche technique (http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//Le lecteur MP3 comprend les commandes dans une chaîne de 8 int //0X7E FF 06 commande 00 00 00 EF;(si commande =01 ordre de la chanson suivante) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DONNÉES REQUISES(nombre de chanson)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_ONE 0X05#define CMD_SET_VOLUME 0X06//DATA IS REQUIRED (nombre de volume de 0 à 30(0x1E))#define SET_DAC 0X17#define CMD_PLAY_WITHdata 06 22 00 xx yy EF;(xx volume)(yy numéro de chanson)#define CMD_SEL_DEV 0X09 //SELECTIONNER LE DISPOSITIF DE STOCKAGE, LES DONNÉES SONT REQUISES #define DEV_TF 0X02 //BONJOUR, IM LES DONNÉES REQUISES #define SLEEP_MODE_START 0X0A#define SLEEP_MODE_WAKEUP 0X0B define CMD_RESET 0X0C//CHIP RESET#define CMD_PLAY 0X0D //REPRENDRE LA LECTURE#define CMD_PAUSE 0X0E //LECTURE EST PAUSE#define CMD_PLAY_WITHFOLDER 0X0F//DONNÉES NÉCESSAIRES, 0x7E 06 0F 00 01 02 avec le répertoire \( 01\002xxxxxx.mp3#define STOP_PLAY 0X16#define PLAY_FOLDER 0X17// les données sont nécessaires 0x7E 06 17 00 01 XX EF;(joue le dossier 01)(valeur xx on s'en fiche)#define SET_CYCLEPLAY 0X19//les données sont nécessaires 00 start; 01 close#define SET_DAC 0X17//les données sont nécessaires 00 start DAC OUTPUT;01 DAC aucune sortie //////////////////////// ////////////////////////////////////////////////////////////// ////int firstTime=0;//nous devons déclarer firstTime en dehors de la boucle long Distance,auxDistance,gap=0;long Distance2,auxDistance2,gap2=0;void setup(){ Serial.begin(9600);/ / Démarrez nos communications série pour le moniteur série dans notre pcmySerial.begin (9600); // Démarrez nos communications série pour LE MP3delay (500); // Attendez que l'initialisation de la puce soit terminée sendCommand (CMD_SEL_DEV, DEV_TF); // sélectionnez la carte TF délai (200); // attendre 200 mspinMode (trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(trigPin2, SORTIE); pinMode(echoPin2, INPUT); }void loop() { Distance=measureDistance(trigPin,echoPin);//mesurer distance1 et storeDistance2=mesureDistance(trigPin2,echoPin2);//mesurer distance2 et storegap=abs(Distance-auxDistance); // calculer la différence entre maintenant et dernière lecturegap2=abs(Distance2-auxDistance2) ;// calculer la différence entre maintenant et la dernière lectureif(firstTime==0){//nécessaire pour la stabilité des chosesauxDistance=Distance;auxDistance2=Distance2;gap=0;gap2=0;/ /ne le fait que la première fois après avoir lu une chanson pour éviter la première boucle malfuntcionfirstTime++ ; delay(2000);} if(gap>
20 and gap2<20 ){ //si la variation de distance est de 20cmsendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//joue la première chanson du deuxième dossier firstTime=0;//évite les erreurs !! nous n'aimons pas les erreursSerial.println("MOUVEMENT DROIT DETECTE");delay(2000); } if(gap2>20 and gap<20){ //si la variation de distance est de 20cmsendCommand(CMD_PLAY_WITHFOLDER, 0X0202);//joue la deuxième chanson du deuxième dossier firstTime=0;//évite les erreurs !! nous n'aimons pas les erreurs de série. println("MOUVEMENT A GAUCHE DETECTE");delay(2000); } Serial.println("\\\\\\\\\\\\\\\\\\\\\\");//debuggggggSerial.print("Nouvelle distance :");//debuggggggSerial.print( Distance);Serial.print(" Ancienne distance :");Serial.print(auxDistance);Serial.print(" GAP ");Serial.println(gap);Serial.print("New Distace2:");// debuggggggSerial.print(Distance);Serial.print(" Old Distance2:");Serial.print(auxDistance);Serial.print(" GAP2 ");Serial.println(gap);Serial.println("\\\\ \\\\\\\\\\\\\\\\\\");//debuggggggdelay(300); auxDistance=Distance;//stocker la valeur du if() dans la prochaine boucleauxDistance2=Distance2;//stocker la valeur du if() dans la prochaine boucle} void sendCommand(int8_t command, int16_t dat){ if (command==CMD_PLAY_WITHFOLDER ou command==CMD_PLAY_WITHVOLUME){Serial.print("JOUER UNE CHANSON, BOUGEZ LÉGÈREMENT VOTRE TÊTE POUR UN EFFET SUPERBE");} delay(20); Send_buf[0] =0x7e; //octet de départ Send_buf[1] =0xff; //version Send_buf[2] =0x06; //le nombre d'octets de la commande sans l'octet de début et l'octet de fin Send_buf[3] =command; // Send_buf[4] =0x00;//0x00 =pas de retour, 0x01 =retour Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; // octet de fin pour (uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]);//envoye le bit au mp3 série } Serial.println();}long measureDistance(int trigger ,int echo){ longue durée, distance; digitalWrite(déclencheur, BAS); //PULSE ___|---|___ délaiMicrosecondes(2) ; digitalWrite(déclencheur, ÉLEVÉ); délaiMicrosecondes(10) ; digitalWrite(déclencheur, BAS); durée =pulseIn(écho, HAUT); distance =(durée/2) / 29,1;// Serial.println("distance:");// Serial.println(distance); distance de retour ;}

Schémas

UN SEUL CAPTEUR DE DISTANCE DEUX CAPTEURS DE DISTANCE, il suffit d'en ajouter un autre sur les broches 10,9

Processus de fabrication

  1. Construire un réseau de capteurs sans fil dans votre maison
  2. Surveillance du CO2 avec le capteur K30
  3. Comment mesurez-vous ?
  4. Capteur d'empreintes digitales capacitif avec un Arduino ou ESP8266
  5. Lire l'audio dans Arduino
  6. Arduino - Lecteur MP3 Web
  7. Tour de capteur cloud Arduino
  8. Pistolet à eau à détecteur de mouvement
  9. Arduino - Envoyer la température au Web via série