Daftar Isi:

Kontrol Servo Nirkabel: 6 Langkah
Kontrol Servo Nirkabel: 6 Langkah

Video: Kontrol Servo Nirkabel: 6 Langkah

Video: Kontrol Servo Nirkabel: 6 Langkah
Video: Уроки Arduino - управление сервомашинкой 2024, November
Anonim
Kontrol Servo Nirkabel
Kontrol Servo Nirkabel
Kontrol Servo Nirkabel
Kontrol Servo Nirkabel

Proyek ini mengontrol rotasi servo secara nirkabel melalui potensiometer (kenop). Rotasi dibatasi hingga 180 derajat.

Langkah 1: Komponen

Komponen
Komponen
Komponen
Komponen
Komponen
Komponen

Proyek ini terdiri dari

  • 2 papan pengontrol Arduino UNO dengan kabel konektor USB
  • 2 nRF24L01 – modul transceiver RF 2.4GHz (untuk bantuan dengan modul ini, lihat
  • 2 papan adaptor soket (chip ransel) untuk nRF24L01
  • 1 opsional Arduino Kompatibel 328 ProtoShield Prototipe Papan Ekspansi
  • 1 servo
  • 1 potensiometer analog
  • besi solder dan solder
  • kabel
  • tang berhidung jarum
  • bungkus isolasi, saya menggunakan pita listrik

Langkah 2: Papan Server

Papan Server
Papan Server

Papan server terdiri dari modul transceiver, papan pelindung (yang terhubung langsung ke papan Arduino hanya satu arah), dan servo. Saya memutuskan untuk memasukkan papan pelindung untuk menghindari papan tempat memotong roti yang kikuk dan memberikan proyek dan hasil akhir yang lebih rapi secara keseluruhan.

Kode dan sumber daya web yang disertakan dalam daftar komponen merinci koneksi modul transceiver. Saya memutuskan untuk menyolder koneksi daripada menggunakan koneksi sementara seperti pada proyek sebelumnya. Karena saya seorang pemula, saya mengisolasi setiap sambungan solder dengan pita listrik (tidak cantik).

Pin papan pelindung sesuai langsung dengan pin Arduino. Sebelum memasang papan pelindung, saya menghubungkan ground dan pin 5volt ke rel papan dengan kawat dan solder. Saya juga menyolder kabel 5volt dan ground komponen ke rel papan pelindung, lalu akhirnya memasang Arduino ke papan pelindung.

Servo terpasang ke pin 3volt untuk daya dan pin digital 2 untuk komunikasi.

** Catatan: hanya setelah menyelesaikan build ini saya menyadari bahwa papan Arduino saya tidak sama. Transceiver server saya ditenagai oleh rel 5volt pada papan pelindung, sedangkan transceiver klien ditenagai oleh pin 3volt, meskipun saya telah dituntun untuk percaya bahwa fungsi chip adaptor pada transceiver adalah untuk memberikan tegangan yang tepat. Yang bisa saya katakan dengan pasti adalah bahwa kode yang diberikan cocok dengan konfigurasi yang ditunjukkan pada gambar menghasilkan efek yang dijelaskan.

Langkah 3: Kode Server: Salin dan Tempel

//KODE SERVER/* NRF24L01 Arduino CE > D8 CSN > D10 SCK > D13 MO > D11 MI > D12 RO > Tidak digunakan GND > GND VCC > 5V */ //kabel transceiver

#termasuk

// perpustakaan servo

#termasuk

// perpustakaan transceiver

#menentukan Servopin 2

//deklarasi pin keluaran servo

Layanan ServoTimer2;

//deklarasi nama servo

RH_NRF24 nrf24;

//deklarasi nama transceiver

int batas waktu = 0;

//variabel untuk servo

int pulsa = 90;

//variabel untuk menyimpan pulsa

batalkan pengaturan()

{ serv.attach(Servopin); //servo barang

Serial.begin(9600); //transceiver barang

jika (!nrf24.init())

Serial.println("init gagal"); //serial monitor stuff if (!nrf24.setChannel(12)) //set channel ke 125 Serial.println("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF gagal"); //barang monitor serial }

lingkaran kosong()

{ if (nrf24.available()) { uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = ukuran(buf); if (nrf24.recv(buf, &len)) //serial monitor stuff { Serial.print("mendapat permintaan: "); pulsa = strtol((const char*)buf, NULL, 10); //perubahan tipe data

int prin = peta(pulsa, 750, 2250, 0, 180); //perubahan tipe data

Serial.println(cetak); serv.write(pulsa); //membuat servo bergerak } }

}

Langkah 4: Papan Klien

Papan Klien
Papan Klien

Papan klien terdiri dari modul transceiver dan potensiometer. Modul transceiver disambungkan dengan cara yang sama** seperti papan server dengan pengecualian bahwa tanpa papan pelindung, modul ini disambungkan langsung ke pin papan Arduino.

Potensiometer mengambil 5v, ditanahkan, dan dihubungkan ke pin analog 2.

**Catatan: seperti yang disebutkan pada langkah papan server, papan Arduino saya tidak identik. Dalam hal ini transceiver dihubungkan ke pin berlabel 3.3V, berbatasan langsung dengan pin 5V, tetapi sekali lagi, semuanya tampak berfungsi dengan baik.

Langkah 5: Kode Klien: Salin dan Tempel

//KODE KLIEN/* NRF24L01 Arduino CE > D8 CSN > D10 SCK > D13 MO > D11 MI > D12 RO > Tidak digunakan GND > GND VCC > 5V */ //kabel transceiver

#termasuk

//pustaka transceiver

int potpin = A2; //delarasi potensiometer

int nilai;

char tempChar[5];

String valString = ""; //perubahan tipe data

RH_NRF24 nrf24; //transceiver barang

batalkan pengaturan()

{ Serial.begin(9600); if (!nrf24.init()) Serial.println("init gagal"); // Default setelah init adalah 2,402 GHz (saluran 2), 2Mbps, 0dBm if (!nrf24.setChannel(12)) Serial.println("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF gagal"); } //transceiver barang

lingkaran kosong() {

val = analogRead(potpin); //barang potensiometer

val = peta(val, 0, 1023, 750, 2250);

valString = val; String str = (valString); str.toCharArray(tempChar, 5); //datatype mengubah hal-hal nrf24.send(tempChar, sizeof(tempChar));

}

Langkah 6: Catatan Tentang Kode:

Kode berisi beberapa fungsi pemecahan masalah terbatas dalam bentuk umpan balik dari monitor serial di antarmuka perangkat lunak Arduino. Saat melihat serial monitor dari kode SERVER (ctrl + shift + M), Anda harus dapat melihat status potensiometer dalam bentuk angka antara 1 dan 180.

Juga, ini adalah perpustakaan untuk nirkabel dan servo:

www.airspayce.com/mikem/arduino/RadioHead/

github.com/nabontra/ServoTimer2

Direkomendasikan: