Sisällysluettelo:

Langaton servo -ohjaus: 6 vaihetta
Langaton servo -ohjaus: 6 vaihetta

Video: Langaton servo -ohjaus: 6 vaihetta

Video: Langaton servo -ohjaus: 6 vaihetta
Video: 😩 Сплошное разочарование или повод для радости? Подробный гид по Audi A6 C6. 2024, Marraskuu
Anonim
Langaton servo -ohjaus
Langaton servo -ohjaus
Langaton servo -ohjaus
Langaton servo -ohjaus

Tämä projekti ohjaa servon pyörimistä langattomasti potentiometrin (nupin) avulla. Kierto on rajoitettu 180 asteeseen.

Vaihe 1: Komponentit

Komponentit
Komponentit
Komponentit
Komponentit
Komponentit
Komponentit

Tämä projekti koostuu

  • 2 Arduino UNO -ohjainkorttia USB -liitäntäkaapelilla
  • 2 nRF24L01-2,4 GHz: n RF-lähetin-vastaanotinmoduulit (lisätietoja näistä moduuleista on osoitteessa
  • 2 sovitinlevyä (reppusiruja) nRF24L01: lle
  • 1 valinnainen Arduino -yhteensopiva 328 ProtoShield -prototyyppilaajennuslevy
  • 1 servo
  • 1 analoginen potentiometri
  • juotin ja juote
  • lanka
  • pihdit neulalla
  • eristekääre, käytin sähköteippiä

Vaihe 2: Palvelinkortti

Palvelinlevy
Palvelinlevy

Palvelinkortti koostuu lähetin -vastaanotinmoduulista, suojalevystä (joka liitetään suoraan Arduino -korttiin vain yhdellä tavalla) ja servosta. Päätin sisällyttää suojalevyn, jotta vältytään kömpelöltä leipälaudalta ja annan projektille ja yleisemmän viimeistelyn.

Komponenttiluetteloon sisältyvä koodi ja verkkoresurssi kuvaavat lähetin -vastaanotinmoduulin yhteyksiä. Päätin juottaa yhteydet väliaikaisten yhteyksien sijasta, kuten aiemmissa projekteissa. Koska olen aloittelija, eristin jokaisen juotosliitoksen sähköteipillä (ne eivät olleet kauniita).

Suojalevyn tapit vastaavat suoraan Arduinon tappeja. Ennen suojalevyn kiinnittämistä liitin maan ja 5 voltin nastat levyn kiskoihin langalla ja juotoksella. Juotin myös komponenttien 5 voltin ja maadoitusjohdot suojalevyn kiskoihin ja kiinnitin lopulta Arduinon suojalevyyn.

Servo on kiinnitetty 3 voltin nastaan virtaa varten ja digitaalinen nasta 2 viestintään.

** Huomaa: vasta tämän rakenteen valmistumisen jälkeen huomasin, että Arduino -levyt eivät ole identtisiä. Palvelinlähetinvastaanottimeni saa virtaa suojalevyssä olevasta 5 voltin kiskosta, kun taas asiakaslähetinvastaanotin saa virtansa 3 voltin tapista, vaikka minut on uskottu, että lähetinvastaanottimen sovitinsirun tehtävänä on tarjota oikea jännite. Voin vain sanoa varmasti, että kuvien esittämän kokoonpanon mukainen koodi antaa kuvatun tehosteen.

Vaihe 3: Palvelinkooderi: Kopioi ja liitä

// PALVELINKOODI/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ei käytössä GND> GND VCC> 5V */// lähetin -vastaanottimen johdotus

#sisältää

// servokirjasto

#sisältää

// lähetinvastaanottimen kirjasto

#define Servopin 2

// ilmoitusservon ulostulonappi

ServoTimer2 serv;

// servon nimen ilmoitus

RH_NRF24 nrf24;

// lähetinvastaanottimen nimen ilmoitus

int timeOUT = 0;

// muuttuja servolle

int pulssit = 90;

// muuttuja pulssien tallentamiseen

mitätön asennus ()

{serv.attach (Servopin); // servotavaraa

Sarja.alku (9600); // lähetinvastaanottimen tavaraa

jos (! nrf24.init ())

Serial.println ("init epäonnistui"); // sarjamonitori, jos (! nrf24.setChannel (12)) // aseta kanavaksi 125 Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF epäonnistui"); // sarjamonitori jutut}

tyhjä silmukka ()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // sarjamonitorit {Serial.print ("got request:"); pulssit = strtol ((const char*) buf, NULL, 10); // tietotyypin muutos

int prin = kartta (pulsseja, 750, 2250, 0, 180); // tietotyypin muutos

Sarja.println (tulostin); serv.write (pulssit); // saa servon liikkumaan}}

}

Vaihe 4: Asiakaskunta

Asiakashallitus
Asiakashallitus

Asiakaskortti koostuu lähetin -vastaanotinmoduulista ja potentiometristä. Lähetin -vastaanotinmoduuli on kytketty samalla tavalla ** kuin palvelinkortti sillä poikkeuksella, että ilman suojakorttia se on kytketty suoraan Arduino -kortin nastoihin.

Potentiometri kestää 5 V, maadoitettu, ja se on kytketty analogiseen nastaan 2.

** Huomaa: kuten palvelinkortin vaiheessa mainittiin, Arduino -levyt eivät ole identtisiä. Tässä tapauksessa lähetin -vastaanotin on kytketty 3,3 V: n nastaan, suoraan 5 V: n tapin viereen, mutta taas kaikki näyttää toimivan hyvin.

Vaihe 5: Asiakaskoodi: Kopioi ja liitä

// ASIAKASKOODI/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ei käytössä GND> GND VCC> 5V */// lähetin -vastaanottimen johdotus

#sisältää

// lähetinvastaanottimen kirjasto

int potpin = A2; // potentiometrin delaraatio

int val;

char tempChar [5];

Jono valString = ""; // tietotyypin muutos

RH_NRF24 nrf24; // lähetinvastaanottimen tavaraa

mitätön asennus ()

{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init epäonnistui"); // Oletusarvot initin jälkeen ovat 2,402 GHz (kanava 2), 2 Mbps, 0 dBm, jos (! Nrf24.setChannel (12)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF epäonnistui"); } // lähetinvastaanottimen tavaraa

void loop () {

val = analoginen luku (potpin); // potentiometrit

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

valString = val; Merkkijono str = (valString); str.toCharArray (tempChar, 5); // datatype change stuff nrf24.send (tempChar, sizeof (tempChar));

}

Vaihe 6: Huomautus koodista:

Koodi sisältää joitakin rajoitettuja vianetsintäominaisuuksia palautteen muodossa sarjamonitorilta Arduino -ohjelmiston käyttöliittymässä. Kun katsot sarjamonitoria SERVER -koodista (ctrl + shift + M), sinun pitäisi pystyä näkemään potentiometrin tila numerona 1-180.

Lisäksi tässä on kirjasto langattomille ja servoille:

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

github.com/nabontra/ServoTimer2

Suositeltava: