Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Pemutar Mp3 Arduino + Sensor jarak =MENYENANGKAN

Komponen dan persediaan

Arduino UNO
× 1
Pemutar mp3 serial Arduino dari catalex
Anda juga memerlukan kartu SD, dan soket kartu SD (besar ke kecil) untuk pc
× 1
Sensor Ultrasonik - HC-SR04 (Generik)
× 2
beberapa speaker dengan input jack mp3
× 1

Tentang proyek ini

Cara menggunakan pemutar Mp3 Serial dari CATALEX

Tutorial saya sebelumnya, hanya satu library yang dibutuhkan (#include ), dan beberapa fungsi mudah yang sudah dijelaskan di tutorial sebelumnya:

void sendCommand(int8_t command, int16_t dat) { if (command==CMD_PLAY_WITHFOLDER or command==CMD_PLAY_WITHVOLUME){Serial.print("PLAYING SONG, SLIGHTLY MOVE YOUR HEAD FOR GREAT EFFECT");} delay( 20); Kirim_buf[0] =0x7e; //byte awal Send_buf[1] =0xff; //versi Send_buf[2] =0x06; //jumlah byte perintah tanpa byte awal dan byte akhir Send_buf[3] =perintah; // Send_buf[4] =0x00;//0x00 =tidak ada feedback, 0x01 =feedback Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; //mengakhiri byte for(uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]);//send bit to serial mp3 } Serial.println(); }  

Cara menggunakan rentang ultrasonik HC-SR04

Tutorial saya sebelumnya tentang itu, tidak perlu perpustakaan, tetap mudah digunakan. Saya baru saja mengambil posting hc-sr04 saya sebelumnya dan meletakkannya di fungsi ini:

long measureDistance(){ durasi panjang, jarak; digitalWrite(trigPin, RENDAH); //PULSA ___|---|___ delayMicroseconds(2); digitalWrite(trigPin, TINGGI); delayMicroseconds(10); digitalWrite(trigPin, RENDAH); durasi =pulseIn(echoPin, TINGGI); jarak =(durasi/2) / 29.1; Serial.println("jarak:"); Serial.println(jarak); jarak kembali; //mengembalikan jarak dalam cm}  

Cara menggunakan keduanya Versi 1:Pemicu jarak mp3 sederhana

Instal perpustakaan terlebih dahulu jika Anda belum memilikinya ().

Dalam versi kode ini, jika ada sesuatu yang lebih dekat dari 50cm maka itu akan memicu audio mp3. Saya menggunakannya untuk menakut-nakuti teman sekamar saya dengan klip "kejutan bajingan" yang sangat keras.

Catatan: .ino lengkap kode ada di Lampiran Proyek di bawah ini.

void loop() { if(measureDistance()<50){ sendCommand(CMD_PLAY_WITHFOLDER, 0X0203);//memutar lagu ketiga dari folder kedua delay(1000);//tunggu untuk menghindari kesalahan } delay (300); }  

Cara menggunakan pemicu jarak mp3 Versi 2 dan Gangguan

Versi ini tidak peduli dengan jarak, hanya mendeteksi perbedaan pembacaan. Jika pemicu tiba-tiba karena kesalahan, masukkan nilai yang lebih tinggi di if(gap> 20){....... kita perlu mendeklarasikan variabel baru di luar loop. Saya melakukannya di awal kode.

int firstTime=0;//kita perlu mendeklarasikan firstTime di luar loop long Distance,auxDistance,gap=0; void loop() { Distance=measureDistance(trigPin,echoPin);//mengukur jarak dan menyimpan gap=abs(Distance-auxDistance);// menghitung perbedaan antara pembacaan sekarang dan terakhir if(firstTime==0){//perlu untuk hal stabilitas auxDistance=Distance; celah=0; //melakukannya hanya pertama kali setelah memutar lagu untuk menghindari malfungsi loop pertama firstTime++; penundaan (1000); } if(gap>
20){ //jika variasi jarak 20cm sendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//memutar lagu pertama dari folder kedua firstTime=0;//menghindari kesalahan!!kami tidak suka kesalahan penundaan(2000); } Serial.print("Jarak Baru:");//debugggggg Serial.print(Jarak); Serial.print("Jarak Lama:"); Serial.print(auxDistance); Serial.println(celah); penundaan (300); auxDistance=Distance;//menyimpan nilai untuk if() di loop berikutnya }  

Cara menggunakan keduanya Versi 3:Dua Sensor Jarak

Dengan dua sensor jarak Anda benar-benar dapat menebak arah gerakan jadi saya membuat program yang mengatakan "halo " atau "sampai jumpa " tergantung dari arah gerakan orang tersebut.

  • Pertama kita tentukan dua pin DIGITAL lainnya untuk mengontrol HC-SR04 kedua:
#define trigPin 13//untuk modul jarak PERTAMA #define echoPin 12 #define trigPin2 10//untuk modul jarak KEDUA #define echoPin2 9 
  • Variabel baru! Ya!
Jarak Jauh,auxDistance,gap=0; jarak jauh2,auxDistance2,gap2=0; //variabel baru 
  • Dalam setup() kami menambahkan deklarasi pin baru kami.
pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(trigPin2, OUTPUT); pinMode(echoPin2, INPUT);  
  • Kami mengubah measureDistance() fungsi, sekarang fungsi membaca pin dari argumen.
long measureDistance(int trigger,int echo){ durasi panjang, jarak; digitalWrite(pemicu, RENDAH); //PULSA ___|---|___ delayMicroseconds(2); digitalWrite(pemicu, TINGGI); delayMicroseconds(10); digitalWrite(pemicu, RENDAH); durasi =pulseIn(gema, TINGGI); jarak =(durasi/2) / 29.1; Serial.println("jarak:"); Serial.println(jarak); jarak kembali; }  
  • Dalam loop(): our kami
void loop() { Distance=measureDistance(trigPin,echoPin);//mengukur jarak1 dan menyimpan Distance2=measureDistance(trigPin2,echoPin2);//mengukur jarak2 dan menyimpan gap=abs(Distance-auxDistance); // hitung perbedaan antara bacaan sekarang dan terakhir gap2=abs(Distance2-auxDistance2);// hitung perbedaan antara bacaan sekarang dan terakhir if(firstTime==0){//diperlukan untuk hal stabilitas auxDistance=Distance; auxDistance2=Jarak2; celah=0; celah2=0; //melakukannya hanya pertama kali setelah memutar lagu untuk menghindari malfungsi loop pertama firstTime++; penundaan(2000); } if(gap>
20 and gap2<20 ){ //jika variasi jarak 20cm sendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//memutar lagu pertama dari folder kedua firstTime=0;//hindari kesalahan!!kami tidak suka kesalahan Serial.println("GERAK KANAN TERDETEKSI"); penundaan(2000); } if(gap2>20 and gap<20){ //jika variasi jarak 20cm sendCommand(CMD_PLAY_WITHFOLDER, 0X0202);//memutar lagu kedua dari folder kedua firstTime=0;//hindari kesalahan!!kami tidak suka kesalahan Serial.println("Gerakan KIRI TERDETEKSI"); penundaan(2000); } Serial.println("\\\\\\\\\\\\\\\\\\\\\\");//debugggggg Serial.print(" Jarak Baru:");//debugggggg Serial. cetak(Jarak); Serial.print("Jarak Lama:"); Serial.print(auxDistance); Serial.print("GAP"); Serial.println(celah); Serial.print("Jarak Baru2:");//debugggggg Serial.print(Jarak); Serial.print("Jarak Lama2:"); Serial.print(auxDistance); Serial.print("GAP2"); Serial.println(celah); Serial.println("\\\\\\\\\\\\\\\\\\\\\\");//debugggggg delay(300); auxDistance=Distance;//menyimpan nilai untuk if() di loop berikutnya auxDistance2=Distance2;//menyimpan nilai untuk if() di loop berikutnya } Disturbance2=0;left=0;right=0;delay (1000);//tunggu untuk menghindari kesalahan } delay(300); auxDistance=Distance;//menyimpan nilai untuk if() di loopauxDistance2=Distance2 berikutnya;//menyimpan nilai untuk if() di loop berikutnya}  

Selamat meretas, teman-teman!

Kode

  • Versi 1, Pemicu jarak mp3 sederhana
  • Versi 2, Pemicu jarak mp3 gangguan
  • VERSI 3, DENGAN DUA SENSOR, PENGINDAHAN ARAH
Versi 1, Pemicu jarak mp3 sederhanaArduino
Dalam versi kode ini, jika ada sesuatu yang lebih dekat dari 50cm maka itu akan memicu audio mp3. Saya menggunakannya untuk menakut-nakuti teman sekamar saya dengan klip "kejutan bajingan" yang sangat keras.
//code disusun ulang oleh Javier Muñoz 10/11/2016 tanya saya di [email protected]#include #define ARDUINO_RX 5//harus terhubung ke TX modul Serial MP3 Player#define ARDUINO_TX 6//koneksi ke RX modul#define trigPin 13//untuk modul jarak#define echoPin 12SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//init protokol serial, beritahu ke myserial yang pinnya TX dan RX//////////////////////////////////////////////////////// ////////////////////////////////////////////////semua perintah yang diperlukan dalam lembar data(http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//Pemutar MP3 tidak memahami perintah dalam string 8 int //0X7E FF 06 perintah 00 00 00 EF;(jika perintah =01 urutan lagu berikutnya) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DATA DIBUTUHKAN (jumlah lagu)#define VOLUME_UP_ONE 0X04#define SET_VOLU ME 0X06//DATA DIPERLUKAN (jumlah volume dari 0 hingga 30 (0x1E))#define SET_DAC 0X17#define CMD_PLAY_WITHVOLUME 0X22 //data diperlukan 0x7E 06 22 00 xx yy EF;(xx volume)(yy jumlah lagu )#define CMD_SEL_DEV 0X09 //PILIH PERANGKAT PENYIMPANAN, DATA DIBUTUHKAN #define DEV_TF 0X02 //HELLO,IM DATA YANG DIPERLUKAN #define SLEEP_MODE_START 0X0A#define SLEEP_MODE_WAKEUP 0X0B#define CMD_REPLAY 0X0X#define CMD_RESPLAY 0X0B #define CMD_PAUSE 0X0E //PUTAR ULANG DIJEDA#define CMD_PLAY_WITHFOLDER 0X0F//DATA DIPERLUKAN, 0x7E 06 0F 00 01 02 EF;(memutar lagu dengan direktori \01\002xxxxxx.mp3#define STOP_PLAY 0X16_#define PLAY 0X16_ data diperlukan 0x7E 06 17 00 01 XX EF;(memutar folder 01)(nilai xx kami tidak peduli)#define SET_CYCLEPLAY 0X19//data diperlukan 00 mulai; 01 close#define SET_DAC 0X17//data diperlukan 00 mulai DAC OUTPUT;01 DAC tidak ada output//////////////////////////// ////////////////////////////////////////////////////////////////// ////void setup(){ Serial.begin(9600);//Mulai serial coms kami untuk serial monitor di pcmySerial.begin(9600);//Mulai serial coms kami untuk THE MP3delay(500);//Tunggu inisialisasi chip selesai sendCommand(CMD_SEL_DEV, DEV_TF);//pilih penundaan kartu TF(200);//tunggu 200mspinMode(trigPin, OUTPUT);pinMode(echoPin, INPUT);}void loop(){ if(measureDistance( trigPin,echoPin)<50){sendCommand(CMD_PLAY_WITHFOLDER, 0X0203);//memutar lagu ketiga dari folder keduadelay(1000);//tunggu untuk menghindari kesalahan}delay(300);}void sendCommand(int8_t command, int16_t dat ){ tunda(20); Kirim_buf[0] =0x7e; //byte awal Send_buf[1] =0xff; //versi Send_buf[2] =0x06; //jumlah byte perintah tanpa byte awal dan byte akhir Send_buf[3] =perintah; // Send_buf[4] =0x00;//0x00 =tidak ada feedback, 0x01 =feedback Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; //mengakhiri byte for(uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]);//send bit to serial mp3 Serial.print(Send_buf[i],HEX);/ /mengirim bit ke monitor serial di pc } Serial.println();}long measureDistance(int trigger,int echo){ long duration, distance; digitalWrite(pemicu, RENDAH); //PULSA ___|---|___ delayMicroseconds(2); digitalWrite(pemicu, TINGGI); delayMicroseconds(10); digitalWrite(pemicu, RENDAH); durasi =pulseIn(gema, TINGGI); jarak =(durasi/2) / 29.1; Serial.println("jarak:"); Serial.println(jarak); jarak kembali;}
Versi 2, Pemicu jarak mp3 gangguanArduino
Versi ini tidak peduli dengan jarak, hanya mendeteksi perbedaan pembacaan.
//code disusun ulang oleh Javier Muñoz 10/11/2016 tanya saya di [email protected]#include #define ARDUINO_RX 5// harus terhubung ke TX modul Serial MP3 Player#define ARDUINO_TX 6//koneksi ke RX modul#define trigPin 13//untuk modul jarak#define echoPin 12SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//init serial protokol, beritahu ke myserial yang pinnya TX dan RX////////////////////////////////////////////////////////// //////////////////////////////////////////// semua perintah yang diperlukan dalam lembar data(http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//Pemutar MP3 tidak memahami perintah dalam string 8 int //0X7E FF 06 perintah 00 00 00 EF;(jika perintah =01 urutan lagu berikutnya) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DATA DIPERLUKAN (jumlah lagu)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_ONE 0X05_DOWN _SET_VOLUME 0X06//DATA DIPERLUKAN (jumlah volume dari 0 hingga 30(0x1E))#define SET_DAC 0X17#define CMD_PLAY_WITHVOLUME 0X22 //data diperlukan 0x7E 06 22 00 xx yy EF;(xx volume)(yy jumlah lagu )#define CMD_SEL_DEV 0X09 //PILIH PERANGKAT PENYIMPANAN, DATA DIBUTUHKAN #define DEV_TF 0X02 //HELLO,IM DATA YANG DIPERLUKAN #define SLEEP_MODE_START 0X0A#define SLEEP_MODE_WAKEUP 0X0B#define CMD_REPLAY 0X0X#define CMD_RESPLAY 0X0B #define CMD_PAUSE 0X0E //PUTAR ULANG DIJEDA#define CMD_PLAY_WITHFOLDER 0X0F//DATA DIPERLUKAN, 0x7E 06 0F 00 01 02 EF;(memutar lagu dengan direktori \01\002xxxxxx.mp3#define STOP_PLAY 0X16_#define PLAY 0X16_ data diperlukan 0x7E 06 17 00 01 XX EF;(memutar folder 01)(nilai xx kami tidak peduli)#define SET_CYCLEPLAY 0X19//data diperlukan 00 mulai; 01 close#define SET_DAC 0X17//data diperlukan 00 mulai DAC OUTPUT;01 DAC tidak ada output//////////////////////////// ////////////////////////////////////////////////////////////////// ////int firstTime=0;//kita perlu mendeklarasikan firstTime di luar loop long Distance,auxDistance,gap=0;void setup(){ Serial.begin(9600);//Mulai com Serial kami untuk monitor serial di pcmySerial.begin(9600);//Mulai com Serial kami untuk THE MP3delay(500);//Tunggu inisialisasi chip selesai sendCommand(CMD_SEL_DEV, DEV_TF);//pilih penundaan kartu TF(200);//tunggu 200mspinMode(trigPin, OUTPUT);pinMode(echoPin, INPUT);}void loop() { Distance=measureDistance(trigPin,echoPin);//mengukur jarak dan storegap=abs(Distance-auxDistance);// hitung selisih antara sekarang dan bacaan terakhirif(firstTime==0){//diperlukan untuk stabilitas thingsauxDistance=Distance;gap=0;//melakukannya hanya pertama kali setelah memutar lagu untuk menghindari loop pertama malfuntcionfirstTime++; delay(1000);} if(gap>
20){ //jika variasi jarak 20cmsendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//memutar lagu pertama dari folder kedua firstTime=0;//menghindari error!!kami tidak suka errordelay (2000); } Serial.print("Jarak Baru:");//debuggggggSerial.print(Jarak);Serial.print(" Jarak Lama:");Serial.print(auxDistance);Serial.println(gap);delay(300); auxDistance=Distance;//menyimpan nilai untuk if() di loop berikutnya} void sendCommand(int8_t command, int16_t dat){ if (command==CMD_PLAY_WITHFOLDER or command==CMD_PLAY_WITHVOLUME){Serial.print("PLAYING SONG, GERAKKAN SEDIKIT KEPALA ANDA UNTUK EFEK BESAR");} delay(20); Kirim_buf[0] =0x7e; //byte awal Send_buf[1] =0xff; //versi Send_buf[2] =0x06; //jumlah byte perintah tanpa byte awal dan byte akhir Send_buf[3] =perintah; // Send_buf[4] =0x00;//0x00 =tidak ada feedback, 0x01 =feedback Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; //mengakhiri byte for(uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]);//send bit to serial mp3 } Serial.println();}long measureDistance(int trigger ,int echo){ durasi panjang, jarak; digitalWrite(pemicu, RENDAH); //PULSA ___|---|___ delayMicroseconds(2); digitalWrite(pemicu, TINGGI); delayMicroseconds(10); digitalWrite(pemicu, RENDAH); durasi =pulseIn(gema, TINGGI); jarak =(durasi/2) / 29.1;// Serial.println("jarak:");// Serial.println(jarak); jarak kembali;}
VERSI 3, DENGAN DUA SENSOR, PENGINDAHAN ARAHArduino
Sekarang dengan dua sensor jarak
//kode yang disusun ulang oleh Javier Muñoz 10/11/2016 tanya saya di [email protected]#include #define ARDUINO_RX 5//harus terhubung ke TX dari Serial MP3 Player modul#define ARDUINO_TX 6//koneksi ke RX modul#define trigPin 13//untuk modul jarak PERTAMA #define echoPin 12 #define trigPin2 10//untuk modul jarak KEDUA #define echoPin2 9#define trigPin 13//for modul jarak#define echoPin 12SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//init serial protocol, beritahu ke myserial yang pin TX dan RX/////////////////// ////////////////////////////////////////////////////////////////// ////////////////semua perintah yang diperlukan dalam lembar data(http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//Pemutar MP3 tidak mengerti perintah dalam string 8 int //0X7E FF 06 perintah 00 00 00 EF;(jika perintah =01 urutan lagu berikutnya) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //REDDATA IS(jumlah lagu)#menentukan VOLUME_UP_ONE 0X04#menentukan VOLUME_DOWN_ONE 0X05#menentukan CMD_SET_VOLUME 0X06//DATA DIPERLUKAN (jumlah volume dari 0 hingga 30(0x1E))#menentukan SET_DAC 0X17#memerlukan 0XWI_VOLUPLAY_MENdefinisikan CMD 22 00 xx yy EF;(xx volume)(yy jumlah lagu)#define CMD_SEL_DEV 0X09 //PILIH PERANGKAT PENYIMPANAN, DATA DIBUTUHKAN #define DEV_TF 0X02 //HELLO,IM DATA YANG DIBUTUHKAN #define SLEEP_MODE_START 0X0A#define SLEEP_MODE_START 0X0A#define define CMD_RESET 0X0C//CHIP RESET#define CMD_PLAY 0X0D //LANJUTKAN PLAYBACK#define CMD_PAUSE 0X0E //PLAYBACK IS PAUSE#define CMD_PLAY_WITHFOLDER 0X0F//DATA DIPERLUKAN, 0x7E 01 \06 0F 00 01\002xxxxxx.mp3#define STOP_PLAY 0X16#define PLAY_FOLDER 0X17// data diperlukan 0x7E 06 17 00 01 XX EF;(mainkan folder 01)(nilai xx kami tidak peduli)#define SET_CYCLEPLAY 0X19//data diperlukan 00 mulai; 01 close#define SET_DAC 0X17//data diperlukan 00 mulai DAC OUTPUT;01 DAC tidak ada output//////////////////////////// ////////////////////////////////////////////////////////////////// ////int firstTime=0;//kita perlu mendeklarasikan firstTime di luar loop long Distance,auxDistance,gap=0;long Distance2,auxDistance2,gap2=0;void setup(){ Serial.begin(9600);/ /Mulai Serial coms kami untuk serial monitor di pcmySerial.begin(9600);//Mulai Serial coms kami untuk THE MP3delay(500);//Tunggu inisialisasi chip selesai sendCommand(CMD_SEL_DEV, DEV_TF);//pilih kartu TF delay(200);//menunggu 200mspinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(trigPin2, OUTPUT); pinMode(echoPin2, INPUT); }void loop() { Distance=measureDistance(trigPin,echoPin);//mengukur jarak1 dan storeDistance2=measureDistance(trigPin2,echoPin2);//mengukur jarak2 dan storegap=abs(Distance-auxDistance);// hitung selisih antara sekarang dan pembacaan terakhirgap2=abs(Distance2-auxDistance2);// hitung perbedaan antara pembacaan sekarang dan terakhirif(firstTime==0){//diperlukan untuk stabilitas thingsauxDistance=Distance;auxDistance2=Distance2;gap=0;gap2=0;/ /apakah itu hanya pertama kali setelah memutar lagu untuk menghindari loop pertama malfuntcionfirstTime++; delay(2000);} if(gap>
20 dan gap2<20 ){ //jika variasi jarak 20cmsendCommand(CMD_PLAY_WITHFOLDER, 0X0201);//memutar lagu pertama dari folder kedua firstTime=0;//hindari kesalahan!! kami tidak menyukai errorSerial.println("Gerakan KANAN TERDETEKSI");delay(2000); } if(gap2>20 and gap<20){ //jika variasi jarak 20cmsendCommand(CMD_PLAY_WITHFOLDER, 0X0202);//memutar lagu kedua dari folder kedua firstTime=0;//menghindari kesalahan!!kami tidak menyukai errorSerial. println("Gerakan KIRI TERDETEKSI");delay(2000); } Serial.println("\\\\\\\\\\\\\\\\\\\\\\");//debuggggggSerial.print(" Jarak Baru:");//debuggggggSerial.print( Jarak);Serial.print(" Jarak Lama:");Serial.print(auxDistance);Serial.print(" GAP ");Serial.println(gap);Serial.print("Jarak Baru2:");// debuggggggSerial.print(Jarak);Serial.print(" Jarak Lama2:");Serial.print(auxDistance);Serial.print(" GAP2 ");Serial.println(gap);Serial.println("\\\\ \\\\\\\\\\\\\\\\\\");//debuggggggdelay(300); auxDistance=Jarak;//menyimpan nilai if() di loopauxDistance2=Distance2 berikutnya;//menyimpan nilai if() di loop berikutnya} void sendCommand(int8_t command, int16_t dat){ if (command==CMD_PLAY_WITHFOLDER or command==CMD_PLAY_WITHVOLUME){Serial.print("MAINKAN LAGU, GERAKKAN SEDIKIT KEPALA ANDA UNTUK EFEK YANG HEBAT");} delay(20); Kirim_buf[0] =0x7e; //byte awal Send_buf[1] =0xff; //versi Send_buf[2] =0x06; //jumlah byte perintah tanpa byte awal dan byte akhir Send_buf[3] =perintah; // Send_buf[4] =0x00;//0x00 =tidak ada feedback, 0x01 =feedback Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //datal Send_buf[7] =0xef; //mengakhiri byte for(uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]);//send bit to serial mp3 } Serial.println();}long measureDistance(int trigger ,int echo){ durasi panjang, jarak; digitalWrite(pemicu, RENDAH); //PULSA ___|---|___ delayMicroseconds(2); digitalWrite(pemicu, TINGGI); delayMicroseconds(10); digitalWrite(pemicu, RENDAH); durasi =pulseIn(gema, TINGGI); jarak =(durasi/2) / 29.1;// Serial.println("jarak:");// Serial.println(jarak); jarak kembali;}

Skema

HANYA SATU SENSOR JARAK DUA SENSOR JARAK, tambahkan saja pada pin 10.9

Proses manufaktur

  1. Membangun Jaringan Sensor Nirkabel di Rumah Anda
  2. Pemantauan CO2 dengan Sensor K30
  3. Berapa Tinggi Anda?
  4. Sensor Sidik Jari Kapasitif dengan Arduino atau ESP8266
  5. Putar audio di Arduino
  6. Arduino - Pemutar MP3 Berbasis Web
  7. Arduino Cloud Sensor Tower
  8. Sensor Gerakan Pistol Air
  9. Arduino - Kirim Suhu ke Web melalui Serial
  10. Radar Mini dengan Arduino