İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13
Bu proje, bir potansiyometre (düğme) aracılığıyla bir servonun dönüşünü kablosuz olarak kontrol eder. Dönme 180 derece ile sınırlıdır.
Adım 1: Bileşenler
Bu proje şunlardan oluşmaktadır:
- USB bağlantı kablosu ile 2 Arduino UNO kontrol kartı
- 2 nRF24L01 – 2.4GHz RF alıcı-verici modülü (bu modüllerle ilgili yardım için
- nRF24L01 için 2 soket adaptör kartı (sırt çantası yongaları)
- 1 isteğe bağlı Arduino Uyumlu 328 ProtoShield Prototip Genişletme Kartı
- 1 servo
- 1 analog potansiyometre
- havya ve lehim
- Tel
- iğne burunlu pense
- yalıtım sargısı, elektrik bandı kullandım
2. Adım: Sunucu Anakartı
Sunucu kartı bir alıcı-verici modülünden, kalkan kartından (doğrudan Arduino kartına yalnızca tek bir şekilde bağlanır) ve servodan oluşur. Beceriksiz devre tahtasından kaçınmak ve projeye ve genel olarak daha temiz bir sonuç vermek için kalkan panosunu dahil etmeye karar verdim.
Bileşenler listesinde yer alan kod ve web kaynağı, alıcı-verici modül bağlantılarını detaylandırır. Önceki projelerde olduğu gibi geçici bağlantılar kullanmak yerine bağlantıları lehimlemeye karar verdim. Acemi olduğum için, her lehim eklemini elektrik bandıyla yalıttım (güzel değillerdi).
Kalkan kartı pinleri doğrudan Arduino pinlerine karşılık gelir. Shield board'u takmadan önce toprak ve 5 volt pinleri board raylarına tel ve lehim ile bağladım. Ayrıca bileşenlerin 5 volt ve topraklama kablolarını ekran kartı raylarına lehimledim, ardından Arduino'yu ekran kartına bağladım.
Servo, güç için 3 volt pinine ve iletişim için dijital pin 2'ye bağlıdır.
** Not: Sadece bu yapıyı tamamladıktan sonra Arduino panolarımın aynı olmadığını fark ettim. Sunucu alıcı-vericim, kalkan kartındaki 5 voltluk raydan güç alırken, istemci alıcı-vericisi 3 voltluk pinden güç alır, ancak alıcı-vericideki adaptör çipinin bir işlevinin uygun voltajı sağlamak olduğuna inanmaya yönlendirildim. Kesin olarak söyleyebileceğim tek şey, resimlerde gösterilen konfigürasyonla eşleşen kodun açıklanan efekti ürettiğidir.
3. Adım: Sunucu Kodlayıcı: Kopyala ve Yapıştır
//SUNUCU KODU/* NRF24L01 Arduino CE > D8 CSN > D10 SCK > D13 MO > D11 MI > D12 RO > Kullanılmıyor GND > GND VCC > 5V */ //alıcı-verici kablolaması
#Dahil etmek
// servo kitaplığı
#Dahil etmek
// alıcı-verici kitaplığı
#define Servopin 2
// bildirim servo çıkış pini
ServoTimer2 hizmeti;
//servo adının bildirilmesi
RH_NRF24 nrf24;
// alıcı-verici adının beyanı
int zamanaşımı = 0;
// servo için değişken
int darbeler = 90;
// darbeleri depolamak için değişken
geçersiz kurulum()
{ serv.attach(Servopin); //servo malzemesi
Seri.başla(9600); // alıcı verici şeyler
eğer (!nrf24.init())
Serial.println("başlatma başarısız"); //seri monitör öğeleri if (!nrf24.setChannel(12)) //kanalı 125 olarak ayarla Serial.println("setChannel başarısız"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF başarısız"); // seri monitör malzemesi }
boşluk döngüsü()
{ if (nrf24.available()) { uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof(tampon); if (nrf24.recv(buf, &len)) //seri monitör öğeleri { Serial.print("istek alındı: "); darbeler = strtol((const char*)tampon, NULL, 10); //veri tipi değişiklik malzemesi
int prin = harita(darbeler, 750, 2250, 0, 180); //veri tipi değişiklik malzemesi
Serial.println(baskı); serv.write(darbeler); //servoyu hareket ettirir } }
}
Adım 4: Müşteri Kurulu
İstemci kartı bir alıcı-verici modülü ve potansiyometreden oluşur. Alıcı-verici modülü, kalkan kartı olmadan doğrudan Arduino kartı pinlerine bağlanması dışında sunucu kartıyla aynı şekilde** bağlanır.
Potansiyometre 5v, toprak alır ve analog pin 2'ye bağlanır.
**Not: Sunucu kartı adımında belirtildiği gibi, Arduino kartlarım aynı değil. Bu durumda alıcı-verici, doğrudan 5V pinin bitişiğindeki 3.3V etiketli pime bağlanmıştır, ancak yine de her şey yolunda görünüyor.
Adım 5: Müşteri Kodu: Kopyala ve Yapıştır
//İSTEMCİ KODU/* NRF24L01 Arduino CE > D8 CSN > D10 SCK > D13 MO > D11 MI > D12 RO > Kullanılmıyor GND > GND VCC > 5V */ //alıcı-verici kablolaması
#Dahil etmek
// alıcı-verici kitaplığı
int potpin = A2; //potansiyometre gecikmesi
int değeri;
karakter tempChar[5];
String valString = ""; //veri tipi değişiklik malzemesi
RH_NRF24 nrf24; // alıcı verici şeyler
geçersiz kurulum()
{ Serial.başlangıç(9600); if (!nrf24.init()) Serial.println("init başarısız"); // Başlatmadan sonraki varsayılanlar 2.402 GHz (kanal 2), 2Mbps, 0dBm if (!nrf24.setChannel(12)) Serial.println("setChannel başarısız"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF başarısız"); } // alıcı verici şeyler
boşluk döngüsü () {
val = analogRead(potpin); //potansiyometre malzemesi
val = harita(val, 0, 1023, 750, 2250);
valString = val; String str = (valString); str.toCharArray(tempChar, 5); //veri tipi değişiklik malzemesi nrf24.send(tempChar, sizeof(tempChar));
}
Adım 6: Kod Hakkında Bir Not:
Kod, Arduino yazılım arayüzündeki seri monitörden geri bildirim şeklinde bazı sınırlı sorun giderme işlevleri içerir. SUNUCU kodundan (ctrl + shift + M) seri monitöre bakarken, potansiyometrenin durumunu 1 ile 180 arasında bir sayı şeklinde görebilmeniz gerekir.
Ayrıca, kablosuz ve servo için kütüphane:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Önerilen:
HC12 Kablosuz Modülü Kullanan Kablosuz Arduino Robotu: 7 Adım
HC12 Kablosuz Modülünü Kullanan Kablosuz Arduino Robotu: Merhaba arkadaşlar, tekrar hoş geldiniz. Bir önceki yazımda, H Köprü Devresinin ne olduğunu, L293D motor sürücü IC'sini, yüksek akım motor sürücülerini sürmek için bindirme L293D Motor sürücü IC'sini ve kendi L293D motor Sürücü Kartınızı nasıl tasarlayıp yapabileceğinizi,
Elli Metre Menzilli Kablosuz Erişim Noktası TP Bağlantılı WN7200ND Raspbian Stretch Üzerinde USB Kablosuz Adaptör: 6 Adım
Elli Metre Menzilli Kablosuz Erişim Noktası TP Link ile Raspbian Stretch üzerinde WN7200ND USB Kablosuz Adaptör: Raspberry Pi, Güvenli Kablosuz Erişim Noktaları oluşturmak için harika ama iyi bir menzile sahip değil, genişletmek için bir TP Link WN7200ND USB Kablosuz Adaptör kullandım. Nasıl yapıldığını paylaşmak istiyorum Neden router yerine ahududu pi kullanayım?
DIY Kablosuz Mikrofondan Kablosuz Gitar Sistemine: 4 Adım
DIY Kablosuz Mikrofondan Kablosuz Gitar Sistemine: Bazı videolar ve bazı gruplar izliyorum ve neredeyse çoğu gitarda kablosuz bir sistem kullanıyor. Delirmek, hareket etmek, yürümek ve ne isterlerse yapsınlar kordon olmadan bu yüzden bir tane olmasını hayal ediyorum.. Ama
Kablosuz Kapı Zilini Kablosuz Alarm Anahtarına veya Açma/Kapama Anahtarına Hackleyin: 4 Adım
Bir Kablosuz Kapı Zilini Kablosuz Alarm Anahtarına veya Açma/Kapama Anahtarına Hackleyin: Yakın zamanda bir alarm sistemi kurdum ve evime kurdum. Kapılarda manyetik anahtarlar kullandım ve onları tavan arasına sabitledim.Pencereler başka bir hikayeydi ve onları sert kablolamak bir seçenek değildi. Kablosuz bir çözüme ihtiyacım vardı ve bu
Kablosuz Yönlendiriciyi Kablosuz Genişletici 2x Erişim Noktasına Dönüştürün: 5 Adım
Kablosuz Yönlendiriciyi Kablosuz Genişletici 2x Erişim Noktasına dönüştürün: Bir RSJ (tavandaki metal destek kirişi) nedeniyle evimde kablosuz internet bağlantım zayıftı ve evin geri kalanı için sinyali artırmak veya ekstra bir genişletici eklemek istedim. Bir elektroda yaklaşık 50 kiloluk uzatıcılar görmüştüm