Sisukord:

Traadita servojuhtimine: 6 sammu
Traadita servojuhtimine: 6 sammu

Video: Traadita servojuhtimine: 6 sammu

Video: Traadita servojuhtimine: 6 sammu
Video: Горит на панели ABS поиск проблемы передний левый датчик и провод поиск обрыва 2024, Juuli
Anonim
Juhtmeta servojuhtimine
Juhtmeta servojuhtimine
Juhtmeta servojuhtimine
Juhtmeta servojuhtimine

See projekt kontrollib servo pöörlemist juhtmevabalt potentsiomeetri (nupu) abil. Pöörlemine on piiratud 180 kraadiga.

Samm: komponendid

Komponendid
Komponendid
Komponendid
Komponendid
Komponendid
Komponendid

See projekt koosneb

  • 2 Arduino UNO kontrolleriplaati koos USB -kaabliga
  • 2 nRF24L01-2,4 GHz raadiosaatja-vastuvõtja moodulid (nende moodulite kohta leiate abi aadressilt
  • 2 pistikupesa adapterplaati (seljakoti kiibid) seadmele nRF24L01
  • 1 valikuline Arduinoga ühilduv 328 ProtoShield prototüübi laiendusplaat
  • 1 servo
  • 1 analoog -potentsiomeeter
  • jootekolb ja jootekolb
  • traat
  • nõelaga tangid
  • isolatsioonimähis, kasutasin elektrilinti

2. samm: serveriplaat

Serveri juhatus
Serveri juhatus

Serveriplaat koosneb transiiverimoodulist, kilpplaadist (mis ühendub otse Arduino plaadiga ainult ühel viisil) ja servost. Otsustasin lisada kilpplaadi, et vältida kohmakat leivaplaati ja anda projektile ja üldisele heale viimistlusele.

Komponentide loendis sisalduv kood ja veebiressurss kirjeldavad transiiveri mooduli ühendusi. Otsustasin ühendused jootmise asemel kasutada ajutisi ühendusi nagu eelmistes projektides. Kuna olen algaja, siis isoleerisin igat jootekohta elektrilindiga (need ei olnud ilusad).

Kilbiplaadi tihvtid vastavad otse Arduino tihvtidele. Enne kilpplaadi kinnitamist ühendasin traadi ja joodisega maapinna ja 5 -voldised tihvtid lauaplatsidega. Samuti jootsin komponentide 5 -voldised ja maandusjuhtmed varjestusplaadi rööbaste külge, seejärel kinnitasin lõpuks Arduino kilpplaadi külge.

Servo on toiteallika jaoks ühendatud 3 -voldise kontaktiga ja side jaoks digitaalse tihvtiga 2.

** Märkus: alles pärast selle ehituse lõpetamist märkasin, et minu Arduino plaadid ei ole identsed. Minu server -transiiverit toidab kilpplaadil olev 5 -voldine rööp, kliendi -transiiverit aga 3 -voldine tihvt, kuigi mind on hakatud uskuma, et transiiveri adapterkiibi ülesanne on tagada õige pinge. Võin kindlalt öelda, et piltidel näidatud konfiguratsiooniga sobitatud kood annab kirjeldatud efekti.

Samm: serverikooder: kopeerimine ja kleepimine

// SERVERIKOOD/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ei kasutata GND> GND VCC> 5V */// transiiveri juhtmestik

#kaasake

// servo raamatukogu

#kaasake

// transiiveri raamatukogu

#define Servopin 2

// deklaratsiooni servoväljundi tihvt

ServoTimer2 serv;

// servo nime deklaratsioon

RH_NRF24 nrf24;

// vastuvõtja nime deklaratsioon

int timeOUT = 0;

// muutuja servo jaoks

int impulsid = 90;

// muutuja impulsside salvestamiseks

tühine seadistus ()

{serv.attach (Servopin); // servo värk

Seriaalne algus (9600); // transiiveri värk

kui (! nrf24.init ())

Serial.println ("init ebaõnnestus"); // jadamonitori värk if (! nrf24.setChannel (12)) // määrake kanal 125 Serial.println ("setChannel ebaõnnestus"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ebaõnnestus"); // seeriamonitori asjad}

tühine tsükkel ()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // seeriamonitori asjad {Serial.print ("sain päringu:"); kaunviljad = strtol ((const char*) buf, NULL, 10); // andmetüübi muutmise asjad

int prin = kaart (impulsid, 750, 2250, 0, 180); // andmetüübi muutmise asjad

Serial.println (prints); serv.write (impulsid); // paneb servo liikuma}}

}

Samm 4: Kliendihaldur

Kliendihaldur
Kliendihaldur

Kliendiplaat koosneb transiiveri moodulist ja potentsiomeetrist. Transiiveri moodul on juhtmega samamoodi ** kui serveriplaat, välja arvatud see, et ilma kaitsetahvlita ühendatakse see otse Arduino plaadi tihvtidega.

Potentsiomeeter võtab 5 V maanduse ja on ühendatud analoogpistikuga 2.

** Märkus: nagu serveriplaadi etapis mainitud, ei ole minu Arduino tahvlid identsed. Sel juhul on transiiver ühendatud juhtmega, mille sildi on 3.3V, vahetult 5V pistiku kõrval, kuid tundub, et kõik töötab hästi.

Samm: kliendikood: kopeerige ja kleepige

// KLIENDIKOOD/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ei kasutata GND> GND VCC> 5V */// transiiveri juhtmestik

#kaasake

// transiiveri raamatukogu

int potpin = A2; // potentsiomeetri delaratsioon

int val;

char tempChar [5];

String valString = ""; // andmetüübi muutmise asjad

RH_NRF24 nrf24; // transiiveri värk

tühine seadistus ()

{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init ebaõnnestus"); // Vaikimisi pärast init on 2,402 GHz (kanal 2), 2Mbps, 0dBm if (! Nrf24.setChannel (12)) Serial.println ("setChannel ebaõnnestus"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ebaõnnestus"); } // transiiveri asjad

void loop () {

val = analogRead (potpin); // potentsiomeetri värk

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

valString = val; String str = (valString); str.toCharArray (tempChar, 5); // andmetüübi muutmise asjad nrf24.send (tempChar, sizeof (tempChar));

}

6. samm: märkus koodi kohta:

Kood sisaldab mõningaid piiratud tõrkeotsingu funktsioone tagasiside kujul Arduino tarkvaraliidese jadamonitorilt. Seriaalmonitori vaatamisel SERVER -koodist (ctrl + shift + M) peaksite nägema potentsiomeetri olekut numbri 1 ja 180 vahel.

Siin on ka traadita ja servo raamatukogu:

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

github.com/nabontra/ServoTimer2

Soovitan: