Innholdsfortegnelse:
- Trinn 1: Komponenter
- Trinn 2: Serverkort
- Trinn 3: Serverkoder: Kopier og lim inn
- Trinn 4: Klientbrett
- Trinn 5: Klientkode: Kopier og lim inn
- Trinn 6: En merknad om koden:
Video: Trådløs servokontroll: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Dette prosjektet styrer rotasjonen av en servo trådløst ved hjelp av et potensiometer (knott). Rotasjonen er begrenset til 180 grader.
Trinn 1: Komponenter
Dette prosjektet består av
- 2 Arduino UNO -kontrollerkort med USB -kontaktkabel
- 2 nRF24L01-2,4 GHz RF-mottakermoduler (for hjelp med disse modulene, se
- 2 adapterkort (sokkelbrikker) for nRF24L01
- 1 valgfritt Arduino -kompatibelt 328 ProtoShield Prototype -utvidelseskort
- 1 servo
- 1 analogt potensiometer
- loddejern og loddetinn
- metalltråd
- nåletang
- isolerende vikle, jeg brukte elektrisk tape
Trinn 2: Serverkort
Serverkortet består av en transceivermodul, skjermkortet (som bare kobles direkte til Arduino -kortet) og servoen. Jeg bestemte meg for å inkludere skjoldbrettet for å unngå det klønete brødbrettet og gi prosjektet og den generelle finere finishen.
Koden og nettressursen som er inkludert i komponentlisten, beskriver transceivermodulforbindelsene. Jeg bestemte meg for å lodde tilkoblingene i stedet for å bruke midlertidige tilkoblinger som i tidligere prosjekter. Siden jeg er nybegynner, isolerte jeg hver loddeskjøte med elektrisk tape (de var ikke pene).
Skjoldbrettets pins samsvarer direkte med Arduino -pinnene. Før jeg festet skjoldbrettet, koblet jeg bakken og 5 volt pinner til brettskinnene med ledning og loddetinn. Jeg loddet også komponentenes 5 volt og jordledninger til skjoldbrettets skinner, og festet deretter Arduino til slutt på skjermkortet.
Servoen er festet til 3 volt -pinnen for strøm og digital pin 2 for kommunikasjon.
** Merk: først etter å ha fullført denne bygningen la jeg merke til at Arduino -brettene mine ikke er identiske. Server -mottakeren min drives av 5 volt -skinnen på skjermkortet, mens klient -transceiveren drives av 3 volt -pin, selv om jeg har blitt antatt at en funksjon av adapterbrikken på transceiveren er å gi riktig spenning. Alt jeg kan si med sikkerhet er at koden som følger med konfigurasjonen som vises på bildene gir den beskrevne effekten.
Trinn 3: Serverkoder: Kopier og lim inn
// SERVERKODE/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ikke brukt GND> GND VCC> 5V */// transceiver ledninger
#inkludere
// servobibliotek
#inkludere
// transceiverbibliotek
#define Servopin 2
// erklæring servo utgangspinne
ServoTimer2 serv;
// erklæring om servonavn
RH_NRF24 nrf24;
// erklæring om mottakerens navn
int timeOUT = 0;
// variabel for servo
int pulser = 90;
// variabel for å lagre pulser
ugyldig oppsett ()
{serv.attach (Servopin); // servo ting
Serial.begin (9600); // transceiver ting
hvis (! nrf24.init ())
Serial.println ("init mislyktes"); // seriell monitor ting hvis (! nrf24.setChannel (12)) // sett kanal til 125 Serial.println ("setChannel mislyktes"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF mislyktes"); // seriell monitor ting}
hulrom ()
{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // seriell skjerm ting {Serial.print ("fikk forespørsel:"); pulser = strtol ((const char*) buf, NULL, 10); // data type endre ting
int prin = kart (pulser, 750, 2250, 0, 180); // endring av datatype
Serial.println (prin); serv.write (pulser); // får servo til å bevege seg}}
}
Trinn 4: Klientbrett
Klientkortet består av en mottakermodul og potensiometeret. Transceivermodulen er koblet på samme måte ** som serverkortet, med unntak av at den uten skjermkortet er koblet direkte til Arduino -kortpinnene.
Potensiometeret tar 5v, jordet, og er koblet til analog pin 2.
** Merk: Som nevnt i serverkort -trinnet er ikke mine Arduino -kort identiske. I dette tilfellet er mottakeren koblet til pinnen merket 3.3V, rett ved siden av 5V -pinnen, men igjen ser det ut til at alt fungerer bra.
Trinn 5: Klientkode: Kopier og lim inn
// KLIENTKODE/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ikke brukt GND> GND VCC> 5V */// transceiver ledninger
#inkludere
// transceiverbibliotek
int potpin = A2; // potensiometer deler
int val;
char tempChar [5];
String valString = ""; // endring av datatype
RH_NRF24 nrf24; // transceiver ting
ugyldig oppsett ()
{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init mislyktes"); // Standardinnstillinger etter init er 2,402 GHz (kanal 2), 2 Mbps, 0dBm hvis (! Nrf24.setChannel (12)) Serial.println ("setChannel mislyktes"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF mislyktes"); } // transceiver ting
void loop () {
val = analogRead (potpin); // potensiometer ting
val = kart (val, 0, 1023, 750, 2250);
valString = val; String str = (valString); str.toCharArray (tempChar, 5); // datatype endre ting nrf24.send (tempChar, sizeof (tempChar));
}
Trinn 6: En merknad om koden:
Koden inneholder noen begrensede feilsøkingsfunksjoner i form av tilbakemelding fra den serielle skjermen i Arduino -programvaregrensesnittet. Når du ser på den serielle skjermen fra SERVER -koden (ctrl + shift + M), bør du kunne se potensiometerets tilstand i form av et tall mellom 1 og 180.
Her er også biblioteket for det trådløse og servoen:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Anbefalt:
Bolt - DIY trådløs ladingsklokke (6 trinn): 6 trinn (med bilder)
Bolt - DIY Trådløs ladingsklokke (6 trinn): Induktive ladninger (også kjent som trådløs lading eller trådløs lading) er en type trådløs kraftoverføring. Den bruker elektromagnetisk induksjon for å levere strøm til bærbare enheter. Den vanligste applikasjonen er Qi trådløs ladestasjon
Trådløs Arduino -robot ved bruk av HC12 trådløs modul: 7 trinn
Trådløs Arduino -robot som bruker HC12 trådløs modul: Hei folkens, velkommen tilbake. I mitt forrige innlegg forklarte jeg hva en H Bridge Circuit er, L293D motordriver IC, piggybacking L293D Motordriver IC for å kjøre motorer med høy strøm og hvordan du kan designe og lage ditt eget L293D motorførerkort
Hexapod Arduino Pololu Maestro Servokontroll: 11 trinn
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 neuer Versuch mit with 10Kg Servos aus HK. Ausserdem habe ich mich für ein neuen Sevocontroller von Pololu entschieden
Servokontroll med NodeMCU og Blynk - i IOT -plattform: 3 trinn
Servokontroll med NodeMCU og Blynk | i IOT Platform: I denne opplæringen kan du kontrollere servoen din ved hjelp av Blynk -appen i IOT Platform
Hack en trådløs dørklokke til en trådløs alarmbryter eller av/på -bryter: 4 trinn
Hack en trådløs dørklokke til en trådløs alarmbryter eller på/av -bryter: Jeg har nylig bygget et alarmsystem og installert det i huset mitt. Jeg brukte magnetiske brytere på dørene og koblet dem gjennom loftet. Vinduene var en annen historie, og harde ledninger var ikke et alternativ. Jeg trengte en trådløs løsning, og dette er