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

Membaca Sinyal PPM Penerima RC Menggunakan Arduino

Komponen dan persediaan

Arduino UNO
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Pemancar RC sangat cocok untuk proyek yang membutuhkan tautan nirkabel karena memiliki tautan terenkripsi dengan jangkauan yang baik.

Semua penerima RC dibuat untuk menggerakkan motor servo. jadi ada 3 pin untuk setiap saluran:ground, Vcc, dan sinyal. di sini jenis sinyal khusus digunakan. Ini mengirimkan pulsa pada beberapa interval. Ketika servo menerima pulsa 1,5 ms, ia disetel ke 90 derajat dan dengan memvariasikan nilai ini dari 1-2 ms, servo menjadi nilai minimum dan maksimum. (Pada foto di atas, penerima 6 saluran ditunjukkan dengan pin PPM)

Jadi metode yang mudah adalah mengukur lebar pulsa pada setiap pin dan memetakan data tersebut sesuai kebutuhan. tapi di sini masalahnya adalah:

  • Untuk setiap saluran penerima, kita perlu menghubungkan kabel ke pin Arduino. Ini tidak hanya membutuhkan banyak koneksi tetapi juga menggunakan banyak pin pada Arduino.
  • Sebagian besar Arduino hanya memiliki 2 pin interupsi jadi jika kita menggunakan lebih dari 2 saluran, bacalah untuk menambahkan beberapa penundaan pada kode kita yang mungkin bermasalah untuk beberapa aplikasi.

Untuk mengatasi masalah ini banyak receiver datang dengan pin tambahan yang disebut PPM. pin PPM ini mentransmisikan data dari semua saluran dalam satu sinyal.

Bagaimana Sinyal Pin PPM Tersusun?

Sinyal ini terdiri dari paket data yang dipisahkan oleh ruang kosong. Di sini ruang di antara puncak mewakili nilai saluran. dalam hal ini saya menggunakan receiver 6 channel jadi ada 7 pulsa.

Jadi dalam kode kita terlebih dahulu, kita perlu mendeteksi ruang pemisah dan kemudian mulai merekam data dari pulsa untuk setiap saluran.

Seperti yang dapat dilihat pada gambar kedua,

semua data dipisahkan dengan waktu sekitar 11500 mikrodetik. dari 6 nilai untuk setiap saluran.

Menggunakan Kode:

Di sini read_me() ditentukan sebagai fungsi:

a=mikro(); c=a-b; b=a; x[i]=c; saya=i+1; if(i==15){untuk(int j=0;j<15;j++) {ch1[j]=x[j];} i=0; } } 

bagian ini berjalan pada pin interupsi dan mengambil 15 nilai waktu dan menyimpannya dalam array.

fungsi lain read_rc()

bagian ini mencari ruang yang lebih tinggi dari 10.000 mikrodetik, dalam kasus kami ini mendeteksi ruang pemisah, dan karena mendeteksi bahwa kode ruang bergerak ke bagian berikutnya.

setelah spasi ini 6 nilai berikutnya untuk setiap posisi saluran disimpan dalam array bernama ch[ no saluran], di sini ch[1], ch[2], ch[3], ch[4], ch[5 ], ch[6] mewakili nilai setiap saluran.

Kode

  • Kode untuk saluran penerima RC dibaca
Kode untuk saluran penerima RC terbacaArduino
unsigned long int a,b,c;int x[15],ch1[15],ch[7],i;//menentukan array dan variabel untuk menyimpan nilai void setup() {Serial.begin(9600); pinMode(2, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(2), read_me, FALLING); // mengaktifkan interupsi pada pin 2}void loop() {read_rc();Serial.print(ch[1]);Serial.print("\t");Serial.print(ch[2]);Serial.print ("\t");Serial.print(ch[3]);Serial.print("\t");Serial.print(ch[4]);Serial.print("\t");Serial.print (ch[5]);Serial.print("\t");Serial.print(ch[6]);Serial.print("\n");delay(100);}void read_me() { // kode ini membaca nilai dari penerima RC dari pin PPM (Pin 2 atau 3) //kode ini memberikan nilai saluran dari 0-1000 nilai // -:ABHILASH :- //a=micros(); //menyimpan nilai waktu a ketika nilai pin jatuhc=a-b; //menghitung waktu antara dua puncakb=a; // x[i]=c; //menyimpan 15 nilai dalam arrayi=i+1; if(i==15){for(int j=0;j<15;j++) {ch1[j]=x[j];} i=0;}}//copy menyimpan semua nilai dari array sementara array lain setelah 15 membaca batal read_rc(){int i,j,k=0; for(k=14;k>-1;k--){if(ch1[k]>10000){j=k;}} //mendeteksi ruang pisah 10000us dalam larik lain untuk(i=1;i<=6;i++){ch[i]=(ch1[i+j]-1000);}} //menetapkan 6 nilai saluran setelah ruang pemisah

Proses manufaktur

  1. Pantau suhu rumah Anda menggunakan Raspberry Pi
  2. Decoder DTMF Hanya Menggunakan Arduino
  3. Membuat Monitor Ambilight Menggunakan Arduino
  4. Mesin ULTRASONIC LEVITATION Menggunakan ARDUINO
  5. Memrogram Seri Atmel AT89 Melalui Arduino
  6. Voltmeter DIY Menggunakan Arduino dan Smartphone
  7. Pemantau Detak Jantung Menggunakan IoT
  8. WebServerBlink Menggunakan Arduino Uno WiFi
  9. Penghitung Mobil menggunakan Arduino + Pemrosesan + PHP
  10. Indikator Detak Jantung Menggunakan EKG