Përmbajtje:
- Hapi 1: Përbërësit
- Hapi 2: Bordi i serverit
- Hapi 3: Koduesi i serverit: Kopjoni dhe ngjisni
- Hapi 4: Bordi i Klientit
- Hapi 5: Kodi i Klientit: Kopjo dhe Ngjit
- Hapi 6: Një Shënim Rreth Kodit:
Video: Kontrolli i shërbimit pa tel: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
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
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 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 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:
Bllokimi i shërbimit të tastierës: 5 hapa
Tastiera Servo Lock: Përshëndetje të gjithëve, shpresoj të keni pasur një ditë të mirë. Nëse jo, me shpresë se ju thjesht mund të ktheheni mbrapa me një mendje të hapur ndaj këtij mësimi dhe disa muzikë terapeutike. Programimi mund të jetë një sherr. Fatmirësisht, ky mësim nuk është një sherr, kështu që ju ndoshta mund të arrini
Kontrolli i Ndriçimit Kontrolli LED i bazuar në PWM duke përdorur butona Push, Raspberry Pi dhe Scratch: 8 hapa (me fotografi)
Kontrolli i Ndriçimit PWM Bazuar në Kontrollin LED duke përdorur Butonat Push, Raspberry Pi dhe Scratch: Unë po përpiqesha të gjeja një mënyrë për të shpjeguar se si punonte PWM për studentët e mi, kështu që i vura vetes detyrën të përpiqesha të kontrolloja shkëlqimin e një LED duke përdorur 2 butona shtytës - një buton që rrit shkëlqimin e një LED dhe tjetri e zbeh atë. Për të përparuar
Banka e ngarkimit pa tel DIY pa tel: 8 hapa (me fotografi)
Fuqia e ngarkimit pa tel DIY: Ndërsa telefonat bëhen më të zgjuar dhe vijnë të pajisur me një procesor më të rëndë, na jep një performancë të shkëlqyeshme, por e vetmja anë e dobët është jeta e baterisë. Ndërsa në përdorim intensiv Telefonat mund të sigurojnë vetëm disa orë jetëgjatësi të baterisë, për fat të mirë ka
Mikrofoni pa tel DIY në sistemin e kitarës pa tel: 4 hapa
Mikrofoni DIY Wireless në Sistemin e Kitarës Wireless: Kam shikuar disa video dhe disa grupe dhe pothuajse prej tyre përdorin një sistem pa tel në kitarë. Duke u çmendur, duke lëvizur, duke ecur dhe duke bërë çfarë të duan pa kordonin, kështu që unë ëndërroj ta kem një … Por .. për mua tani është shumë e shtrenjtë kështu që unë arrita në këtë
Hack një zile derë pa tel në një çelës alarmi pa tel ose çelës aktivizues/fikës: 4 hapa
Hack një zile derë pa tel në një çelës alarmi pa tel ose çelës aktivizues/fikës: Kohët e fundit kam ndërtuar një sistem alarmi dhe e kam instaluar në shtëpinë time. Kam përdorur çelsat magnetikë në dyert dhe i kam lidhur ato me papafingo. Dritaret ishin një histori tjetër dhe instalimi i fortë i tyre nuk ishte një opsion. Kisha nevojë për një zgjidhje pa tel dhe kjo është