Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Mp3-speler + Afstandssensor =FUN

Componenten en benodigdheden

Arduino UNO
× 1
Arduino seriële mp3-speler van catalex
Je hebt ook een SD-kaart nodig en een SD-kaart (van groot naar klein) voor de pc
× 1
Ultrasone sensor - HC-SR04 (algemeen)
× 2
een luidspreker met mp3-aansluiting
× 1

Over dit project

Hoe de seriële mp3-speler van CATALEX te gebruiken

Mijn vorige tutorial erover, slechts één bibliotheek nodig (#include ), en een eenvoudige functie die al is uitgelegd in de vorige tutorial:

void sendCommand(int8_t command, int16_t dat) { if (command==CMD_PLAY_WITHFOLDER or command==CMD_PLAY_WITHVOLUME){Serial.print("SPEEL LIEDJE, BEWEEG JE HOOFD VOOR EEN GROOT EFFECT");} delay( 20); Send_buf[0] =0x7e; //startbyte Send_buf [1] =0xff; //versie Send_buf [2] =0x06; // het aantal bytes van de opdracht zonder startbyte en eindbyte Send_buf [3] =opdracht; // Send_buf[4] =0x00;//0x00 =geen feedback, 0x01 =feedback Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf [7] =0xef; // end byte for (uint8_t i=0; i<8; i++)// { mySerial.write (Send_buf [i]);// stuur bit naar seriële mp3 } Serial.println (); }  

Hoe HC-SR04 ultrasoon bereik te gebruiken

Mijn vorige tutorial erover, geen bibliotheek nodig, toch gemakkelijk te gebruiken. Ik heb zojuist mijn vorige hc-sr04-bericht genomen en in deze functie geplaatst:

long measureDistance(){ lange duur, afstand; digitalWrite(trigPin, LAAG); //PULSE ___|---|___ vertragingMicroseconden (2); digitalWrite(trigPin, HOOG); vertraging Microseconden (10); digitalWrite(trigPin, LAAG); duur =pulseIn(echoPin, HOOG); afstand =(duur/2) / 29,1; Serial.println("afstand:"); Serial.println(afstand); retour afstand; // retourneert afstand in cm}  

Hoe ze beide te gebruiken Versie 1:Eenvoudige mp3-afstandstrigger

Installeer eerst de bibliotheek als u deze nog niet heeft ().

Als in deze versie van de code iets dichterbij komt dan 50 cm, wordt de mp3-audio geactiveerd. Ik gebruikte het om mijn kamergenoten bang te maken met een zeer luide "verrassing klootzak" clip.

Opmerking: Volledige .ino code staat in de projectbijlagen hieronder.

void loop() {if(measureDistance()<50){ sendCommand(CMD_PLAY_WITHFOLDER, 0X0203);//speel het derde nummer van de tweede map vertraging (1000);//wacht om fouten te voorkomen} vertraging (300); }  

Zowel versie 2 als de Disturbance mp3-afstandstrigger gebruiken

Deze versie geeft niet om de afstand, maar detecteert alleen verschillen tussen metingen. Als triggers plotseling door een fout worden geactiveerd, plaatst u een hogere waarde in if(gap> 20){....... we moeten nieuwe variabelen buiten de lus declareren. Ik deed het aan het begin van de code.

int firstTime=0;//we moeten firstTime declareren buiten de lus long Distance,auxDistance,gap=0; void loop() { Distance=measureDistance(trigPin,echoPin);//measure distance and store gap=abs(Distance-auxDistance);// bereken het verschil tussen nu en de laatste meting if(firstTime==0){//necesary voor stabiliteit dingen auxDistance=Afstand; tussenruimte =0; // doet het alleen de eerste keer na het afspelen van een nummer om eerste lusstoring firstTime++ te voorkomen; vertraging (1000); } if(gap>
20){ //if afstandsvariatie is 20cm sendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//speel het eerste nummer van de tweede map firstTime=0;//vermijd fouten!! we houden niet van fouten delay(2000); } Serial.print("Nieuwe afstand:");//debugggggg Serial.print(Afstand); Serial.print(" Oude afstand:"); Serial.print(auxDistance); Serial.println(gap); vertraging (300); auxDistance=Distance;// sla de waarde op voor de if() in de volgende lus }  

Hoe ze beide te gebruiken Versie 3:Twee afstandssensoren

Met twee afstandssensoren kun je daadwerkelijk de bewegingsrichting raden dus ik deed een programma dat zegt "hallo " of "tot ziens " afhankelijk van de bewegingsrichting van de persoon.

  • Eerst definiëren we nog twee DIGITALE pinnen voor het besturen van de tweede HC-SR04:
#define trigPin 13//voor de EERSTE afstandsmodule #define echoPin 12 #define trigPin2 10//voor de TWEEDE afstandsmodule #define echoPin2 9 
  • Nieuwe variabelen! Ja!
lange afstand,auxDistance,gap=0; lange Distance2,auxDistance2,gap2=0; //nieuwe variabelen 
  • In de setup() we voegen onze nieuwe pins-verklaring toe.
pinMode(trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (trigPin2, UITGANG); pinMode (echoPin2, INPUT);  
  • We wijzigen de measureDistance() functie, nu leest de functie de pinnen van de argumenten.
long measureDistance(int trigger,int echo){ lange duur, afstand; digitalWrite (trigger, LAAG); //PULSE ___|---|___ vertragingMicroseconden (2); digitalWrite (trigger, HOOG); vertraging Microseconden (10); digitalWrite (trigger, LAAG); duur =pulseIn (echo, HOOG); afstand =(duur/2) / 29,1; Serial.println("afstand:"); Serial.println(afstand); retour afstand; }  
  • In onze loop():
void loop() { Distance=measureDistance(trigPin,echoPin);//measure distance1 en opslaan Distance2=measureDistance(trigPin2,echoPin2);//measure distance2 en store gap=abs(Distance-auxDistance); // bereken het verschil tussen nu en de laatste lezing gap2=abs(Distance2-auxDistance2);// bereken het verschil tussen nu en de laatste lezing if(firstTime==0){//noodzakelijk voor stabiliteit dingen auxDistance=Distance; auxDistance2=Afstand2; tussenruimte =0; tussenruimte2=0; // doet het alleen de eerste keer na het afspelen van een nummer om eerste lusstoring firstTime++ te voorkomen; vertraging (2000); } if(gap>
20 and gap2<20 ){ //if afstandsvariatie is 20cm sendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//speel het eerste nummer van de tweede map firstTime=0;//vermijd fouten!! we houden niet van fouten Serial.println ("JUISTE BEWEGING GEDETECTEERT"); vertraging (2000); } if(gap2>20 and gap<20){ //if afstandsvariatie is 20cm sendCommand(CMD_PLAY_WITHFOLDER, 0X0202);//speel het tweede nummer van de tweede map firstTime=0;//vermijd fouten!! we houden niet van fouten Serial.println("LINKERBEWEGING GEDETECTEERT"); vertraging (2000); } Serial.println("\\\\\\\\\\\\\\\\\\\\\\");//debugggggg Serial.print(" New Distace:");//debugggggg Serial. afdrukken (Afstand); Serial.print(" Oude afstand:"); Serial.print(auxDistance); Serial.print(" GAP "); Serial.println(gap); Serial.print("Nieuwe Distace2:");//debugggggg Serial.print(Afstand); Serial.print(" Oude Afstand2:"); Serial.print(auxDistance); Serial.print(" GAP2 "); Serial.println(gap); Serial.println("\\\\\\\\\\\\\\\\\\\\\\");//debugggggg delay(300); auxDistance=Distance;//store the value for the if() in the next loop auxDistance2=Distance2;//store the value for the if() in the next loop } Disturbance2=0;left=0;right=0;delay (1000);//wacht om fouten te voorkomen} vertraging (300); auxDistance=Distance;//store the value for the if() in the next loopauxDistance2=Distance2;//store the value for the if() in the next loop}  

Veel plezier met hacken, jongens!

Code

  • Versie 1, Eenvoudige mp3-afstandstrigger
  • Versie 2, storing mp3-afstandstrigger
  • VERSIE 3, MET TWEE SENSOREN, DIRECCION SENSING
Versie 1, Eenvoudige mp3-afstandstriggerArduino
Als in deze versie van de code iets dichterbij komt dan 50 cm, wordt de mp3-audio geactiveerd. Ik gebruikte het om mijn kamergenoten bang te maken met een zeer luide "surprise motherfucker" clip.
//code herschikt door Javier Muñoz 10/11/2016 vraag het me op [email protected]#include #define ARDUINO_RX 5//moet verbinding maken met TX van de seriële MP3-spelermodule#define ARDUINO_TX 6//verbinden met RX van de module#define trigPin 13//voor de afstandsmodule#define echoPin 12SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//begin de serieel protocol, vertel myserial welke pinnen TX en RX zijn////////////////////////////////////// ////////////////////////////////////////////////al de commando's die nodig zijn in de datasheet (http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//De MP3-speler begrijpt bestellingen in een 8 int string //0X7E FF 06 commando 00 00 00 EF;(if commando =01 volgende nummervolgorde) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DATA IS VEREIST (nummer van nummer)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_ONE C 0X04#define VOLUME_DOWN_ONE C 0X04#define VOLUME_DOWN_ONE C 0X03 ME 0X06//DATA IS VEREIST (volume van 0 tot 30(0x1E))#define SET_DAC 0X17#define CMD_PLAY_WITHVOLUME 0X22 //data is nodig 0x7E 06 22 00 xx yy EF;(xx volume)(yy number of song )#define CMD_SEL_DEV 0X09 //SELECTEER OPSLAGAPPARAAT, GEGEVENS ZIJN VEREIST #define DEV_TF 0X02 //HELLO,IM DE GEGEVENS VEREIST #define SLEEP_MODE_START 0X0A#define SLEEP_MODE_WAKEUP 0X0B#define CMD_TF/RESET 0XSET0CMD_RESET 0X0DEfine CMD_RESET 0X0 #define CMD_PAUSE 0X0E //PLAYBACK IS PAUSED#define CMD_PLAY_WITHFOLDER 0X0F//DATA IS NODIG, 0x7E 06 0F 00 01 02 EF;(speel het nummer met de directory \01\002xxxxxx.mp3#define STOP_PLAY 0X16#define PLAY_/FOLDER 0X17 gegevens zijn nodig 0x7E 06 17 00 01 XX EF;(speel de map 01 af)(waarde xx maakt ons niet uit)#define SET_CYCLEPLAY 0X19//gegevens zijn nodig 00 start; 01 close#define SET_DAC 0X17//data is nodig 00 start DAC OUTPUT;01 DAC geen uitgang////////////////////////////// ////////////////////////////////////////////////// ////void setup(){Serial.begin(9600);//Start onze seriële communicatie voor seriële monitor in onze pcmySerial.begin(9600);//Start onze seriële communicatie voor DE MP3delay(500);//Wacht chipinitialisatie is voltooid sendCommand (CMD_SEL_DEV, DEV_TF);//selecteer de TF-kaartvertraging (200);//wacht op 200mspinMode(trigPin, OUTPUT);pinMode(echoPin, INPUT);}void loop(){if(measureDistance( trigPin,echoPin)<50){sendCommand(CMD_PLAY_WITHFOLDER, 0X0203);//speel het derde nummer van de tweede mapdelay(1000);//wacht om fouten te voorkomen}delay(300);}void sendCommand(int8_t command, int16_t dat ){ vertraging(20); Send_buf[0] =0x7e; //startbyte Send_buf [1] =0xff; //versie Send_buf [2] =0x06; // het aantal bytes van de opdracht zonder startbyte en eindbyte Send_buf [3] =opdracht; // Send_buf[4] =0x00;//0x00 =geen feedback, 0x01 =feedback Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf [7] =0xef; // end byte for (uint8_t i=0; i<8; i++)// { mySerial.write (Send_buf [i]);// stuur bit naar seriële mp3 Serial.print (Send_buf [i],HEX);/ /stuur bit naar seriële monitor in pc } Serial.println();}long measureDistance(int trigger,int echo){ long duration, distance; digitalWrite (trigger, LAAG); //PULSE ___|---|___ vertragingMicroseconden (2); digitalWrite (trigger, HOOG); vertraging Microseconden (10); digitalWrite (trigger, LAAG); duur =pulseIn (echo, HOOG); afstand =(duur/2) / 29,1; Serial.println("afstand:"); Serial.println(afstand); terugreis;}
Versie 2, Storing mp3-afstandstriggerArduino
Deze versie geeft niet om de afstand, detecteert alleen verschillen tussen metingen.
//code herschikt door Javier Muñoz 10/11/2016 vraag het me op [email protected]#include #define ARDUINO_RX 5// moet verbinding maken met TX van de seriële MP3-spelermodule#define ARDUINO_TX 6//verbinden met RX van de module#define trigPin 13//voor de afstandsmodule#define echoPin 12SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//init het seriële protocol, vertel myserial welke pinnen TX en RX zijn///////////////////////////////////////// //////////////////////////////////////////////alle commando's die nodig zijn in de datasheet (http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//De MP3-speler begrijpt orders in een 8 int string //0X7E FF 06 commando 00 00 00 EF;(if command =01 volgende nummervolgorde) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DATA IS VEREIST (nummer van nummer)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_ONE 0X05#define CMD05#define _SET_VOLUME 0X06//DATA IS VEREIST (volume van 0 tot 30(0x1E))#define SET_DAC 0X17#define CMD_PLAY_WITHVOLUME 0X22 //data is nodig 0x7E 06 22 00 xx yy EF;(xx volume)(yy aantal nummers )#define CMD_SEL_DEV 0X09 //SELECTEER OPSLAGAPPARAAT, GEGEVENS ZIJN VEREIST #define DEV_TF 0X02 //HELLO,IM DE GEGEVENS VEREIST #define SLEEP_MODE_START 0X0A#define SLEEP_MODE_WAKEUP 0X0B#define CMD_TF/RESET 0XSET0CMD_RESET 0X0DEfine CMD_RESET 0X0 #define CMD_PAUSE 0X0E //PLAYBACK IS PAUSED#define CMD_PLAY_WITHFOLDER 0X0F//DATA IS NODIG, 0x7E 06 0F 00 01 02 EF;(speel het nummer met de directory \01\002xxxxxx.mp3#define STOP_PLAY 0X16#define PLAY_/FOLDER 0X17 gegevens zijn nodig 0x7E 06 17 00 01 XX EF;(speel de map 01 af)(waarde xx maakt ons niet uit)#define SET_CYCLEPLAY 0X19//gegevens zijn nodig 00 start; 01 close#define SET_DAC 0X17//data is nodig 00 start DAC OUTPUT;01 DAC geen uitgang////////////////////////////// ////////////////////////////////////////////////// ////int firstTime=0;//we moeten firstTime declareren buiten de lus long Distance,auxDistance,gap=0;void setup(){Serial.begin(9600);//Start onze seriële communicatie voor seriële monitor in onze pcmySerial.begin(9600);//Start onze seriële communicatie voor DE MP3delay(500);//Wacht de initialisatie van de chip is voltooid sendCommand(CMD_SEL_DEV, DEV_TF);//selecteer de TF-kaartvertraging (200);//wacht op 200mspinMode(trigPin, OUTPUT);pinMode(echoPin, INPUT);}void loop() { Distance=measureDistance(trigPin,echoPin);//measure distance and storegap=abs(Distance-auxDistance);// bereken het verschil tussen nu en last readingif(firstTime==0){//noodzakelijk voor stabiliteit thingsauxDistance=Distance;gap=0;//doet het alleen de eerste keer na het afspelen van een nummer om malfuntcionfirstTime++ in de eerste lus te voorkomen; delay(1000);} if(gap>
20){ //if distance variatie is 20cmsendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//speel het eerste nummer van de tweede map firstTime=0;//vermijd fouten!! we houden niet van errorsdelay (2000); } Serial.print("New Distace:");//debuggggggSerial.print(Distance);Serial.print(" Old Distance:");Serial.print(auxDistance);Serial.println(gap);delay(300); auxDistance=Distance;//store the value for the if() in the next loop} void sendCommand(int8_t command, int16_t dat){ if (command==CMD_PLAY_WITHFOLDER or command==CMD_PLAY_WITHVOLUME){Serial.print("PLAYING SONG, BEWEEG JE HOOFD LICHTJES VOOR EEN GROOT EFFECT");} delay(20); Send_buf[0] =0x7e; //startbyte Send_buf [1] =0xff; //versie Send_buf [2] =0x06; // het aantal bytes van de opdracht zonder startbyte en eindbyte Send_buf [3] =opdracht; // Send_buf[4] =0x00;//0x00 =geen feedback, 0x01 =feedback Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf [7] =0xef; // end byte for (uint8_t i=0; i<8; i++)// { mySerial.write (Send_buf [i]);//bit verzenden naar seriële mp3 } Serial.println ();} lange meetafstand (int trigger ,int echo){ lange duur, afstand; digitalWrite (trigger, LAAG); //PULSE ___|---|___ vertragingMicroseconden (2); digitalWrite (trigger, HOOG); vertraging Microseconden (10); digitalWrite (trigger, LAAG); duur =pulseIn (echo, HOOG); afstand =(duur/2) / 29.1;// Serial.println ("afstand:");// Serial.println (afstand); terugreis;}
VERSIE 3, MET TWEE SENSOREN, DIRECCION SENSINGArduino
Nu met twee afstandssensoren
//code herschikt door Javier Muñoz 10/11/2016 vraag me op [email protected]#include #define ARDUINO_RX 5//moet verbinding maken met TX van de seriële MP3-speler module#define ARDUINO_TX 6//verbind met RX van de module#define trigPin 13//voor de EERSTE afstandsmodule #define echoPin 12 #define trigPin2 10//voor de TWEEDE afstandsmodule #define echoPin2 9#define trigPin 13//voor de afstandsmodule #define echoPin 12SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//init het seriële protocol, vertel aan myserial welke pinnen TX en RX zijn//////////////////// ////////////////////////////////////////////////// ////////////////alle commando's die nodig zijn in de datasheet (http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//De MP3-speler begrijpt orders in een 8 int string //0X7E FF 06 commando 00 00 00 EF;(if commando =01 volgende nummervolgorde) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DATA IS VEREIST(aantal nummers)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_ONE 0X05#define CMD_SET_VOLUME 0X06//DATA IS VEREIST (aantal volume van 0 tot 30 (0x1E))#define SET_DAC 0X17#define 06 is nodig CMD_PLAY_22 ///data is nodig 22 00 xx yy EF;(xx volume)(yy aantal nummers)#define CMD_SEL_DEV 0X09 //SELECT STORAGE DEVICE, DATA IS REQUIRED #define DEV_TF 0X02 //HELLO,IM DE GEGEVENS VEREIST #define SLEEP_MODE_START 0X0AMOX0DEfine_SLEEP_B definieer CMD_RESET 0X0C//CHIP RESET#define CMD_PLAY 0X0D //RESUME PLAYBACK#define CMD_PAUSE 0X0E //PLAYBACK IS PAUSED#define CMD_PLAY_WITHFOLDER 0X0F//DATA IS NODIG, 0x7E 06 0F 00 01 02 EF; 01\002xxxxxx.mp3#define STOP_PLAY 0X16#define PLAY_FOLDER 0X17// data is nodig 0x7E 06 17 00 01 XX EF;(play the 01 folder)(value xx maakt ons niet uit)#define SET_CYCLEPLAY 0X19//data is nodig 00 start; 01 close#define SET_DAC 0X17//data is nodig 00 start DAC OUTPUT;01 DAC geen uitgang////////////////////////////// ////////////////////////////////////////////////// ////int firstTime=0;//we moeten firstTime declareren buiten de lus long Distance,auxDistance,gap=0;long Distance2,auxDistance2,gap2=0;void setup(){Serial.begin(9600);/ /Start onze seriële communicatie voor seriële monitor in onze pcmySerial.begin(9600);//Start onze seriële communicatie voor DE MP3delay(500);//Wacht de initialisatie van de chip is voltooid sendCommand(CMD_SEL_DEV, DEV_TF);//selecteer de TF-kaart vertraging (200);//wacht op 200mspinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (trigPin2, UITGANG); pinMode (echoPin2, INPUT); }void loop() { Distance=measureDistance(trigPin,echoPin);//measure distance1 and storeDistance2=measureDistance(trigPin2,echoPin2);//measure distance2 and storegap=abs(Distance-auxDistance);// bereken het verschil tussen nu en last readinggap2=abs(Distance2-auxDistance2);// bereken het verschil tussen nu en de laatste readingif(firstTime==0){//noodzakelijk voor stabiliteit thingsauxDistance=Distance;auxDistance2=Distance2;gap=0;gap2=0;/ /doet het alleen de eerste keer na het afspelen van een nummer om malfuntcionfirstTime++ in de eerste lus te voorkomen; delay(2000);} if(gap>
20 and gap2<20 ){ //if distance variatie is 20cmsendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//speel het eerste nummer van de tweede map firstTime=0;//vermijd fouten!! we houden niet van errorsSerial.println("JUISTE BEWEGING GEDETECEERD");delay(2000); } if(gap2>20 and gap<20){ //if distance variatie is 20cmsendCommand(CMD_PLAY_WITHFOLDER, 0X0202);//speel het tweede nummer van de tweede map firstTime=0;//vermijd fouten!! we houden niet van errorsSerial. println("LINKERBEWEGING GEDETECTEERD");delay(2000); } Serial.println("\\\\\\\\\\\\\\\\\\\\\\");//debuggggggSerial.print(" New Distace:");//debugggggSerial.print( Distance);Serial.print(" Old Distance:");Serial.print(auxDistance);Serial.print("GAP");Serial.println(gap);Serial.print("New Distace2:");// debugggggSerial.print(Distance);Serial.print(" Old Distance2:");Serial.print(auxDistance);Serial.print(" GAP2 ");Serial.println(gap);Serial.println("\\\\ \\\\\\\\\\\\\\\\\\");//debuggggggdelay(300); auxDistance=Distance;//store the value for the if() in the next loopauxDistance2=Distance2;//store the value for the if() in the next loop} void sendCommand(int8_t command, int16_t dat){ if (command==CMD_PLAY_WITHFOLDER of command==CMD_PLAY_WITHVOLUME){Serial.print("EEN LIEDJE AFSPELEN, BEWEEG JE HOOFD LICHT VOOR EEN GROOT EFFECT");} delay (20); Send_buf[0] =0x7e; //startbyte Send_buf [1] =0xff; //versie Send_buf [2] =0x06; // het aantal bytes van de opdracht zonder startbyte en eindbyte Send_buf [3] =opdracht; // Send_buf[4] =0x00;//0x00 =geen feedback, 0x01 =feedback Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf [7] =0xef; // end byte for (uint8_t i=0; i<8; i++)// { mySerial.write (Send_buf [i]);//bit verzenden naar seriële mp3 } Serial.println ();} lange meetafstand (int trigger ,int echo){ lange duur, afstand; digitalWrite (trigger, LAAG); //PULSE ___|---|___ vertragingMicroseconden (2); digitalWrite (trigger, HOOG); vertraging Microseconden (10); digitalWrite (trigger, LAAG); duur =pulseIn (echo, HOOG); afstand =(duur/2) / 29.1;// Serial.println ("afstand:");// Serial.println (afstand); terugreis;}

Schema's

SLECHTS ÉÉN AFSTANDSENSOR TWEE AFSTANDSENSOREN, voeg gewoon een andere toe op pinnen 10,9

Productieproces

  1. Een draadloos sensornetwerk in uw huis bouwen
  2. CO2-monitoring met K30-sensor
  3. Hoe lang ben je?
  4. Capacitieve vingerafdruksensor met een Arduino of ESP8266
  5. Audio afspelen in Arduino
  6. Arduino - webgebaseerde mp3-speler
  7. Arduino Cloud Sensor Tower
  8. Bewegingssensor-waterpistool
  9. Arduino - Stuur temperatuur naar internet via serieel
  10. Mini-radar met Arduino
  11. Touch Controlled Light met Arduino