Mundarija:

Simsiz Servo boshqaruv: 6 qadam
Simsiz Servo boshqaruv: 6 qadam

Video: Simsiz Servo boshqaruv: 6 qadam

Video: Simsiz Servo boshqaruv: 6 qadam
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Noyabr
Anonim
Simsiz Servo boshqaruvi
Simsiz Servo boshqaruvi
Simsiz Servo boshqaruvi
Simsiz Servo boshqaruvi

Ushbu loyiha servo aylanishini potentsiometr (tugma) yordamida simsiz boshqaradi. Burilish 180 gradusgacha cheklangan.

1 -qadam: komponentlar

Komponentlar
Komponentlar
Komponentlar
Komponentlar
Komponentlar
Komponentlar

Ushbu loyiha quyidagilardan iborat

  • USB ulagichli kabel bilan 2 Arduino UNO boshqaruv paneli
  • 2 nRF24L01-2,4 gigagertsli chastotali RF-qabul qiluvchi modullari (bu modullarga yordam uchun https://randomnerdtutorials.com/nrf24l01-2-4ghz-rf… ga qarang.
  • NRF24L01 uchun 2 ta soket adapter platasi (yukxalta chiplari)
  • Arduino -ga mos keladigan 328 ta ProtoShield prototipini kengaytirish kengashi
  • 1 servo
  • 1 analog potansiyometr
  • lehim temir va lehim
  • sim
  • igna burunli penseler
  • izolyatsiyali o'rash, men elektr tasmasini ishlatardim

2 -qadam: Server platasi

Server taxtasi
Server taxtasi

Server platasi qabul qilgich moduli, qalqon paneli (to'g'ridan -to'g'ri Arduino platasiga faqat bitta yo'l bilan ulanadi) va servodan iborat. Men dabdabali non taxtasidan qochish va loyihani va umuman chiroyli ishlov berish uchun qalqon taxtasini qo'shishga qaror qildim.

Komponentlar ro'yxatiga kiritilgan kod va veb -resurs, qabul qiluvchi -modul ulanishlarini batafsil bayon qiladi. Men oldingi loyihalarda bo'lgani kabi vaqtinchalik ulanishlarni ishlatmasdan, ulanishlarni lehimlashga qaror qildim. Men boshlang'ich bo'lganim uchun, men har bir lehim bo'g'inini elektr tasmasi bilan izolyatsiya qildim (ular chiroyli emas edi).

Qalqon taxtasi pinlari to'g'ridan -to'g'ri Arduino pinlariga to'g'ri keladi. Qalqon taxtasini ulashdan oldin, men sim va lehim bilan taxta relslariga tuproq va 5 voltli pinlarni uladim. Men, shuningdek, komponentlarning 5 voltli va topraklama simlarini qalqon panjarasiga lehimladim, so'ngra Arduino -ni qalqon taxtasiga uladim.

Servo quvvat uchun 3 voltli pin va aloqa uchun raqamli pin 2 ga ulangan.

** Eslatma: faqat qurilishni tugatgandan so'ng, men Arduino platalarim bir xil emasligini payqadim. Mening server qabul qilgichim qalqon panelidagi 5 voltli temir yo'l bilan ishlaydi, mijoz esa 3 voltli pin bilan quvvatlanadi, lekin men qabul qilgichdagi adapter chipining vazifasi to'g'ri kuchlanishni ta'minlashdir. Shuni aniq aytishim mumkinki, tasvirda ko'rsatilgan konfiguratsiyaga mos keladigan kod tasvirlangan effektni beradi.

3 -qadam: Server koderi: nusxa ko'chirish va joylashtirish

// SERVER KODI/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Ishlatilmaydigan GND> GND VCC> 5V */// qabul qilgich simlari

#qo'shing

// servo kutubxona

#qo'shing

// qabul qiluvchi kutubxona

#Servopin 2 ni aniqlang

// deklaratsiya servo chiqish pimi

ServoTimer2 xizmati;

// servo nomini e'lon qilish

RH_NRF24 nrf24;

// qabul qilgich nomining e'lon qilinishi

int timeOUT = 0;

// servo uchun o'zgaruvchi

int pulslari = 90;

// impulslarni saqlash uchun o'zgaruvchi

bo'sh o'rnatish ()

{serv.attach (Servopin); // servo narsalar

Serial.begin (9600); // qabul qiluvchi narsalar

agar (! nrf24.init ())

Serial.println ("boshlang'ich muvaffaqiyatsiz tugadi"); // ketma -ket monitorli narsalar, agar (! nrf24.setChannel (12)) // kanalni 125 Serial.println ga sozlang ("setChannel muvaffaqiyatsiz tugadi"); agar (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF bajarilmadi"); // ketma -ket monitor materiallari}

bo'sh halqa ()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // ketma -ket monitor materiallari {Serial.print ("so'rov bor:"); pulslar = strtol ((const char*) buf, NULL, 10); // ma'lumotlar turini o'zgartirish

int prin = xarita (pulslar, 750, 2250, 0, 180); // ma'lumotlar turini o'zgartirish

Ketma -ket.println (prin); serv.write (pulslar); // servo harakat qiladi}}

}

4 -qadam: mijozlar paneli

Mijozlar kengashi
Mijozlar kengashi

Mijozlar platasi qabul qiluvchi moduli va potansiometrdan iborat. Qabul qilgich moduli server platasi singari ** simli, faqat qalqon paneli bo'lmasa, u to'g'ridan -to'g'ri Arduino karta pinlariga ulanadi.

Potentsiometr 5V, erni oladi va analog pin 2 ga ulanadi.

** Eslatma: server platasida aytilganidek, mening Arduino platalarim bir xil emas. Bunday holda, qabul qilgich 5V piniga to'g'ridan -to'g'ri qo'shni 3.3V deb nomlangan pinga ulanadi, lekin yana hammasi yaxshi ishlayotganga o'xshaydi.

5 -qadam: Mijoz kodi: nusxa ko'chirish va joylashtirish

// Mijozlar kodi/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> GND> GND VCC> 5V */// o'tkazgich simlari

#qo'shing

// qabul qiluvchi kutubxona

int potpin = A2; // potentsiometrning deklaratsiyasi

int val;

char tempChar [5];

Qator valString = ""; // ma'lumotlar turini o'zgartirish

RH_NRF24 nrf24; // qabul qiluvchi narsalar

bo'sh o'rnatish ()

{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init muvaffaqiyatsiz"); // Boshlangandan keyin standart sozlamalar 2,402 gigagertsli (2 -kanal), 2Mbps, 0dBm bo'lsa (! Nrf24.setChannel (12)) Serial.println ("setChannel muvaffaqiyatsiz"); agar (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF bajarilmadi"); } // qabul qiluvchi narsalar

void loop () {

val = analogRead (potpin); // potentsiometr elementlari

val = xarita (val, 0, 1023, 750, 2250);

valString = val; String str = (valString); str.toCharArray (tempChar, 5); // ma'lumotlar turini o'zgartirish nrf24.send (tempChar, sizeof (tempChar));

}

6 -qadam: Kod haqida eslatma:

Kod Arduino dasturiy ta'minot interfeysidagi ketma -ket monitordan teskari aloqa ko'rinishida ba'zi cheklangan muammolarni bartaraf etish funktsiyalarini o'z ichiga oladi. Serial monitorni SERVER kodidan ko'rganda (ctrl + shift + M), siz potentsiometrning holatini 1 dan 180 gacha bo'lgan raqam ko'rinishida ko'rishingiz kerak.

Shuningdek, simsiz va servo kutubxonasi:

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

github.com/nabontra/ServoTimer2

Tavsiya: