Indholdsfortegnelse:
- Trin 1: Komponenter
- Trin 2: Serverkort
- Trin 3: Serverkoder: Kopier og indsæt
- Trin 4: Client Board
- Trin 5: Klientkode: Kopier og indsæt
- Trin 6: En note om koden:
Video: Trådløs servokontrol: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Dette projekt styrer rotationen af en servo trådløst ved hjælp af et potentiometer (knap). Rotationen er begrænset til 180 grader.
Trin 1: Komponenter
Dette projekt består af
- 2 Arduino UNO controller boards med USB stik kabel
- 2 nRF24L01-2,4 GHz RF transceiver moduler (for hjælp med disse moduler henvises til
- 2 adapterkort (stik til rygsække) til nRF24L01
- 1 valgfrit Arduino -kompatibelt 328 ProtoShield Prototype -udvidelseskort
- 1 servo
- 1 analogt potentiometer
- loddejern og lodde
- tråd
- nåletænger
- isolerende indpakning, brugte jeg elektrisk tape
Trin 2: Serverkort
Serverkortet består af et transceivermodul, afskærmningskortet (som kun kan forbindes direkte til Arduino -kortet) og servoen. Jeg besluttede at inkludere skjoldbrættet for at undgå det klodsede brødbræt og give projektet og den overordnede pænere finish.
Koden og webressourcen på komponentlisten beskriver transceivermodulforbindelserne. Jeg besluttede at lodde forbindelserne i stedet for at bruge midlertidige forbindelser som i tidligere projekter. Da jeg er nybegynder, isolerede jeg hver loddemuffe med elektrisk tape (de var ikke smukke).
Skærmpladestifterne svarer direkte til Arduino -benene. Inden jeg satte skærmkortet på, tilsluttede jeg jorden og 5 volt stifterne til brædderne med tråd og lodning. Jeg lodde også komponenternes 5 volt og jordledninger til skjoldbrettets skinner, og slutteligt sluttede jeg Arduino til skjoldbrættet.
Servoen er fastgjort til 3 volt pin til strøm og digital pin 2 til kommunikation.
** Bemærk: først efter at have afsluttet denne build, bemærkede jeg, at mine Arduino -tavler ikke er identiske. Min server transceiver drives af 5 volts skinnen på skjoldkortet, mens klient transceiveren drives af 3 volt pin, selvom jeg er blevet ført til at tro, at en funktion af adapterchippen på transceiveren er at levere den korrekte spænding. Alt jeg kan sige med sikkerhed er, at den leverede kode matchede den konfiguration, der vises på billederne, frembringer den beskrevne effekt.
Trin 3: Serverkoder: Kopier og indsæt
// SERVERKODE/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ikke brugt GND> GND VCC> 5V */// transceiver ledninger
#omfatte
// servobibliotek
#omfatte
// transceiver bibliotek
#define Servopin 2
// erklæring servo output pin
ServoTimer2 serv;
// erklæring om servonavn
RH_NRF24 nrf24;
// erklæring om transceivernavn
int timeOUT = 0;
// variabel til servo
int pulser = 90;
// variabel til lagring af impulser
ugyldig opsætning ()
{serv.attach (Servopin); // servo ting
Serial.begin (9600); // transceiver ting
hvis (! nrf24.init ())
Serial.println ("init mislykkedes"); // serielle monitor -ting, hvis (! nrf24.setChannel (12)) // indstil kanal til 125 Serial.println ("setChannel mislykkedes"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF mislykkedes"); // seriel monitor ting}
hulrum ()
{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // seriel monitor -ting {Serial.print ("fik forespørgsel:"); pulser = strtol ((const char*) buf, NULL, 10); // datatype ændre ting
int prin = map (pulser, 750, 2250, 0, 180); // datatype ændre ting
Serial.println (prin); serv.write (impulser); // får servo til at bevæge sig}}
}
Trin 4: Client Board
Klientkortet består af et transceivermodul og potentiometeret. Transceivermodulet er forbundet på samme måde ** som serverkortet med den undtagelse, at det uden afskærmningskortet er forbundet direkte til Arduino -kortets ben.
Potentiometeret tager 5v, jordet og er forbundet til analog pin 2.
** Bemærk: Som nævnt i serverkortets trin er mine Arduino -kort ikke identiske. I dette tilfælde er transceiveren forbundet til stiften mærket 3,3V, direkte ved siden af 5V -stiften, men igen ser alt ud til at fungere fint.
Trin 5: Klientkode: Kopier og indsæt
// KUNDEKODE/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ikke brugt GND> GND VCC> 5V */// transceiver ledninger
#omfatte
// transceiver bibliotek
int potpin = A2; // potentiometer dele
int val;
char tempChar [5];
String valString = ""; // datatype ændre ting
RH_NRF24 nrf24; // transceiver ting
ugyldig opsætning ()
{Serial.begin (9600); hvis (! nrf24.init ()) Serial.println ("init mislykkedes"); // Standardværdier efter init er 2.402 GHz (kanal 2), 2Mbps, 0dBm hvis (! Nrf24.setChannel (12)) Serial.println ("setChannel mislykkedes"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF mislykkedes"); } // transceiver -ting
void loop () {
val = analogRead (potpin); // potentiometer ting
val = kort (val, 0, 1023, 750, 2250);
valString = val; String str = (valString); str.toCharArray (tempChar, 5); // datatype ændre ting nrf24.send (tempChar, sizeof (tempChar));
}
Trin 6: En note om koden:
Koden indeholder en begrænset fejlfindingsfunktion i form af feedback fra den serielle skærm i Arduino -softwaregrænsefladen. Når du ser den serielle skærm fra SERVER -koden (ctrl + shift + M), skal du kunne se potentiometerets tilstand i form af et tal mellem 1 og 180.
Her er også biblioteket til det trådløse og servoen:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Anbefalede:
Sådan laver du en trådløs dåse-telefon! (Arduino Walkie Talkie): 7 trin (med billeder)
Sådan laver du en trådløs dåse-telefon! (Arduino Walkie Talkie): Lige forleden var jeg midt i et meget vigtigt telefonopkald, da min banantelefon holdt op med at fungere! Jeg var så frustreret. Det er sidste gang, jeg savner et opkald på grund af den dumme telefon! (Set i bakspejlet er jeg måske blevet lidt for sur i
Bolt - DIY trådløs opladning natur (6 trin): 6 trin (med billeder)
Bolt - DIY trådløs opladning natur (6 trin): Induktive opladninger (også kendt som trådløs opladning eller trådløs opladning) er en form for trådløs strømoverførsel. Det bruger elektromagnetisk induktion til at levere strøm til bærbare enheder. Den mest almindelige applikation er Qi trådløs opladning
Servokontrol med NodeMCU og Blynk - i IOT -platform: 3 trin
Servokontrol med NodeMCU og Blynk | i IOT Platform: I denne vejledning kan du styre din servo ved hjælp af Blynk -appen i IOT Platform
Hack en trådløs dørklokke i en trådløs alarmkontakt eller tænd/sluk -kontakt: 4 trin
Hack en trådløs dørklokke i en trådløs alarmkontakt eller tænd/sluk -kontakt: Jeg har for nylig bygget et alarmsystem og installeret det i mit hus. Jeg brugte magnetiske afbrydere på dørene og fastsluttede dem gennem loftet. Vinduerne var en anden historie, og hårde ledninger var ikke en mulighed. Jeg havde brug for en trådløs løsning, og dette er
Konverter trådløs router til trådløs forlænger 2x adgangspunkt: 5 trin
Konverter trådløs router til trådløs forlænger 2x adgangspunkt: Jeg havde en dårlig trådløs internetforbindelse i mit hus på grund af en RSJ (metalstøttebjælke i loftet) og ville øge signalet eller tilføje en ekstra forlænger til resten af huset. Jeg havde set forlængere til omkring 50 pund i en elektro