Innehållsförteckning:
- Steg 1: Komponenter
- Steg 2: Serverkort
- Steg 3: Serverkodare: Kopiera och klistra in
- Steg 4: Client Board
- Steg 5: Klientkod: Kopiera och klistra in
- Steg 6: En kommentar om koden:
Video: Trådlös servokontroll: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Detta projekt styr rotationen av en servo trådlöst med hjälp av en potentiometer (vred). Rotationen begränsas till 180 grader.
Steg 1: Komponenter
Detta projekt består av
- 2 Arduino UNO -styrkort med USB -anslutningskabel
- 2 nRF24L01-2,4 GHz RF-sändtagarmoduler (för hjälp med dessa moduler, se
- 2 uttagskort (ryggsäckchips) för nRF24L01
- 1 valfritt Arduino -kompatibelt 328 ProtoShield -prototyputbyggnadskort
- 1 servo
- 1 analog potentiometer
- lödkolv och löd
- tråd
- nåltång
- isolerande omslag, jag använde eltejp
Steg 2: Serverkort
Serverkortet består av en sändtagarmodul, skärmkortet (som bara ansluts direkt till Arduino -kortet) och servon. Jag bestämde mig för att inkludera sköldbrädan för att undvika den klumpiga brödbrädan och ge projektet och en övergripande snyggare finish.
Koden och webbresursen som ingår i komponentlistan beskriver transceivermodulanslutningarna. Jag bestämde mig för att löda anslutningarna istället för att använda tillfälliga anslutningar som i tidigare projekt. Eftersom jag är nybörjare isolerade jag varje lödfog med eltejp (de var inte snygga).
Sköldbrädans stift motsvarar direkt Arduino -stiften. Innan jag fäst skärmskivan anslöt jag marken och 5 volt stiften till brädans skenor med tråd och löd. Jag lödde också komponenternas 5 volts och jordledningar till skärmskensskenorna och fäst sedan äntligen Arduino på skärmkortet.
Servon är ansluten till 3 volts stift för ström och digital stift 2 för kommunikation.
** Observera: först efter att jag hade slutfört detta bygge märkte jag att mina Arduino -brädor inte är identiska. Min servertransceiver drivs av 5 volts skenan på skärmkortet, medan klienttransceivern drivs av 3 volts stift, även om jag har fått förmodan att tro att en funktion av adapterchipet på transceivern är att ge rätt spänning. Allt jag kan säga är att koden som matchas med konfigurationen som visas på bilderna ger den beskrivna effekten.
Steg 3: Serverkodare: Kopiera och klistra in
// SERVERKOD/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Används inte GND> GND VCC> 5V */// transceiverkablar
#omfatta
// servobibliotek
#omfatta
// transceiverbibliotek
#define Servopin 2
// deklaration servo utgångsstift
ServoTimer2 serv;
// deklaration av servonamn
RH_NRF24 nrf24;
// deklaration av mottagarens namn
int timeOUT = 0;
// variabel för servo
int pulser = 90;
// variabel för att lagra pulser
void setup ()
{serv.attach (Servopin); // servo grejer
Serial.begin (9600); // transceiver grejer
om (! nrf24.init ())
Serial.println ("init misslyckades"); // seriell bildskärm om (! nrf24.setChannel (12)) // ställer in kanalen på 125 Serial.println ("setChannel misslyckades"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF misslyckades"); // seriell bildskärmsgrej}
void loop ()
{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // seriell bildskärm {Serial.print ("fick begäran:"); pulser = strtol ((const char*) buf, NULL, 10); // datatyp ändra saker
int prin = map (pulser, 750, 2250, 0, 180); // datatyp ändra saker
Serial.println (prin); serv.write (pulser); // får servo att röra sig}}
}
Steg 4: Client Board
Klientkortet består av en sändtagarmodul och potentiometern. Sändtagarmodulen är ansluten på samma sätt ** som serverkortet med undantag för att den utan skärmkortet är ansluten direkt till Arduino -kortets stift.
Potentiometern tar 5v, jordad och är ansluten till analog stift 2.
** Obs! Som nämnts i serverkortsteget är mina Arduino -kort inte identiska. I det här fallet är mottagaren ansluten till stiftet märkt 3.3V, direkt intill 5V -stiftet, men igen verkar allt fungera bra.
Steg 5: Klientkod: Kopiera och klistra in
// KUNDKOD/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Används inte GND> GND VCC> 5V */// transceiverkablar
#omfatta
// transceiverbibliotek
int potpin = A2; // potentiometerdelning
int val;
char tempChar [5];
String valString = ""; // datatyp ändra saker
RH_NRF24 nrf24; // transceiver grejer
void setup ()
{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init misslyckades"); // Standardvärdena efter init är 2.402 GHz (kanal 2), 2Mbps, 0dBm if (! Nrf24.setChannel (12)) Serial.println ("setChannel misslyckades"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF misslyckades"); } // transceiver grejer
void loop () {
val = analogRead (potpin); // potentiometer grejer
val = map (val, 0, 1023, 750, 2250);
valString = val; String str = (valString); str.toCharArray (tempChar, 5); // datatyp ändra saker nrf24.send (tempChar, sizeof (tempChar));
}
Steg 6: En kommentar om koden:
Koden innehåller vissa begränsade felsökningsfunktioner i form av feedback från den seriella bildskärmen i Arduino -gränssnittet. När du ser den seriella bildskärmen från SERVER -koden (ctrl + shift + M) bör du kunna se potentiometerns tillstånd i form av ett tal mellan 1 och 180.
Här är också biblioteket för det trådlösa och servot:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Rekommenderad:
Trådlös Arduino -robot med HC12 trådlös modul: 7 steg
Trådlös Arduino -robot som använder HC12 trådlös modul: Hej killar, välkommen tillbaka. I mitt förra inlägg förklarade jag vad en H Bridge Circuit är, L293D motorförare IC, piggybacking L293D Motorförare IC för att köra högströmsmotordrivrutiner och hur du kan designa och göra din egen L293D -motorförarkort,
Hexapod Arduino Pololu Maestro Servokontroll: 11 steg
Hexapod Arduino Pololu Maestro Servo Controll: Nach dem mein erster Versuch mit einem Hexapod, daran gescheitert war das die servos zu schwach were jetzt ein new Versuch mit with 10Kg Servos aus HK. Ausserdem habe ich mich für ein neuen Sevocontroller von Pololu entschieden
Servokontroll med NodeMCU och Blynk - i IOT -plattform: 3 steg
Servokontroll med NodeMCU och Blynk | i IOT -plattform: I den här självstudien kan du styra din servo med hjälp av Blynk -appen i IOT -plattformen
Femtio meter trådlös åtkomstpunkt med TP Link WN7200ND trådlös USB -adapter på Raspbian -stretch: 6 steg
Femtio meter trådlös åtkomstpunkt med TP Link WN7200ND trådlös USB -adapter på Raspbian Stretch: Raspberry Pi är bra att skapa säkra trådlösa åtkomstpunkter men det har inte ett bra utbud, jag använde en TP Link WN7200ND trådlös adapter för att förlänga den. Jag vill dela hur jag gör det Varför vill jag använda en hallon pi istället för en router? T
Hacka en trådlös dörrklocka till en trådlös larmströmbrytare eller strömbrytare: 4 steg
Hacka en trådlös dörrklocka till en trådlös larmströmbrytare eller strömbrytare: Jag byggde nyligen ett larmsystem och installerade det i mitt hus. Jag använde magnetbrytare på dörrarna och kopplade dem via vinden. Fönstren var en annan historia och hårda kablar var inte ett alternativ. Jag behövde en trådlös lösning och det här är