Brezžični servo nadzor: 6 korakov
Brezžični servo nadzor: 6 korakov
Anonim
Brezžični servo nadzor
Brezžični servo nadzor
Brezžični servo nadzor
Brezžični servo nadzor

Ta projekt brezžično nadzoruje vrtenje servomotorja s potenciometrom (gumb). Vrtenje je omejeno na 180 stopinj.

1. korak: Komponente

Sestavni deli
Sestavni deli
Sestavni deli
Sestavni deli
Sestavni deli
Sestavni deli

Ta projekt je sestavljen iz

  • 2 krmilne plošče Arduino UNO s priključnim kablom USB
  • 2 modula RF oddajnika nRF24L01-2,4 GHz (za pomoč pri teh modulih glejte
  • 2 vtični vmesniški plošči (čipi nahrbtnika) za nRF24L01
  • 1 dodatna razširitvena plošča prototipa 328 ProtoShield, združljiva z Arduinom
  • 1 servo
  • 1 analogni potenciometer
  • spajkalnik in spajkanje
  • žica
  • klešče z igelnim nosom
  • izolacijski ovoj, uporabil sem električni trak

2. korak: strežniška plošča

Strežniška plošča
Strežniška plošča

Strežniška plošča je sestavljena iz oddajniškega modula, ščitne plošče (ki se samo na en način poveže neposredno s ploščo Arduino) in servo. Odločil sem se, da bom vključil ščitno ploščo, da se izognem nerodni ploščici in dam projektu in na splošno lepši zaključek.

Koda in spletni vir, vključeni v seznam komponent, podrobno opisujejo povezave oddajniškega modula. Odločil sem se spajkati povezave, namesto da uporabljam začasne povezave, kot v prejšnjih projektih. Ker sem začetnik, sem vsak spajkalni spoj izoliral z električnim trakom (niso bili lepi).

Zatiči plošče ščita ustrezajo zatičem Arduino. Preden sem pritrdil ščitno ploščo, sem ozemljitev in 5 -voltne zatiče z žico in spajkom povezal na tirnice. Prav tako sem spajal 5 -voltne in ozemljene žice komponent na tirnice ščitne plošče, nato pa Arduino na koncu pritrdil na ščitno ploščo.

Servo je pritrjen na 3 -voltni zatič za napajanje in digitalni zatič 2 za komunikacijo.

** Opomba: šele po zaključku te gradnje sem opazil, da moje Arduino plošče niso enake. Moj strežniški oddajnik napaja 5 -voltna tirnica na ščitni plošči, odjemalski oddajnik pa 3 -voltni pin, čeprav sem prepričan, da je funkcija vmesniškega čipa na oddajniku zagotoviti ustrezno napetost. Vse kar lahko zagotovo trdim je, da podana koda, ki se ujema s konfiguracijo, prikazano na slikah, proizvede opisani učinek.

3. korak: kodirnik strežnika: Kopirajte in prilepite

// Koda strežnika/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ne uporablja se GND> GND VCC> 5V */// ožičenje oddajnika

#vključi

// servo knjižnica

#vključi

// knjižnica oddajnikov

#define Servopin 2

// izjava servo izhodnega zatiča

ServoTimer2 serv;

// deklaracija imena servomotorja

RH_NRF24 nrf24;

// deklaracija imena oddajnika

int timeOUT = 0;

// spremenljivka za servo

int impulzi = 90;

// spremenljivka za shranjevanje impulzov

void setup ()

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

Serial.begin (9600); // stvari oddajnika

if (! nrf24.init ())

Serial.println ("init failed"); // stvari serijskega monitorja if (! nrf24.setChannel (12)) // nastavite kanal na 125 Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ni uspelo"); // serijski monitor}

void loop ()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // stvari serijskega monitorja {Serial.print ("got request:"); impulzi = strtol ((const char*) buf, NULL, 10); // stvari spreminjanja vrste podatkov

int prin = zemljevid (impulzi, 750, 2250, 0, 180); // spreminjanje vrste podatkov

Serial.println (prin); serv.write (impulzi); // naredi servo premik}}

}

4. korak: Odbor strank

Odbor strank
Odbor strank

Odjemalska plošča je sestavljena iz oddajnega modula in potenciometra. Oddajniški modul je ožičen na enak način ** kot strežniška plošča, z izjemo tega, da je brez ščitne plošče priključen neposredno v zatiče plošče Arduino.

Potenciometer napaja 5V, ozemljen in priklopljen na analogni pin 2.

** Opomba: kot je navedeno v koraku strežniške plošče, moje Arduino plošče niso enake. V tem primeru je oddajnik priključen na zatič z oznako 3.3V, neposredno ob 5V zatiču, vendar se zdi, da vse deluje dobro.

5. korak: Koda odjemalca: Kopiraj in prilepi

// KODA KLIJENTA/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ne uporablja se GND> GND VCC> 5V */// ožičenje oddajnika

#vključi

// knjižnica oddajnikov

int potpin = A2; // zamik potenciometra

int val;

char tempChar [5];

Niz valString = ""; // stvari spreminjanja vrste podatkov

RH_NRF24 nrf24; // stvari oddajnika

void setup ()

{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init ni uspel"); // Privzete vrednosti po init so 2,402 GHz (kanal 2), 2 Mb/ s, 0 dBm, če (! Nrf24.setChannel (12)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ni uspelo"); } // oddajnik

void loop () {

val = analogRead (potpin); // stvari s potenciometrom

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

valString = val; Niz str = (valString); str.toCharArray (tempChar, 5); // spreminjanje vrste podatkov nrf24.send (tempChar, sizeof (tempChar));

}

6. korak: Opomba glede kode:

Koda vsebuje nekaj omejenih funkcij za odpravljanje težav v obliki povratnih informacij serijskega monitorja v vmesniku programske opreme Arduino. Ko gledate serijski monitor s kode SERVER (ctrl + shift + M), bi morali videti stanje potenciometra v obliki števila med 1 in 180.

Tu je tudi knjižnica za brezžično povezavo in servo:

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

github.com/nabontra/ServoTimer2

Priporočena: