Përmbajtje:

Kontrolli i shërbimit pa tel: 6 hapa
Kontrolli i shërbimit pa tel: 6 hapa

Video: Kontrolli i shërbimit pa tel: 6 hapa

Video: Kontrolli i shërbimit pa tel: 6 hapa
Video: Haval H-6 HEV Управление ОДНОЙ ПЕДАЛЬЮ!!! 243 л.с 530Нм (гибрид) 2024, Nëntor
Anonim
Kontrolli i shërbimit pa tel
Kontrolli i shërbimit pa tel
Kontrolli i shërbimit pa tel
Kontrolli i shërbimit pa tel

Ky projekt kontrollon rrotullimin e një servo pa tel me anë të një potenciometri (çelës). Rrotullimi është i kufizuar në 180 gradë.

Hapi 1: Përbërësit

Komponentët
Komponentët
Komponentët
Komponentët
Komponentët
Komponentët

Ky projekt përbëhet nga

  • 2 borde kontrolluese Arduino UNO me kabllo lidhës USB
  • 2 module marrës marrës RF 2.4GHz (për ndihmë me këto module referojuni
  • 2 dërrasa përshtatës fole (patate të skuqura shpine) për nRF24L01
  • 1 opsionale Arduino Compatible 328 ProtoShield Prototype Board Expansion
  • 1 servo
  • 1 potenciometër analog
  • saldim dhe saldim
  • tela
  • pincë me hundë me gjilpërë
  • mbështjellës izolues, kam përdorur shirit elektrik

Hapi 2: Bordi i serverit

Bordi i serverit
Bordi i serverit

Bordi i serverit përbëhet nga një modul marrës, bordi mburojë (i cili lidhet drejtpërdrejt me bordin Arduino vetëm në një mënyrë), dhe servo. Vendosa të përfshija bordin e mburojës për të shmangur pjatën e ngathët të bukës dhe për t'i dhënë projektit dhe përfundimit të përgjithshëm më të pastër.

Kodi dhe burimi i uebit i përfshirë në listën e komponentëve detajojnë lidhjet e modulit të marrësit. Vendosa t'i lidh lidhjet në vend që të përdor lidhje të përkohshme si në projektet e mëparshme. Meqenëse jam fillestar, kam izoluar secilën lidhje të saldimit me shirit elektrik (ato nuk ishin të bukura).

Kunjat e bordit të mburojës korrespondojnë drejtpërdrejt me kunjat Arduino. Para se të bashkoj bordin e mburojës, unë lidha tokën dhe kunjat 5 volt në shinat e bordit me tela dhe lidhës. Unë gjithashtu bashkova telat 5 volt dhe përbërës të komponentëve në binarët e bordit të mburojës, pastaj më në fund e bashkova Arduino në bordin e mburojës.

Servo është bashkangjitur në pinin 3 volt për energji dhe pin dixhital 2 për komunikim.

** Shënim: vetëm pasi përfundova këtë ndërtim, vura re që tabelat e mia Arduino nuk janë identike. Transceiveri im i serverit mundësohet nga hekurudha 5volt në bordin e mburojës, ndërsa transmetuesi i klientit mundësohet nga kunja 3volt, megjithëse jam bindur se një funksion i çipit të përshtatësit në transmetuesin është të sigurojë tensionin e duhur. E tëra që mund të them me siguri është se kodi i dhënë i përshtatur me konfigurimin e treguar në imazhe prodhon efektin e përshkruar.

Hapi 3: Koduesi i serverit: Kopjoni dhe ngjisni

// KODI I SERVERIT/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nuk përdoret GND> GND VCC> 5V */// instalime elektrike të transmetuesit

#përfshi

// servo bibliotekë

#përfshi

// biblioteka e marrësit

#përcaktoni Servopin 2

// pin deklarim servo output

ServoTimer2 serv;

// deklarata e emrit servo

RH_NRF24 nrf24;

// deklarata e emrit të marrësit

koha intOUT = 0;

// ndryshore për servo

int pulse = 90;

// ndryshore për të ruajtur impulset

void setup ()

{serv.attach (Servopin); // servo gjëra

Serial.filloj (9600); // sende marrës

nëse (! nrf24.init ())

Serial.println ("init dështoi"); // gjëra seriale të monitorit nëse (! nrf24.setChannel (12)) // vendosni kanalin në 125 Serial.println ("setChannel dështoi"); nëse (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF dështoi"); // gjëra serike të monitorit}

lak void ()

{if (nrf24.disponueshme ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = madhësia (buf); if (nrf24.recv (buf, & len)) // gjëra seriale të monitorit {Serial.print ("mori kërkesën:"); impulse = strtol ((const char*) buf, NULL, 10); // lloji i ndryshimit të të dhënave

int prin = hartë (pulsimet, 750, 2250, 0, 180); // lloji i ndryshimit të të dhënave

Serial.println (prin); serv.shkruaj (pulson); // bën lëvizje servo}}

}

Hapi 4: Bordi i Klientit

Bordi i Klientit
Bordi i Klientit

Bordi i klientit përbëhet nga një modul marrës dhe potenciometër. Moduli i transmetuesit është i lidhur në të njëjtën mënyrë ** si bordi i serverit me përjashtim të faktit se pa bordin e mburojës, ai lidhet drejtpërdrejt në kunjat e bordit Arduino.

Potenciometri merr 5v, tokëzohet dhe lidhet me pinin analog 2.

** Shënim: siç u përmend në hapin e bordit të serverit, bordet e mia Arduino nuk janë identike. Në këtë rast, transmetuesi është lidhur me kunjin e etiketuar 3.3V, drejtpërdrejt ngjitur me kunjin 5V, por përsëri, gjithçka duket se funksionon mirë.

Hapi 5: Kodi i Klientit: Kopjo dhe Ngjit

// KODI I KLIENTIT/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nuk përdoret GND> GND VCC> 5V */// instalime elektrike të transmetuesit

#përfshi

// biblioteka e marrësit

int potpin = A2; // delaratimi i potenciometrit

int val;

char tempChar [5];

Vargu valString = ""; // lloji i ndryshimit të të dhënave

RH_NRF24 nrf24; // sende marrës

void setup ()

{Serial.fillo (9600); nëse (! nrf24.init ()) Serial.println ("init dështoi"); // Parazgjedhjet pas fillimit janë 2.402 GHz (kanali 2), 2Mbps, 0dBm nëse (! Nrf24.setChannel (12)) Serial.println ("setChannel dështoi"); nëse (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF dështoi"); } // sende marrës

lak void () {

val = analogRead (potpin); // sende potenciometër

val = hartë (val, 0, 1023, 750, 2250);

valString = val; String str = (valString); str.toCharArray (tempChar, 5); // ndryshoni llojin e të dhënave sende nrf24.send (tempChar, sizeof (tempChar));

}

Hapi 6: Një Shënim Rreth Kodit:

Kodi përmban disa funksione të kufizuara të zgjidhjes së problemeve në formën e reagimeve nga monitori serik në ndërfaqen e softuerit Arduino. Kur shikoni monitorin serik nga kodi SERVER (ctrl + shift + M), duhet të jeni në gjendje të shihni gjendjen e potenciometrit në formën e një numri midis 1 dhe 180.

Gjithashtu, këtu është biblioteka për wireless dhe servo:

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

github.com/nabontra/ServoTimer2

Recommended: