תוכן עניינים:
- שלב 1: רכיבים
- שלב 2: לוח שרתים
- שלב 3: קודן שרת: העתק והדבק
- שלב 4: לוח לקוחות
- שלב 5: קוד לקוח: העתק והדבק
- שלב 6: הערה לגבי הקוד:
וִידֵאוֹ: בקרת סרוו אלחוטית: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
פרויקט זה שולט על סיבוב סרוו באופן אלחוטי באמצעות פוטנציומטר (כפתור). הסיבוב מוגבל ל -180 מעלות.
שלב 1: רכיבים
פרויקט זה מורכב מ
- 2 לוחות בקר UNO Arduino עם כבל מחבר USB
- 2 מודולי משדר RF של nRF24L01-2.4GHz (לעזרה במודולים אלה עיינו ב
- 2 לוחות מתאם לשקע (שבבי תרמיל) ל- nRF24L01
- 1 לוח הרחבה תואם Arduino תואם 328 פרוטו -שילד
- סרוו אחד
- פוטנציומטר אנלוגי אחד
- מלחם והלחמה
- חוּט
- צבת באף מחט
- עטיפת בידוד, השתמשתי בקלטת חשמל
שלב 2: לוח שרתים
לוח השרת מורכב ממודול מקלט -משדרים, לוח המגן (המתחבר ישירות ללוח ה- Arduino רק בדרך אחת) והסרוו. החלטתי לכלול את לוח המגן כדי להימנע מלוח הלחם המגושם ולתת לפרויקט ולגימור מסודר יותר.
הקוד ומשאב האינטרנט הכלולים ברשימת הרכיבים מפרטים את חיבורי מודול המקלט. החלטתי להלחם את החיבורים במקום להשתמש בחיבורים זמניים כמו בפרויקטים קודמים. מכיוון שאני מתחיל, בידדתי כל מפרק הלחמה בעזרת סרט חשמלי (הם לא היו יפים).
סיכות לוח המגן מתאימות ישירות לסיכות הארדואינו. לפני חיבור לוח המגן, חיברתי את הקרקע ואת סיכות 5 וולט למסילות הלוח בעזרת חוט והלחמה. הלחמתי גם את חוטי ה -5 וולט והארקה של הרכיבים למסילות לוח המגן, ולבסוף חיברתי את הארדואינו ללוח המגן.
הסרוו מחובר לסיכה של 3 וולט לחשמל ולפין דיגיטלי 2 לתקשורת.
** הערה: רק לאחר השלמת הבנייה הזו שמתי לב שלוחות ה- Arduino שלי אינן זהות. מקלט השרת שלי מופעל על ידי מסילת 5 וולט בלוח המגן, בעוד ששדר הלקוח מופעל על ידי סיכת 3 וולט, אם כי הובילו אותי להאמין שתפקיד של שבב המתאם על המקלט הוא לספק את המתח הנכון. כל מה שאני יכול לומר בוודאות הוא שהקוד המסופק תואם את התצורה המוצגת בתמונות מייצר את האפקט המתואר.
שלב 3: קודן שרת: העתק והדבק
// קוד שרת/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> לא בשימוש GND> GND VCC> 5V */// חיווט מקלט
#לִכלוֹל
// ספריית סרוו
#לִכלוֹל
// ספריית מקלטים
#define Servopin 2
// סיכת פלט סרוו הצהרה
ServoTimer2 serv;
// הצהרת שם סרוו
RH_NRF24 nrf24;
// הצהרת שם מקלט
int timeOUT = 0;
// משתנה עבור סרוו
int פולסים = 90;
// משתנה לאחסון פולסים
הגדרת חלל ()
{serv.attach (Servopin); // דברים של סרוו
Serial.begin (9600); // דברים של מקלטים
אם (! nrf24.init ())
Serial.println ("init נכשל"); // דברים של צגים סדרתיים אם (! nrf24.setChannel (12)) // הגדירו את הערוץ ל- 125 Serial.println ("setChannel נכשל"); if (! 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 = map (פולסים, 750, 2250, 0, 180); // דברים מסוג שינוי נתונים
Serial.println (prin); serv.write (פולסים); // עושה סרוו לזוז}}
}
שלב 4: לוח לקוחות
לוח הלקוחות מורכב ממודול מקלט ומשדר פוטנציומטר. מודול משדר השידור מחובר באותו אופן ** כמו לוח השרת, למעט כי ללא לוח המגן הוא מחובר ישירות לסיכות הלוח של Arduino.
הפוטנציומטר לוקח 5V, טחון, ומחובר לסיכה 2 אנלוגית.
** הערה: כפי שצוין בשלב לוח השרת, לוחות ה- Arduino שלי אינם זהים. במקרה זה מקלט המשדר מחובר לסיכה שכותרתה 3.3V, צמוד ישירות לסיכה 5V, אך שוב נראה שהכל עובד תקין.
שלב 5: קוד לקוח: העתק והדבק
// CODE CLIENT/ * 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; // דברים של מקלטים
הגדרת חלל ()
{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init נכשל"); // ברירות מחדל לאחר init הן 2.402 GHz (ערוץ 2), 2Mbps, 0dBm אם (! Nrf24.setChannel (12)) Serial.println ("setChannel נכשל"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF נכשל"); } // דברים משדרים
לולאת חלל () {
val = analogRead (סיכה); // חומר פוטנציומטר
val = מפה (val, 0, 1023, 750, 2250);
valString = val; מחרוזת 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
מוּמלָץ:
בקרת גישה לחתולים (ESP8266 + מנוע סרוו + הדפסה תלת -ממדית): 5 שלבים (עם תמונות)
בקרת גישה למזון חתולים (ESP8266 + מנוע סרוו + הדפסה תלת -ממדית): פרויקט זה עובר על התהליך בו השתמשתי ליצירת קערה אוטומטית של מזון לחתולים, עבור החתול הקשיש שלי Chaz. תראה, הוא צריך לאכול ארוחת בוקר לפני שהוא יכול לקבל את האינסולין שלו, אבל לעתים קרובות אני שוכח לאסוף את מנת האוכל שלו לפני שאני הולך לישון, מה שמקלקל
FPGA ציקלון IV DueProLogic פקדי סרוו מנוע סרוו: 4 שלבים
FPGA Cyclone IV DueProLogic פקדי סרוו מנוע סרוו: במדריך זה אנו הולכים לכתוב קוד Verilog לשליטה במנוע סרוו. סרוו SG-90 מיוצר על ידי Waveshare. בעת רכישת מנוע סרוו, יתכן שתקבל גליון נתונים המפרט את מתח ההפעלה, המומנט המרבי ואת הפו המוצע
בקרת סרוו ארדואינו: 6 שלבים
בקרת סרוו ארדואינו: מנועי סרוו כוללים שלושה חוטים: כוח, קרקע ואות. חוט החשמל הוא בדרך כלל אדום, והוא צריך להיות מחובר לסיכה 5V בלוח Arduino. חוט הקרקע הוא בדרך כלל שחור או חום וצריך לחבר אותו לסיכת הארקה על הארדואי
בקרת סרוו של Hexapod Arduino Pololu Maestro: 11 שלבים
Hexapod Arduino Pololu Maestro Control Controller: Nach dem mein erster Versuch mit einem Hexapod, daran gescheitert war das die servos zu schwach were jetzt ein neuer Versuch mit mit 10Kg Servos aus HK. Ausserdem habe ich mich für ein neuen Sevocontroller von Pololu entschieden
בקרת מיטת מיטה אלחוטית MQTT: 5 שלבים (עם תמונות)
בקרת מיטת מיטה אלחוטית מסוג MQTT: לפני כמה שנים רכשנו מיטת קצף זיכרון חדשה וכמו שקורה ברוב המיטות, היה עליך לרכוש גם אחד מבסיסיהם " המאושרים " על מנת לשמור על אחריות. אז בחרנו בבסיס הזול ביותר שכלל גם את