תוכן עניינים:

בקרת סרוו אלחוטית: 6 שלבים
בקרת סרוו אלחוטית: 6 שלבים

וִידֵאוֹ: בקרת סרוו אלחוטית: 6 שלבים

וִידֵאוֹ: בקרת סרוו אלחוטית: 6 שלבים
וִידֵאוֹ: מדידת מתח באמצעות ארדואינו - Arduino Voltmeter 2024, נוֹבֶמבֶּר
Anonim
בקרת סרוו אלחוטית
בקרת סרוו אלחוטית
בקרת סרוו אלחוטית
בקרת סרוו אלחוטית

פרויקט זה שולט על סיבוב סרוו באופן אלחוטי באמצעות פוטנציומטר (כפתור). הסיבוב מוגבל ל -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

מוּמלָץ: