Мазмұны:

Сервистік сымсыз басқару: 6 қадам
Сервистік сымсыз басқару: 6 қадам

Бейне: Сервистік сымсыз басқару: 6 қадам

Бейне: Сервистік сымсыз басқару: 6 қадам
Бейне: 😔ОСЫ 7 ҚАТЕ ҮШІН АДАМДАР СІЗДІ БАҒАЛАМАЙДЫ! 2024, Шілде
Anonim
Сервисті сымсыз басқару
Сервисті сымсыз басқару
Сервисті сымсыз басқару
Сервисті сымсыз басқару

Бұл жоба потенциометрдің (тұтқаның) көмегімен серваның сымсыз айналуын басқарады. Айналу 180 градусқа шектелген.

1 -қадам: компоненттер

Компоненттер
Компоненттер
Компоненттер
Компоненттер
Компоненттер
Компоненттер

Бұл жоба тұрады

  • USB коннекторлы кабелі бар 2 Arduino UNO контроллер тақтасы
  • 2 nRF24L01-2,4 ГГц жиілікті қабылдағыш модульдері (бұл модульдер бойынша көмек алу үшін https://randomnerdtutorials.com/nrf24l01-2-4ghz-rf… қараңыз.
  • NRF24L01 үшін 2 ұялы адаптер тақтасы (рюкзак чиптері)
  • 1 қосымша Arduino үйлесімді 328 ProtoShield прототипін кеңейту тақтасы
  • 1 серво
  • 1 аналогты потенциометр
  • дәнекерлеуіш пен дәнекерлеуіш
  • сым
  • ине тәрізді қысқыштар
  • оқшаулағыш орам, мен электр таспасын қолдандым

2 -қадам: серверлік тақта

Сервер тақтасы
Сервер тақтасы

Серверлік тақта трансивер модулінен, қалқан тақтасынан (Arduino тақтасына тек бір жолмен ғана қосылады) және серводан тұрады. Мен қалқымалы тақтаны болдырмау үшін жобаны және жалпы ұқыпты аяқтау үшін қалқан тақтасын қосуды шештім.

Компоненттер тізіміне енгізілген код пен веб -ресурс трансивер модулінің қосылымдарын егжей -тегжейлі көрсетеді. Мен бұрынғы жобалардағыдай уақытша қосылымдарды пайдаланудың орнына қосылымдарды дәнекерлеуді шештім. Мен жаңадан бастаушы болғандықтан, мен әрбір дәнекерлеу түйінін электрлік таспамен оқшауладым (олар әдемі емес еді).

Қалқан тақтасының түйреуіштері тікелей Arduino түйреуіштеріне сәйкес келеді. Қалқан тақтасын бекітпес бұрын, мен жер мен 5 вольтты түйреуіштерді тақтаның рельстеріне сыммен және дәнекермен қостым. Мен сонымен қатар компоненттердің 5 вольтты және жерге тұйықталған сымдарын қалқан тақтасының рельстеріне дәнекерледім, содан кейін ақырында Arduino -ны қалқан тақтасына қостым.

Серво қуат үшін 3 вольтты түйреуішке және байланыс үшін цифрлық 2 істікке бекітілген.

** Ескерту: бұл құрылысты аяқтағаннан кейін ғана менің Arduino тақталары бір -біріне ұқсамайтынын байқадым. Менің серверлік трансивер қалқан тақтасындағы 5 вольтты рельспен жұмыс істейді, ал клиенттік транслятор 3 вольтты істікшеден қуат алады, дегенмен мені қабылдаушы қабылдағыштағы адаптер чипінің функциясы кернеуді қамтамасыз ету керек деп ойладым. Мен нақты айта алатын нәрсе - суреттерде көрсетілген конфигурацияға сәйкес келетін код сипатталған әсерді береді.

3 -қадам: Сервер кодтаушысы: көшіру және қою

// SERVER CODE/ * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Қолданылмайды GND> GND VCC> 5V */// трансиверлік сымдар

#қосу

// серво кітапханасы

#қосу

// қабылдағыштар кітапханасы

#Сервопинді анықтаңыз 2

// декларация серво шығыс түйреуіші

ServoTimer2 сервисі;

// серво атауын жариялау

RH_NRF24 nrf24;

// трансивер атауын жариялау

int timeOUT = 0;

// servo үшін айнымалы

ішкі импульстар = 90;

// импульстарды сақтауға арналған айнымалы

жарамсыз орнату ()

{serv.attach (Servopin); // серво заттары

Serial.begin (9600); // қабылдағыш заттар

егер (! nrf24.init ())

Serial.println («бастамасы сәтсіз болды»); // сериялық монитордың материалдары if (! 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 (принтер); serv.write (импульстар); // серво қозғалысын жасайды}}

}

4 -қадам: Клиенттер тақтасы

Клиенттер тақтасы
Клиенттер тақтасы

Клиенттер тақтасы трансивер модулінен және потенциометрден тұрады. Трансивер модулі серверлік тақта сияқты ** қосылады, тек қалқан тақтасы болмаса, ол Arduino тақтасының түйреуіштеріне тікелей қосылады.

Потенциометр жерге 5В қабылдайды және 2 аналогтық түйреуге қосылады.

** Ескерту: сервер тақтасының қадамында айтылғандай, менің Arduino тақталары бірдей емес. Бұл жағдайда трансивер 3.3В таңбалы түйреуішке қосылады, ол 5В істікшеге тікелей іргелес, бірақ тағы да бәрі жақсы жұмыс істейтін сияқты.

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); if (! nrf24.init ()) Serial.println («init сәтсіз болды»); // Бастапқыдан кейінгі әдепкі мәндер - 2.402 ГГц (2 арна), 2Мбит/ с, 0дБм, егер (! Nrf24.setChannel (12)) Serial.println («setChannel сәтсіз»); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println («setRF сәтсіз аяқталды»); } // қабылдағыш заттар

void loop () {

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

Ұсынылған: