Obsah:

Bezdrôtové ovládanie serva: 6 krokov
Bezdrôtové ovládanie serva: 6 krokov

Video: Bezdrôtové ovládanie serva: 6 krokov

Video: Bezdrôtové ovládanie serva: 6 krokov
Video: Умное окно - автоматизация проветривания комнаты, интеграция в Home Assistant 2024, November
Anonim
Bezdrôtové ovládanie serva
Bezdrôtové ovládanie serva
Bezdrôtové ovládanie serva
Bezdrôtové ovládanie serva

Tento projekt riadi otáčanie serva bezdrôtovo pomocou potenciometra (gombíka). Rotácia je obmedzená na 180 stupňov.

Krok 1: Komponenty

Komponenty
Komponenty
Komponenty
Komponenty
Komponenty
Komponenty

Tento projekt pozostáva z

  • 2 dosky ovládača Arduino UNO s káblom s konektorom USB
  • 2 moduly transceiveru nRF24L01-2,4 GHz (pomoc s týmito modulmi nájdete na stránke
  • 2 dosky zásuvkových adaptérov (batohové čipy) pre nRF24L01
  • 1 voliteľná rozširujúca doska prototypu 328 ProtoShield kompatibilná s Arduino
  • 1 servo
  • 1 analógový potenciometer
  • spájkovačka a spájkovačka
  • drôt
  • kliešte s ihlovým nosom
  • izolačný obal, použil som elektrickú pásku

Krok 2: Serverová doska

Serverová doska
Serverová doska

Serverová doska sa skladá z modulu transceiveru, štítovej dosky (ktorá sa pripája priamo na dosku Arduino iba jedným spôsobom) a zo serva. Rozhodol som sa zahrnúť štítovú dosku, aby som sa vyhol nemotornému chlebu, a dal projektu a celkovému úhľadnejšiemu prevedeniu.

Kód a webový zdroj zahrnutý v zozname komponentov podrobne opisujú pripojenia modulu transceiveru. Rozhodol som sa spájkovať spojenia namiesto použitia dočasných spojení ako v predchádzajúcich projektoch. Keďže som začiatočník, izoloval som každý spájkovací spoj elektrickou páskou (neboli pekné).

Kolíky štítovej dosky zodpovedajú priamo kolíkom Arduino. Pred pripevnením štítovej dosky som drôt a spájku spojil uzemňovací a 5voltový kolík s lištami dosky. Tiež som spájkoval 5voltové a uzemňovacie vodiče súčiastok k lištám dosky štítu a potom som Arduino nakoniec pripevnil k doske štítu.

Servo je pripojené k 3voltovému kolíku pre napájanie a digitálny kolík 2 pre komunikáciu.

** Poznámka: až po dokončení tejto zostavy som si všimol, že moje dosky Arduino nie sú identické. Môj serverový transceiver je napájaný 5 -voltovou koľajnicou na štítovej doske, zatiaľ čo klientsky transceiver je napájaný 3 -voltovým pinom, aj keď som bol presvedčený, že funkciou čipu adaptéra na transceiveri je poskytnúť správne napätie. S istotou môžem povedať len to, že uvedený kód zodpovedajúci konfigurácii zobrazenej na obrázkoch vytvára opísaný efekt.

Krok 3: Server Coder: Skopírujte a prilepte

// KÓD SERVERU/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nepoužitý GND> GND VCC> 5V */// zapojenie transceiveru

#zahrnúť

// servo knižnica

#zahrnúť

// knižnica transceiveru

#define Servopin 2

// deklaračný výstupný pin servo

ServoTimer2 serv;

// deklarácia názvu serva

RH_NRF24 nrf24;

// deklarácia názvu transceiveru

int timeOUT = 0;

// premenná pre servo

int impulzy = 90;

// premenná na ukladanie impulzov

neplatné nastavenie ()

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

Serial.begin (9600); // veci s transceiverom

ak (! nrf24.init ())

Serial.println ("inicializácia zlyhala"); // veci zo sériového monitora if (! nrf24.setChannel (12)) // nastavenie kanála na 125 Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF failed"); // veci zo sériového monitora}

prázdna slučka ()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // veci zo sériového monitora {Serial.print ("got request:"); impulzy = strtol ((const char*) buf, NULL, 10); // veci na zmenu typu údajov

int prin = mapa (impulzy, 750, 2250, 0, 180); // veci na zmenu typu údajov

Serial.println (prin); serv.write (impulzy); // rozbehne servo}}

}

Krok 4: Klientská rada

Klientská rada
Klientská rada

Klientská doska sa skladá z modulu transceiveru a potenciometra. Modul transceiveru je zapojený rovnakým spôsobom ** ako serverová doska s tou výnimkou, že bez štítovej dosky je zapojený priamo do kolíkov dosky Arduino.

Potenciometer má uzemnenie 5 V a je pripojený k analógovému kolíku 2.

** Poznámka: Ako je uvedené v kroku serverovej dosky, moje dosky Arduino nie sú totožné. V tomto prípade je transceiver zapojený na kolík označený 3,3 V, priamo susediaci s kolíkom 5 V, ale opäť sa zdá, že všetko funguje dobre.

Krok 5: Kód klienta: Skopírujte a prilepte

// KLIENTSKY KÓD/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nepoužitý GND> GND VCC> 5V */// zapojenie transceiveru

#zahrnúť

// knižnica transceiveru

int potpin = A2; // deklarácia potenciometra

int val;

char tempChar [5];

Reťazec valString = ""; // veci na zmenu typu údajov

RH_NRF24 nrf24; // veci s transceiverom

neplatné nastavenie ()

{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("inicializácia zlyhala"); // Predvolené hodnoty po inicializácii sú 2,402 GHz (kanál 2), 2 Mb/ s, 0 dBm, ak (! Nrf24.setChannel (12)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF failed"); } // veci s transceiverom

prázdna slučka () {

val = analogRead (potpin); // veci potenciometra

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

valString = val; Reťazec str = (valString); str.toCharArray (tempChar, 5); // zmena typu údajov veci nrf24.send (tempChar, sizeof (tempChar));

}

Krok 6: Poznámka o kóde:

Kód obsahuje niektoré obmedzené funkcie na riešenie problémov vo forme spätnej väzby zo sériového monitora v softvérovom rozhraní Arduino. Pri prezeraní sériového monitora z kódu SERVER (ctrl + shift + M) by ste mali vidieť stav potenciometra vo forme čísla od 1 do 180.

Tu je tiež knižnica pre bezdrôtové pripojenie a servo:

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

github.com/nabontra/ServoTimer2

Odporúča: