Სარჩევი:
- ნაბიჯი 1: კომპონენტები
- ნაბიჯი 2: სერვერის დაფა
- ნაბიჯი 3: სერვერის კოდიტორი: დააკოპირეთ და ჩასვით
- ნაბიჯი 4: კლიენტების საბჭო
- ნაბიჯი 5: კლიენტის კოდი: დააკოპირეთ და ჩასვით
- ნაბიჯი 6: შენიშვნა კოდის შესახებ:
ვიდეო: უკაბელო სერვო კონტროლი: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ეს პროექტი აკონტროლებს სერვო ბრუნვას უსადენოდ პოტენციომეტრის (ღილაკის) საშუალებით. ბრუნვა შეზღუდულია 180 გრადუსამდე.
ნაბიჯი 1: კომპონენტები
ეს პროექტი შედგება
- 2 Arduino UNO კონტროლერის დაფა USB კონექტორის კაბელით
- 2 nRF24L01-2.4GHz RF გადამცემი მოდული (ამ მოდულებთან დაკავშირებით მიმართეთ
- 2 ბუდე ადაპტერის დაფა (ზურგჩანთა ჩიპი) nRF24L01– ისთვის
- 1 სურვილისამებრ Arduino თავსებადი 328 ProtoShield პროტოტიპის გაფართოების დაფა
- 1 სერვო
- 1 ანალოგური პოტენომეტრი
- soldering რკინის და solder
- მავთული
- ნემსის ცხვირსახოცი
- საიზოლაციო შეფუთვა, მე გამოვიყენე ელექტრო ფირზე
ნაბიჯი 2: სერვერის დაფა
სერვერის დაფა შედგება გადამცემი მოდულისგან, ფარის დაფისგან (რომელიც უერთდება პირდაპირ არდუინოს დაფას მხოლოდ ერთი გზით) და სერვოსგან. მე გადავწყვიტე, რომ ფარის დაფა ჩავრთო მოუხერხებელი პურის დაფის თავიდან ასაცილებლად და პროექტის და საერთო ჯამში უფრო ლამაზი დასრულებისათვის.
კოდი და ვებ რესურსი, რომელიც შედის კომპონენტების ჩამონათვალში, დეტალურად აღწერს მიმღების მოდულის კავშირებს. მე გადავწყვიტე შევაერთო კავშირები დროებითი კავშირების გამოყენების ნაცვლად, როგორც წინა პროექტებში. ვინაიდან დამწყები ვარ, თითოეული გამაგრების სახსარი იზოლირებული მქონდა ელექტრული ლენტით (ისინი არ იყვნენ ლამაზები).
ფარის დაფის ქინძისთავები პირდაპირ შეესაბამება არდუინოს ქინძისთავებს. ფარის დაფის მიმაგრებამდე, მიწა და 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 */// გადამცემი გაყვანილობა
#ჩართეთ
// სერვო ბიბლიოთეკა
#ჩართეთ
// გადამცემი ბიბლიოთეკა
#განსაზღვრეთ სერვოპინი 2
// დეკლარაციის servo output pin
ServoTimer2 სერვისი;
// სერვო სახელის დეკლარაცია
RH_NRF24 nrf24;
// გადამცემი სახელის დეკლარაცია
int timeOUT = 0;
// ცვლადი სერვოსთვის
int პულსი = 90;
// ცვლადი იმპულსების შესანახად
ბათილად დაყენება ()
{serv.attach (Servopin); // სერვო პერსონალი
სერიული.დაწყება (9600); // გადამცემი პერსონალი
თუ (! nrf24.init ())
Serial.println ("init ვერ მოხერხდა"); // სერიული მონიტორის პერსონალი თუ (! nrf24.setChannel (12)) // დააყენეთ არხი 125 Serial.println ("setChannel failed"); თუ (! 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 = ზომა (buf); if (nrf24.recv (buf, & len)) // სერიული მონიტორის პერსონალი {Serial.print ("მიიღო მოთხოვნა:"); pulses = strtol ((const char*) buf, NULL, 10); // მონაცემთა ტიპის შეცვლა პერსონალი
int prin = რუკა (პულსი, 750, 2250, 0, 180); // მონაცემთა ტიპის შეცვლა პერსონალი
Serial.println (პრინცი); serv.write (პულსი); // ხდის სერვოს გადაადგილებას}}
}
ნაბიჯი 4: კლიენტების საბჭო
კლიენტის დაფა შედგება გადამცემი მოდულისა და პოტენციომეტრისგან. გადამცემი მოდული გაყვანილია ისევე, როგორც სერვერის დაფა, იმ განსხვავებით, რომ ფარის დაფის გარეშე, იგი პირდაპირ არის მიერთებული არდუინოს დაფის ქინძისთავებში.
პოტენომეტრი იღებს 5 ვ, დაფქვილს და მიერთებულია ანალოგურ პინ 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];
სიმებიანი valString = ""; // მონაცემთა ტიპის შეცვლა პერსონალი
RH_NRF24 nrf24; // გადამცემი პერსონალი
ბათილად დაყენება ()
{Serial.begin (9600); თუ (! nrf24.init ()) Serial.println ("init ვერ მოხერხდა"); // ნაგულისხმევი პარამეტრები შემდეგ init არის 2.402 GHz (არხი 2), 2Mbps, 0dBm if (! Nrf24.setChannel (12)) Serial.println ("setChannel failed"); თუ (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ვერ მოხერხდა"); } // გადამცემი პერსონალი
ბათილი მარყუჟი () {
val = analogRead (potpin); // პოტენომეტრის პერსონალი
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 + სერვო ძრავა + 3D ბეჭდვა): 5 ნაბიჯი (სურათებით)
კატის საკვების ხელმისაწვდომობის კონტროლი (ESP8266 + სერვო მოტორი + 3D ბეჭდვა): ეს პროექტი მიდის იმ პროცესზე, რომელსაც მე ვიყენებდი კატების საკვების ავტომატური თასის შესაქმნელად, ჩემი ხანდაზმული დიაბეტიანი კატის ჩაზისთვის. ხედავთ, მას სჭირდება საუზმე, სანამ ინსულინს მიიღებს, მაგრამ მე ხშირად მავიწყდება ძილის წინ მისი საჭმლის ამოღება, რაც
სერვო ძრავის კონტროლი STM32F4 ARM MCU– ით: 4 ნაბიჯი
სერვო ძრავის კონტროლი STM32F4 ARM MCU– ით: გამარჯობა მეგობრებო :) ასე რომ, ამ პროექტში ჩვენ გავაკონტროლებთ სერვო ძრავას STM32F4 ARM MCU– ით. ჩემს შემთხვევაში, მე გამოვიყენებ აღმოჩენის დაფას, მაგრამ თუ გაერკვევით პრობლემის არსში, შეგიძლიათ გამოიყენოთ იგი თითოეული MCU– სთვის. Ისე. დავიწყოთ:)
3 სერვო ძრავის კონტროლი 3 პოტენციმეტრით და არდუინოთი: 11 ნაბიჯი (სურათებით)
3 სერვო მოტორსის კონტროლი 3 პოტენციმეტრით და არდუინოთი: გამარჯობა. ეს არის ჩემი პირველი სასწავლო ინსტრუქცია, ასე რომ, ვიმედოვნებ, რომ მოთმინებით მოეკიდები ჩემს მიმართ, თუ რაიმე შეცდომას დავუშვებ მის შექმნისას. იგი დაწერილია დამწყებთათვის, ასე რომ თქვენ შორის უფრო მოწინავეებს შეუძლიათ ბევრი გამოტოვონ და უბრალოდ მიაღწიონ მის გაყვანილობას. მიზანი, რომელიც მე დავისახე
არდუინოს გაკვეთილი - სერვო ძრავის კონტროლი ჯოისტიკით: 4 ნაბიჯი
არდუინოს სახელმძღვანელო - სერვო ძრავის კონტროლი ჯოისტიკით: ამ გაკვეთილში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ სერვო ჯოისტიკით. ჩვენ გავაკონტროლებთ 1 ცალი სერვო ძრავას 1 ჯოისტიკით. თქვენ შეგიძლიათ განახორციელოთ თქვენი რობოტული ხელის პროექტები ამ სახელმძღვანელოს მითითებით. რა თქმა უნდა, ჩვენ გამოვიყენებთ გარე ბატარეას / ენერგიას მუშაობისას
სერვო კონტროლი NodeMCU და Blynk - IOT პლატფორმაში: 3 ნაბიჯი
სერვო კონტროლი NodeMCU და Blynk | IOT პლატფორმაში: ამ გაკვეთილში თქვენ შეგიძლიათ გააკონტროლოთ თქვენი სერვისი Blynk აპლიკაციის გამოყენებით IOT პლატფორმაში