Πίνακας περιεχομένων:

Ασύρματο σερβο ελέγχου: 6 βήματα
Ασύρματο σερβο ελέγχου: 6 βήματα

Βίντεο: Ασύρματο σερβο ελέγχου: 6 βήματα

Βίντεο: Ασύρματο σερβο ελέγχου: 6 βήματα
Βίντεο: 6 (+κάτι) πράγματα που δεν ξέρεις για το Apple Watch! | 2022 Apple Watch Tips 2024, Νοέμβριος
Anonim
Ασύρματο σερβο ελέγχου
Ασύρματο σερβο ελέγχου
Ασύρματο σερβο ελέγχου
Ασύρματο σερβο ελέγχου

Αυτό το έργο ελέγχει την περιστροφή ενός σερβο ασύρματα μέσω ενός ποτενσιόμετρου (κουμπί). Η περιστροφή περιορίζεται σε 180 μοίρες.

Βήμα 1: Στοιχεία

Συστατικά
Συστατικά
Συστατικά
Συστατικά
Συστατικά
Συστατικά

Το έργο αυτό αποτελείται από

  • 2 πίνακες ελέγχου Arduino UNO με καλώδιο σύνδεσης USB
  • 2 μονάδες πομποδέκτη nRF24L01-2.4GHz (για βοήθεια με αυτές τις ενότητες ανατρέξτε στη διεύθυνση
  • 2 πλακέτες προσαρμογέα πρίζας (τσιπ σακιδίων) για το nRF24L01
  • 1 προαιρετικό Arduino Compatible 328 ProtoShield Prototype Expansion Board
  • 1 σερβο
  • 1 αναλογικό ποτενσιόμετρο
  • συγκόλληση και συγκόλληση
  • σύρμα
  • πένσα με μύτη βελόνας
  • μονωτικό περιτύλιγμα, χρησιμοποίησα ηλεκτρική ταινία

Βήμα 2: Πίνακας διακομιστή

Πίνακας διακομιστή
Πίνακας διακομιστή

Ο πίνακας διακομιστή αποτελείται από μια μονάδα πομποδέκτη, την πλακέτα ασπίδας (η οποία συνδέεται απευθείας με την πλακέτα Arduino μόνο με έναν τρόπο) και το σερβο. Αποφάσισα να συμπεριλάβω τον πίνακα ασπίδων για να αποφύγω την αδέξια πλάκα ψωμιού και να δώσω το έργο και το συνολικό πιο καθαρό φινίρισμα.

Ο κώδικας και ο πόρος ιστού που περιλαμβάνονται στη λίστα των στοιχείων περιγράφουν λεπτομερώς τις συνδέσεις της μονάδας πομποδέκτη. Αποφάσισα να κολλήσω τις συνδέσεις αντί να χρησιμοποιήσω προσωρινές συνδέσεις όπως σε προηγούμενα έργα. Δεδομένου ότι είμαι αρχάριος, μονώθηκα κάθε σύνδεσμο συγκόλλησης με ηλεκτρική ταινία (δεν ήταν όμορφα).

Οι πείροι του πίνακα ασπίδων αντιστοιχούν απευθείας στους πείρους Arduino. Πριν συνδέσω τον πίνακα θωράκισης, ένωσα τη γείωση και τους πείρους 5Volt στις ράγες του σκάφους με σύρμα και συγκόλληση. Συγκόλλησα επίσης τα καλώδια 5Volt και γείωσης των εξαρτημάτων στις ράγες του πίνακα ασπίδας, και στη συνέχεια συνδέσα το Arduino με τον πίνακα ασπίδας.

Το σερβο είναι συνδεδεμένο στον πείρο 3Volt για τροφοδοσία και τον ψηφιακό ακροδέκτη 2 για επικοινωνία.

** Σημείωση: μόνο μετά την ολοκλήρωση αυτής της κατασκευής παρατήρησα ότι οι πίνακες Arduino μου δεν είναι ίδιοι. Ο πομποδέκτης του διακομιστή μου τροφοδοτείται από τη ράγα 5Volt στην πλακέτα ασπίδας, ενώ ο πομποδέκτης πελάτη τροφοδοτείται από τον ακροδέκτη 3volt, αν και πιστεύω ότι η λειτουργία του τσιπ προσαρμογέα στον πομποδέκτη είναι να παρέχει την κατάλληλη τάση. Το μόνο που μπορώ να πω με βεβαιότητα είναι ότι ο παρεχόμενος κώδικας που ταιριάζει με τη διαμόρφωση που εμφανίζεται στις εικόνες παράγει το περιγραφόμενο αποτέλεσμα.

Βήμα 3: Κωδικοποιητής διακομιστή: Αντιγραφή και επικόλληση

// SERVER CODE/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Δεν χρησιμοποιείται GND> GND VCC> 5V */// καλωδίωση πομποδέκτη

#περιλαμβάνω

// σερβο βιβλιοθήκη

#περιλαμβάνω

// βιβλιοθήκη πομποδέκτη

#define Servopin 2

// καρφίτσα σερβο εξόδου δήλωσης

ServoTimer2 σερβ.

// δήλωση ονόματος servo

RH_NRF24 nrf24;

// δήλωση ονόματος πομποδέκτη

int timeOUT = 0;

// μεταβλητή για servo

int παλμοί = 90;

// μεταβλητή για αποθήκευση παλμών

void setup ()

{serv.attach (Servopin); // σερβο υλικό

Serial.begin (9600); // υλικό πομποδέκτη

εάν (! nrf24.init ())

Serial.println ("η αποτυχία του init"); // σειριακό υλικό παρακολούθησης εάν (! nrf24.setChannel (12)) // ορίσετε το κανάλι σε 125 Serial.println ("setChannel απέτυχε"); εάν (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF απέτυχε"); // σειριακά στοιχεία παρακολούθησης}

κενός βρόχος ()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // σειριακά στοιχεία παρακολούθησης {Serial.print ("πήρα αίτημα:"); παλμοί = strtol ((const char*) buf, NULL, 10); // αλλαγή τύπων δεδομένων

int prin = χάρτης (παλμοί, 750, 2250, 0, 180); // αλλαγή τύπων δεδομένων

Serial.println (prin); serv.write (παλμοί); // κάνει κίνηση σερβο}}

}

Βήμα 4: Πίνακας πελατών

Πίνακας πελατών
Πίνακας πελατών

Η πλακέτα πελάτη αποτελείται από μια μονάδα πομποδέκτη και το ποτενσιόμετρο. Η μονάδα πομποδέκτη είναι συνδεδεμένη με τον ίδιο τρόπο ** με την πλακέτα διακομιστή, με την εξαίρεση ότι χωρίς την πλακέτα ασπίδας, συνδέεται απευθείας στις καρφίτσες της πλακέτας Arduino.

Το ποτενσιόμετρο παίρνει 5v, γειώνεται και συνδέεται με την αναλογική ακίδα 2.

** Σημείωση: όπως αναφέρεται στο βήμα της πλακέτας διακομιστή, οι πίνακες Arduino μου δεν είναι ίδιοι. Σε αυτήν την περίπτωση, ο πομποδέκτης συνδέεται με τον πείρο με την ένδειξη 3.3V, ακριβώς δίπλα στον πείρο των 5V, αλλά και πάλι, όλα δείχνουν να λειτουργούν καλά.

Βήμα 5: Κωδικός πελάτη: Αντιγραφή και επικόλληση

// ΚΩΔΙΚΟΣ ΠΕΛΑΤΗ/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Δεν χρησιμοποιείται GND> GND VCC> 5V */// καλωδίωση πομποδέκτη

#περιλαμβάνω

// βιβλιοθήκη πομποδέκτη

int potpin = A2; // παραβίαση ποτενσιόμετρου

int val?

char tempChar [5];

String valString = ""; // αλλαγή τύπων δεδομένων

RH_NRF24 nrf24; // υλικό πομποδέκτη

void setup ()

{Serial.begin (9600); εάν (! nrf24.init ()) Serial.println ("η αποτυχία του init"); // Οι προεπιλογές μετά το init είναι 2,402 GHz (κανάλι 2), 2Mbps, 0dBm if (! Nrf24.setChannel (12)) Serial.println ("setChannel απέτυχε"); εάν (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF απέτυχε"); } // υλικό πομποδέκτη

void loop () {

val = analogRead (κατσαρόλα); // υλικό ποτενσιόμετρου

val = χάρτης (val, 0, 1023, 750, 2250);

valString = val; String str = (valString); str.toCharArray (tempChar, 5); // αλλαγή δεδομένων τύπου nrf24.send (tempChar, sizeof (tempChar));

}

Βήμα 6: Σημείωση σχετικά με τον κωδικό:

Ο Κώδικας περιέχει ορισμένες περιορισμένες λειτουργίες αντιμετώπισης προβλημάτων με τη μορφή ανατροφοδότησης από τη σειριακή οθόνη στη διεπαφή λογισμικού Arduino. Κατά την προβολή της σειριακής οθόνης από τον κωδικό SERVER (ctrl + shift + M), θα πρέπει να μπορείτε να δείτε την κατάσταση του ποτενσιόμετρου με τη μορφή ενός αριθμού μεταξύ 1 και 180.

Επίσης, εδώ είναι η βιβλιοθήκη για το ασύρματο και το σερβο:

www.airspayce.com/mikem/arduino/RadioHead/

github.com/nabontra/ServoTimer2

Συνιστάται: