Inhaltsverzeichnis:
- Schritt 1: Komponenten
- Schritt 2: Serverplatine
- Schritt 3: Server Coder: Kopieren und Einfügen
- Schritt 4: Kundenboard
- Schritt 5: Kundencode: Kopieren und Einfügen
- Schritt 6: Eine Anmerkung zum Code:
Video: Drahtlose Servosteuerung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Dieses Projekt steuert die Drehung eines Servos drahtlos mittels eines Potentiometers (Knopf). Die Drehung ist auf 180 Grad beschränkt.
Schritt 1: Komponenten
Dieses Projekt besteht aus
- 2 Arduino UNO-Controller-Boards mit USB-Anschlusskabel
- 2 nRF24L01 – 2,4 GHz HF-Transceiver-Module (Hilfe zu diesen Modulen finden Sie unter
- 2 Sockeladapterplatinen (Rucksackchips) für den nRF24L01
- 1 optionales Arduino-kompatibles 328 ProtoShield Prototyp-Erweiterungsboard
- 1 Servo
- 1 analoges Potentiometer
- Lötkolben und Lötzinn
- Kabel
- Spitzzange
- Isolierfolie, ich habe Isolierband verwendet
Schritt 2: Serverplatine
Die Serverplatine besteht aus einem Transceiver-Modul, der Shield-Platine (die nur in eine Richtung direkt mit der Arduino-Platine verbunden ist) und dem Servo. Ich beschloss, das Schildbrett einzubeziehen, um das ungeschickte Steckbrett zu vermeiden und dem Projekt und dem insgesamt ordentlicheren Finish zu verleihen.
Der Code und die Web-Ressource, die in der Komponentenliste enthalten sind, beschreiben die Verbindungen des Transceiver-Moduls. Ich beschloss, die Verbindungen zu löten, anstatt wie in früheren Projekten temporäre Verbindungen zu verwenden. Da ich Anfänger bin, habe ich jede Lötstelle mit Isolierband isoliert (sie waren nicht schön).
Die Pins der Shield-Platine entsprechen direkt den Arduino-Pins. Vor dem Anbringen der Schirmplatine habe ich die Masse- und 5-Volt-Pins mit Draht und Lötzinn an die Platinenschienen angeschlossen. Ich lötete auch die 5-Volt- und Erdungsdrähte der Komponenten an die Shield-Board-Schienen und befestigte dann schließlich das Arduino an der Shield-Platine.
Das Servo wird an den 3-Volt-Pin für die Stromversorgung und den digitalen Pin 2 für die Kommunikation angeschlossen.
** Hinweis: Erst nach Abschluss dieses Builds habe ich bemerkt, dass meine Arduino-Boards nicht identisch sind. Mein Server-Transceiver wird über die 5-Volt-Schiene auf der Abschirmplatine mit Strom versorgt, während der Client-Transceiver über den 3-Volt-Pin mit Strom versorgt wird, obwohl ich glaube, dass eine Funktion des Adapterchips auf dem Transceiver darin besteht, die richtige Spannung bereitzustellen. Ich kann nur mit Sicherheit sagen, dass der mitgelieferte Code in Übereinstimmung mit der in den Bildern gezeigten Konfiguration den beschriebenen Effekt erzeugt.
Schritt 3: Server Coder: Kopieren und Einfügen
//SERVERCODE/* NRF24L01 Arduino CE > D8 CSN > D10 SCK > D13 MO > D11 MI > D12 RO > Nicht verwendet GND > GND VCC > 5V */ // Transceiver-Verkabelung
#enthalten
// Servobibliothek
#enthalten
// Transceiver-Bibliothek
#define Servopin 2
// Erklärung Servoausgangspin
ServoTimer2-Serv;
// Deklaration des Servonamens
RH_NRF24 nrf24;
//Angabe des Transceivernamens
int timeOUT = 0;
// variabel für Servo
int-Impulse = 90;
// variabel zum Speichern von Impulsen
Void-Setup ()
{ serv.attach (Servopin); // Servo-Zeug
Serial.begin (9600); // Transceiver-Zeug
if (!nrf24.init())
Serial.println ("Init fehlgeschlagen"); // serielles Monitormaterial if (! nrf24.setChannel (12)) // Kanal auf 125 setzen Serial.println ("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF failed"); // serieller Monitor Zeug}
Leere Schleife ()
{ if (nrf24.available()) { uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof(buf); if (nrf24.recv (buf, &len)) // serieller Monitor Zeug {Serial.print ("erhaltene Anfrage:"); Impulse = strtol((const char*)buf, NULL, 10); //Datentyp ändern Zeug
int prin = map(Impulse, 750, 2250, 0, 180); //Datentyp ändern Zeug
Serial.println (prin); serv.write (Impulse); // macht Servobewegung}}
}
Schritt 4: Kundenboard
Das Clientboard besteht aus einem Transceiver-Modul und dem Potentiometer. Das Transceiver-Modul ist genauso verdrahtet** wie die Serverplatine, mit der Ausnahme, dass es ohne die Abschirmplatine direkt mit den Pins der Arduino-Platine verdrahtet ist.
Das Potentiometer benötigt 5V, Masse und ist mit dem analogen Pin 2 verbunden.
** Hinweis: Wie im Serverboard-Schritt erwähnt, sind meine Arduino-Boards nicht identisch. In diesem Fall ist der Transceiver mit dem Pin mit der Bezeichnung 3.3V verbunden, direkt neben dem 5V-Pin, aber auch hier scheint alles gut zu funktionieren.
Schritt 5: Kundencode: Kopieren und Einfügen
// KUNDENCODE/* NRF24L01 Arduino CE > D8 CSN > D10 SCK > D13 MO > D11 MI > D12 RO > Nicht verwendet GND > GND VCC > 5V */ // Transceiver-Verkabelung
#enthalten
//Transceiver-Bibliothek
int Potpin = A2; // Potentiometerverzögerung
int-Wert;
char tempChar[5];
String valString = ""; //Datentyp ändern Zeug
RH_NRF24 nrf24; // Transceiver-Zeug
Void-Setup ()
{ Serial.begin (9600); if (!nrf24.init()) Serial.println("init fehlgeschlagen"); // Standardwerte nach Init sind 2,402 GHz (Kanal 2), 2Mbps, 0dBm if (!nrf24.setChannel(12)) Serial.println("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF failed"); } // Transceiver-Zeug
Leere Schleife () {
val = analogRead (Potpin); // Potentiometer-Zeug
val = map(val, 0, 1023, 750, 2250);
WertString = Wert; String str = (valString); str.toCharArray(tempChar, 5); //Datentyp ändern Sachen nrf24.send(tempChar, sizeof(tempChar));
}
Schritt 6: Eine Anmerkung zum Code:
Der Code enthält einige eingeschränkte Fehlerbehebungsfunktionen in Form von Rückmeldungen vom seriellen Monitor in der Arduino-Softwareschnittstelle. Wenn Sie den seriellen Monitor über den SERVER-Code (Strg + Umschalt + M) anzeigen, sollten Sie den Zustand des Potentiometers in Form einer Zahl zwischen 1 und 180 sehen können.
Hier ist auch die Bibliothek für das Wireless und das Servo:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Empfohlen:
Drahtlose Kopfhörer Teil 2: 3 Schritte
Drahtlose Kopfhörer Teil 2: Für dieses Upgrade verwenden:Neue Bluetooth-EmpfängerTastenDrähte können aus Twisted Pair entnommen werden
Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2: 4 Schritte (mit Bildern)
Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2: Im ersten Teil dieser Anleitung habe ich gezeigt, wie man einen PIC12F1822 mit MPLAB IDE und XC8-Compiler programmiert, um einen einfachen String drahtlos mit billigen TX / RX 433 MHz-Modulen zu senden. Das Empfängermodul wurde über einen USB mit UART TTL verbunden Kabel-Werbung