INHOUDSOPGAWE:
- Stap 1: Komponente
- Stap 2: bedienerbord
- Stap 3: Bedienerkodeerder: Kopieer en plak
- Stap 4: Kliëntbord
- Stap 5: Kliëntkode: Kopieer en plak
- Stap 6: 'n Opmerking oor die kode:
Video: Draadlose servobestuur: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Hierdie projek beheer die draai van 'n servo draadloos deur middel van 'n potensiometer (knop). Die rotasie word beperk tot 180 grade.
Stap 1: Komponente
Hierdie projek bestaan uit
- 2 Arduino UNO -beheerborde met USB -aansluitkabel
- 2 nRF24L01-2.4GHz RF-ontvangersmodules (verwys na https://randomnerdtutorials.com/nrf24l01-2-4ghz-rf… vir hulp met hierdie modules)
- 2 aansluitbordborde (rugsakskyfies) vir die nRF24L01
- 1 opsionele Arduino -versoenbare 328 ProtoShield -prototipe -uitbreidingskaart
- 1 servo
- 1 analoog potensiometer
- soldeerbout en soldeer
- draad
- naald tang
- isolerende omhulsel het ek elektriese band gebruik
Stap 2: bedienerbord
Die bedienerbord bestaan uit 'n transceiver -module, die skildbord (wat slegs op een manier direk met die Arduino -bord verbind kan word) en die servo. Ek het besluit om die skildbord in te sluit om die lomp broodbord te vermy en die projek en algehele netjieser afwerking te gee.
Die kode en webbron wat in die komponentelys ingesluit is, bevat besonderhede oor die verbindings van die transceivermodule. Ek het besluit om die verbindings te soldeer in plaas van om tydelike verbindings te gebruik, soos in vorige projekte. Aangesien ek 'n beginner is, isoleer ek elke soldeerbout met elektriese band (dit was nie mooi nie).
Die skildbordpenne stem direk ooreen met die Arduino -penne. Voordat ek die skildplaat vasgemaak het, het ek die grond- en 5volt -penne met draad en soldeer aan die bordrails gekoppel. Ek het ook die komponente se 5 volt- en gronddrade aan die skildbordrails gesoldeer, en uiteindelik die Arduino aan die skildplaat vasgemaak.
Die servo is aan die 3 volt -pen vir krag en digitale pen 2 vir kommunikasie gekoppel.
** Opmerking: eers nadat ek hierdie build voltooi het, het ek opgemerk dat my Arduino -borde nie identies is nie. My bedienertransceiver word aangedryf deur die 5volt -spoor op die skildbord, terwyl die kliëntontvanger deur die 3volt -pen aangedryf word, alhoewel ek glo dat 'n funksie van die adapter -chip op die transceiver die regte spanning is. Al wat ek verseker kan sê, is dat die kode wat verskaf word, ooreenstem met die opset wat in die beelde getoon word, die beskrywe effek lewer.
Stap 3: Bedienerkodeerder: Kopieer en plak
// SERVER CODE/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nie gebruik nie GND> GND VCC> 5V */// transceiver bedrading
#insluit
// servobiblioteek
#insluit
// transceiver biblioteek
#definieer Servopin 2
// verklaring servo -uitvoerpen
ServoTimer2 serv;
// verklaring van servo naam
RH_NRF24 nrf24;
// verklaring van die naam van die ontvanger
int timeOUT = 0;
// veranderlike vir servo
int pulse = 90;
// veranderlike om pulse op te slaan
leemte opstelling ()
{serv.attach (Servopin); // servo -goed
Serial.begin (9600); // transceiver -goed
as (! nrf24.init ())
Serial.println ("init misluk"); // seriële monitor dinge as (! nrf24.setChannel (12)) // kanaal stel op 125 Serial.println ("setChannel misluk"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF misluk"); // seriële monitor goed}
leemte lus ()
{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // serial monitor stuff {Serial.print ("got request:"); pulse = strtol ((const char*) buf, NULL, 10); // data tipe verander dinge
int prin = kaart (pulse, 750, 2250, 0, 180); // data tipe verander dinge
Serial.println (prin); serv.write (polse); // laat servo beweeg}}
}
Stap 4: Kliëntbord
Die kliëntbord bestaan uit 'n transceiver -module en die potensiometer. Die transceiver -module is op dieselfde manier bedraad ** as die bedienerbord, met die uitsondering dat dit sonder die skildbord direk in die Arduino -bordpenne gekoppel is.
Die potensiometer neem 5v, gemaal, en is gekoppel aan analoog pen 2.
** Opmerking: soos genoem in die bedienerbordstap, is my Arduino -borde nie identies nie. In hierdie geval is die ontvanger aan die pen 3,3V gekoppel, direk aangrensend aan die 5V -pen, maar dit lyk asof alles weer goed werk.
Stap 5: Kliëntkode: Kopieer en plak
// KLIENTEKODE/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Nie gebruik nie GND> GND VCC> 5V */// transceiver bedrading
#insluit
// transceiver biblioteek
int potpin = A2; // potensiometer deel
int val;
char tempChar [5];
String valString = ""; // data tipe verander dinge
RH_NRF24 nrf24; // transceiver -goed
leemte opstelling ()
{Serial.begin (9600); as (! nrf24.init ()) Serial.println ("init misluk"); // Standaard na init is 2.402 GHz (kanaal 2), 2Mbps, 0dBm as (! Nrf24.setChannel (12)) Serial.println ("setChannel misluk"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF misluk"); } // transceiver -goed
leemte -lus () {
val = analogRead (potpin); // potensiometer dinge
val = kaart (val, 0, 1023, 750, 2250);
valString = val; String str = (valString); str.toCharArray (tempChar, 5); // datatipe verander dinge nrf24.send (tempChar, sizeof (tempChar));
}
Stap 6: 'n Opmerking oor die kode:
Die kode bevat 'n paar beperkte funksies om probleme op te los in die vorm van terugvoer van die seriële monitor in die Arduino -sagteware -koppelvlak. As u die seriële monitor vanuit die SERVER -kode (ctrl + shift + M) bekyk, moet u die toestand van die potensiometer in die vorm van 'n getal tussen 1 en 180 kan sien.
Hier is ook die biblioteek vir die draadlose en die servo:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Aanbeveel:
Draadlose Arduino -robot met behulp van die HC12 -draadlose module: 7 stappe
Draadlose Arduino -robot wat die HC12 -draadlose module gebruik: Hallo ouens, welkom terug. In my vorige pos het ek verduidelik wat 'n H Bridge Circuit is, L293D -motorbestuurder -IC, L293D -motorbestuurder -IC vir die bestuur van hoëstroom -motorbestuurders en hoe u u eie L293D -motorbestuurderbord kan ontwerp en maak
Servobestuur met NodeMCU en Blynk - in IOT -platform: 3 stappe
Servobestuur met NodeMCU en Blynk | in IOT Platform: In hierdie tutoriaal kan u u servo beheer met behulp van die Blynk -app in IOT Platform
Vyftig meter bereik draadlose toegangspunt met TP Link WN7200ND USB draadlose adapter op Raspbian -rek: 6 stappe
Vyftig meter bereik draadlose toegangspunt met TP Link WN7200ND USB draadlose adapter op Raspbian Stretch: Raspberry Pi is wonderlik om veilige draadlose toegangspunte te skep, maar dit het nie 'n goeie bereik nie; ek het 'n TP Link WN7200ND USB draadlose adapter gebruik om dit uit te brei. Ek wil deel hoe om dit te doen Hoekom wil ek 'n framboos pi in plaas van 'n router gebruik? T
DIY draadlose mikrofoon na draadlose kitaarstelsel: 4 stappe
DIY draadlose mikrofoon na draadlose kitaarstelsel: ek het 'n paar videos en 'n paar bands gekyk, en byna 'n draadlose stelsel op kitaar. Word mal, beweeg, loop en doen wat hulle wil sonder die koord, so ek droom daarvan om een te hê .. Maar .. vir my is dit nou te duur, so ek het hierop gekom
Hack 'n draadlose deurklokkie in 'n draadlose alarmskakelaar of aan/uit -skakelaar: 4 stappe
Hack 'n draadlose deurklokkie in 'n draadlose alarmskakelaar of aan/uit -skakelaar: ek het onlangs 'n alarmstelsel gebou en dit in my huis geïnstalleer. Ek het magnetiese skakelaars op die deure gebruik en deur die solder vasgemaak. Die vensters was 'n ander storie en harde bedrading was nie 'n opsie nie. Ek het 'n draadlose oplossing nodig gehad, en dit is