Не получается написать условие
- Войдите на сайт для отправки комментариев
Ср, 30/08/2017 - 20:02
Здравствуйте, уважаемые форумчане. Я новичек и пока только постигаю азы программирования ардуино.
Столкнулся с проблемой, с которой сам не могу справиться, потому прошу помощи у вас.
Понимаю что данная проблема должна решаться с помощью if...else, но что бы я не делал, какие бы примеры не рассматривал, все в пустую, то ли с синтаксисом косячу, то ли в принципе не то делаю.
{
radio.read( &recieved_data, sizeof(recieved_data) );//чиатем входящий
//сигнал в "recieved_data", это 3 элемента массива, но в данном случае
//нужен только элемент [1]
//следующее не могу осилить:
если recieved_data[1] имее значение от 0 до 500, то записать в переменную A логическую единицу для последующей ее отправки на группу цифровых пинов (либо сразу отправка, минуя запись в переменную)
если recieved_data[1] имее значение от 510 до 1023, то записать в переменную B логическую единицу для последующей ее отправки на другую группу цифровых пинов (либо сразу отправка, минуя запись в переменную)
в иных случаях в переменных A и B логический ноль
}
спасибо за ответы.
Не понял, Вы пишете ...
Так что Вы делали? Посмотреть можно?
http://arduino.ru/Reference/SwitchCase
Изучайте.
Это на передатчике:
//таблица использованных пинов //1 tx1 (pd1)- ---- // vin + питание 5V //0 rx0 (pd0)- ---- // gnd + земля // rst - ---- // rst - ---- // gnd + земля // 5V - //2 d2 - // A7 + Ypot //3 d3 PWM + button // A6 + Xpot //4 d4 - //19 A5(scl) - //5 d5 PWM - //18 A4(sda) - //6 d6 PWM - //17 A3 - //7 d7 - //16 A2 - //8 d8 - //15 A1 + slider ? //9 d9 PWM + CE Wifi //14 A0 + potent ? //10 d10 PWM + SCN Wifi // aref - ---- //11 d11 + MOSI Wifi// 3v3 + питание 3.3в Wifi //12 d12 PWM + MISO Wifi//13 d13 + SCK Wifi //таблица использованных пинов Wifi //земля + //3,3в питание + //CE + //SCN + //SCK + //MOSI + //MISO + //IRQ - //подключаем библиотеки #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" RF24 radio(9, 10);//создаем WI FI модуль на пинах 9(CE) и 10(SCN) byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"};//возможные номера труб //создаем байты и назначаем им пины byte button = 3;//кнопка на 3 цифровом byte Xpot = A6;//X ось джойсика byte Ypot = A7;//Y ось джойсика byte potent = 0;//потенциометр на 0 аналоговом ? byte slider = 1;//движковый потенциометр на 1 аналоговом пине ? byte transmit_data[5];//массив, хранящий передаваемые данные byte latest_data[5];//массив, хранящий последние переданные данные boolean flag;//флажок отправки данных //ниже настройки программы void setup() { Serial.begin(9600);//инициализация ком порта pinMode(button, INPUT_PULLUP);//настроим пин кнопки radio.begin();//активируем модуль Wifi radio.setAutoAck(1);//режим подтверждения приёма, 1 вкл 0 выкл radio.setRetries(0, 15);//время между попыткой достучаться, число попыток radio.enableAckPayload();//разрешаем отсылку данных в ответ на входящий сигнал radio.setPayloadSize(32);//размер пакета, в байтах radio.openWritingPipe(address[0]); //мы - труба 0, открываем канал для передачи данных radio.setChannel(0x60);//выбираем канал (в котором нет шумов) radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS //должна быть одинакова на приёмнике и передатчике //при самой низкой скорости имеем самую высокую чувствительность и дальность radio.powerUp();//начинаем работу radio.stopListening();//не слушаем радиоэфир, мы передатчик } //ниже выполнение программы void loop() { //для Wifi transmit_data[0] = !digitalRead(button);//инвертированный (!) сигнал с кнопки на 0 место в массиве transmit_data[1] = map(analogRead(potent), 0, 1023, 0, 180);//получить значение в диапазоне 0..1023, перевести в 0..180, и записать на 1 место в массиве transmit_data[2] = map(analogRead(slider), 0, 1023, 0, 255);//получить значение в диапазоне 0..1023, перевести в 0..255, и записать на 2 место в массиве transmit_data[3] = map(analogRead(Xpot), 0, 1023, 0, 1023);//получить значение в диапазоне 0..1023, перевести в 0..1023, и записать на 3 место в массиве transmit_data[4] = map(analogRead(Ypot), 0, 1023, 0, 1023);//получить значение в диапазоне 0..1023, перевести в 0..1023, и записать на 4 место в массиве for (int i = 0; i < 3; i++) { //в цикле от 0 до числа каналов if (transmit_data[i] != latest_data[i]) { //если есть изменения в transmit_data flag = 1; //поднимаем флаг отправки по радио latest_data[i] = transmit_data[i]; //запоминаем последнее изменение } } if (flag == 1) { radio.powerUp();//включаем передатчик radio.write(&transmit_data, sizeof(transmit_data));//отправляем по радио flag = 0;//опускаем флаг radio.powerDown();//выключаем передатчик } }Это на приемнике:
//таблица использованных пинов //1 tx1 (pd1)- ---- // vin + питание 5V //0 rx0 (pd0)- ---- // gnd + земля // rst - ---- // rst - ---- // gnd + земля // 5V - //2 d2 + LUV // A7 - (фоторезистор для освещения) //3 d3 PWM + LUN // A6 - (светодиоды для освещения) //4 d4 + LDV //19 A5(scl) + echoPin //5 d5 PWM + servo //18 A4(sda) + trigPin //6 d6 PWM + potenciom//17 A3 + relay //7 d7 + LDN //16 A2 + RDN //8 d8 + RUV //15 A1 + RDV //9 d9 PWM + CE Wifi //14 A0 + RUN //10 d10 PWM + SCN Wifi // aref - ---- //11 d11 + MOSI Wifi// 3v3 + питание 3.3в Wifi //12 d12 PWM + MISO Wifi//13 d13 + SCK Wifi //таблица использованных пинов Wifi //земля + //3,3в питание + //CE + //SCN + //SCK + //MOSI + //MISO + //IRQ - //подключаем библиотеки #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" #include <Servo.h> RF24 radio(9, 10);//создаем WI FI модуль на пинах 9(CE) и 10(SCN) //создаем байты и назначаем им пины byte recieved_data[5];//массив принятых данных byte relay = 17;//реле на 17 цифровом byte servo = 5;//сервопривод на 5 цифровом (ШИМ) byte potenciom = 6;//регулятор на 6 цифровом (ШИМ) //создаем переменные и присваиваем им дефолтное значение int Xpot = 505;//создаем переменную для хранения данных X положения джойситка int Ypot = 505;//создаем переменную для хранения данных Y положения джойситка Servo myservo;//создаем объект серводвигателя myservo byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"};//возможные номера труб //инициируем пины ардуино на оба драйвера мотор-редукторов //пины D1 и D2 работают совместно с TX и RX, при их использовании мигают светодиоды на плате. Пин D13 завязан еще на один светодиод. Поэтому их я решил использовать только в крайнем случае. //L-левый R-правый U-верхний D-нижний V-вперед N-назад int LUV = 2;//пин D2 int LUN = 3;//пин D3 int LDV = 4;//пин D4 int LDN = 7;//пин D7 int RUV = 11;//пин D11 int RUN = 14;//пин A0 int RDV = 15;//пин A1 int RDN = 16;//пин A2 //инициируем пины ардуино эхолокатор int echoPin = 19;//пин 19 ШИМ эхо локатор int trigPin = 18;//пин 18 ШИМ триг локатор //ниже настройки программы void setup() { //настройка для пинов движения pinMode (LUV, OUTPUT);//задаем пину тип на вывод pinMode (LUN, OUTPUT);//задаем пину тип на вывод pinMode (LDV, OUTPUT);//задаем пину тип на вывод pinMode (LDN, OUTPUT);//задаем пину тип на вывод pinMode (RUV, OUTPUT);//задаем пину тип на вывод pinMode (RUN, OUTPUT);//задаем пину тип на вывод pinMode (RDV, OUTPUT);//задаем пину тип на вывод pinMode (RDN, OUTPUT);//задаем пину тип на вывод //инициализация ком порта Serial.begin (9600); //настройка для пинов сонара pinMode(trigPin, OUTPUT);//задаем триг на передачу pinMode(echoPin, INPUT);//задаем эхо на прием //настройка для пинов реле и мосфета pinMode(relay, OUTPUT);//задаем пин реле как выход pinMode(potenciom, OUTPUT);//задаем пин регулятора как выход myservo.attach(servo);//подключаем сервопривод на servo radio.begin();//активируем модуль Wifi radio.setAutoAck(1);//режим подтверждения приёма, 1 вкл 0 выкл radio.setRetries(0, 15);//время между попыткой достучаться, число попыток radio.enableAckPayload();//разрешаем отсылку данных в ответ на входящий сигнал radio.setPayloadSize(32);//размер пакета, в байтах radio.openReadingPipe(1, address[0]);//хотим слушать трубу 0 radio.setChannel(0x60);//выбираем канал (в котором нет шумов) radio.setPALevel (RF24_PA_MAX);//уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX radio.setDataRate (RF24_250KBPS);//скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS //(должна быть одинакова на приёмнике и передатчике, при самой низкой скорости имеем самую высокую чувствительность и дальность) radio.powerUp();//начинаем работу radio.startListening();//начинаем слушать эфир, мы приёмный модуль } //ниже выполнение программы void loop() { { //для сонара int duration, cm;//инициализируем две переменные duration и cm digitalWrite(trigPin, LOW);//триг отключен delayMicroseconds(2);//ждем 2 милисекунды digitalWrite(trigPin, HIGH);//триг включен delayMicroseconds(10);//ждем 10 милисекунд digitalWrite(trigPin, LOW);//отключаем триг duration = pulseIn(echoPin, HIGH);//присваиваем переменной duration принятое эхо cm = duration / 58;//высчитываем переменную cm Serial.print(cm);//строки для ком порта нам не нужны Serial.println(" cm");//строки для ком порта нам не нужны delay(100);//ждем 0,1сек или 100 милисекунд } { //для Wifi byte pipeNo; while ( radio.available(&pipeNo)) //слушаем эфир со всех труб { radio.read( &recieved_data, sizeof(recieved_data) );//чиатем входящий сигнал digitalWrite(relay, recieved_data[0]);//подаем на реле сигнал с 0 места массива (0 или 1) переключения робота с ручного в автономный режим myservo.write(recieved_data[1]);//поверем серво на угол 0..180 (значение получено с 1 элемента массива) сервопривод управления эхолокатором analogWrite(potenciom, recieved_data[2]);//подаем на регулятор ШИМ сигнал (в соответствии с принятыми данными со 2 места массива, диапазон 0...255 ) IRda или регулятор скорости analogWrite(Xpot, recieved_data[3]);//записываем массив 3 в переменную Xpot analogWrite(Ypot, recieved_data[4]);//записываем массив 4 в переменную Ypot //Управление мотор-редукторами джойстиком по оси Y (вперед и назад) if (Ypot < 500)//движение назад { digitalWrite(LUN, HIGH);//сигнал LU мотор-редуктору на движение назад digitalWrite(LDN, HIGH);//сигнал LD мотор-редуктору на движение назад digitalWrite(RUN, HIGH);//сигнал RU мотор-редуктору на движение назад digitalWrite(RDN, HIGH);//сигнал RD мотор-редуктору на движение назад } else if (Ypot > 512)//движение вперед { digitalWrite(LUV, HIGH);//сигнал LU мотор-редуктору на движение вперед digitalWrite(LDV, HIGH);//сигнал LD мотор-редуктору на движение вперед digitalWrite(RUV, HIGH);//сигнал RU мотор-редуктору на движение вперед digitalWrite(RDV, HIGH);//сигнал RD мотор-редуктору на движение вперед } else//остановка всех мотор-редукторов { digitalWrite(LUN, LOW);//сигнал LU мотор-редуктору на остановку1 digitalWrite(LDN, LOW);//сигнал LD мотор-редуктору на остановку1 digitalWrite(RUN, LOW);//сигнал RU мотор-редуктору на остановку1 digitalWrite(RDN, LOW);//сигнал RD мотор-редуктору на остановку1 digitalWrite(LUV, LOW);//сигнал LU мотор-редуктору на остановку2 digitalWrite(LDV, LOW);//сигнал LD мотор-редуктору на остановку2 digitalWrite(RUV, LOW);//сигнал RU мотор-редуктору на остановку2 digitalWrite(RDV, LOW);//сигнал RD мотор-редуктору на остановку2 } //Управление мотор-редукторами джойстиком по оси X (влево и вправо) if (Xpot < 500)//поворот налево { digitalWrite(LUN, HIGH);//сигнал LU мотор-редуктору на движение назад digitalWrite(LDN, HIGH);//сигнал LD мотор-редуктору на движение назад digitalWrite(RUV, HIGH);//сигнал RU мотор-редуктору на движение вперед digitalWrite(RDV, HIGH);//сигнал RD мотор-редуктору на движение вперед } else if (Xpot > 512)//поворот направо { digitalWrite(LUV, HIGH);//сигнал LU мотор-редуктору на движение вперед digitalWrite(LDV, HIGH);//сигнал LD мотор-редуктору на движение вперед digitalWrite(RUN, HIGH);//сигнал RU мотор-редуктору на движение назад digitalWrite(RDN, HIGH);//сигнал RD мотор-редуктору на движение назад } else//остановка всех мотор-редукторов { digitalWrite(LUN, LOW);//сигнал LU мотор-редуктору на остановку1 digitalWrite(LDN, LOW);//сигнал LD мотор-редуктору на остановку1 digitalWrite(RUN, LOW);//сигнал RU мотор-редуктору на остановку1 digitalWrite(RDN, LOW);//сигнал RD мотор-редуктору на остановку1 digitalWrite(LUV, LOW);//сигнал LU мотор-редуктору на остановку2 digitalWrite(LDV, LOW);//сигнал LD мотор-редуктору на остановку2 digitalWrite(RUV, LOW);//сигнал RU мотор-редуктору на остановку2 digitalWrite(RDV, LOW);//сигнал RD мотор-редуктору на остановку2 } } } }Не работает код со строки 129
Попробовал switch, тоже ноль реакции
int value = Ypot; switch (value) { case 0 ... 500: { digitalWrite(LUN, HIGH);//сигнал LU мотор-редуктору на движение назад digitalWrite(LDN, HIGH);//сигнал LD мотор-редуктору на движение назад digitalWrite(RUN, HIGH);//сигнал RU мотор-редуктору на движение назад digitalWrite(RDN, HIGH);//сигнал RD мотор-редуктору на движение назад break; } case 512 ... 1023: { digitalWrite(LUV, HIGH);//сигнал LU мотор-редуктору на движение вперед digitalWrite(LDV, HIGH);//сигнал LD мотор-редуктору на движение вперед digitalWrite(RUV, HIGH);//сигнал RU мотор-редуктору на движение вперед digitalWrite(RDV, HIGH);//сигнал RD мотор-редуктору на движение вперед break; } default: { digitalWrite(LUN, LOW);//сигнал LU мотор-редуктору на остановку1 digitalWrite(LDN, LOW);//сигнал LD мотор-редуктору на остановку1 digitalWrite(RUN, LOW);//сигнал RU мотор-редуктору на остановку1 digitalWrite(RDN, LOW);//сигнал RD мотор-редуктору на остановку1 digitalWrite(LUV, LOW);//сигнал LU мотор-редуктору на остановку2 digitalWrite(LDV, LOW);//сигнал LD мотор-редуктору на остановку2 digitalWrite(RUV, LOW);//сигнал RU мотор-редуктору на остановку2 digitalWrite(RDV, LOW);//сигнал RD мотор-редуктору на остановку2 } }Передатчик не смотрел. О приёмнике.
Для начала просто поставьте печать Ypot и Xpot перед строкой 130 и посмотрите, чему они равны. Как же все новички любят вслепую работать!
Ваш Ypot очень странная переменная
Спасибо за совет с печатью, как то не догадался смотреть ей, очень дельный совет на самом деле.
Понял что проблемма в переменной, висит на одном значении и не меняется.
Но понять, почему строка
не верна - не могу, т.к. аналогичная ей
вполне работает.
Я тем более не могу понять, поскольку я не знаю чего Вы ожидаете от этой строки. Если она делает не то, чего Вы от неё ждёте, значит чего-то не того ждёте. Почитайте на всякий случай описание функции analogWrite, может разберётесь. А нет, так объясняйте что Вы имеете в виду под этой строкой. Если Вы ожидаете, что она поменяете значение Ypot, таки нет - не поменяет и не должна этого делать.
Я все перемные указывающие на ноги сделал с суффуксом Pin. Может так поймете
//таблица использованных пинов //1 tx1 (pd1)- ---- // vin + питание 5V //0 rx0 (pd0)- ---- // gnd + земля // rst - ---- // rst - ---- // gnd + земля // 5V - //2 d2 + LUVpin // A7 - (фоторезистор для освещения) //3 d3 PWM + LUNpin // A6 - (светодиоды для освещения) //4 d4 + LDVpin //19 A5(scl) + echoPin //5 d5 PWM + servo //18 A4(sda) + trigPin //6 d6 PWM + potenPin//17 A3 + relayPin //7 d7 + LDNpin //16 A2 + RDNpin //8 d8 + RUVpin //15 A1 + RDVpin //9 d9 PWM + CE Wifi //14 A0 + RUNpin //10 d10 PWM + SCN Wifi // aref - ---- //11 d11 + MOSI Wifi// 3v3 + питание 3.3в Wifi //12 d12 PWM + MISO Wifi//13 d13 + SCK Wifi //таблица использованных пинов Wifi //земля + //3,3в питание + //CE + //SCN + //SCK + //MOSI + //MISO + //IRQ - //подключаем библиотеки #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" #include <Servo.h> RF24 radio(9, 10);//создаем WI FI модуль на пинах 9(CE) и 10(SCN) //создаем байты и назначаем им пины byte recieved_data[5];//массив принятых данных byte relayPin = 17;//реле на 17 цифровом byte servoPin = 5;//сервопривод на 5 цифровом (ШИМ) byte potenPin = 6;//регулятор на 6 цифровом (ШИМ) //создаем переменные и присваиваем им дефолтное значение int Xpot = 505;//создаем переменную для хранения данных X положения джойситка int Ypot = 505;//создаем переменную для хранения данных Y положения джойситка Servo myservo;//создаем объект серводвигателя myservo byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"};//возможные номера труб //инициируем пины ардуино на оба драйвера мотор-редукторов //пины D1 и D2 работают совместно с TX и RX, при их использовании мигают светодиоды на плате. Пин D13 завязан еще на один светодиод. Поэтому их я решил использовать только в крайнем случае. //L-левый R-правый U-верхний D-нижний V-вперед N-назад const byte LUVpin = 2;//пин D2 const byte LUNpin = 3;//пин D3 const byte LDVpin = 4;//пин D4 const byte LDNpin = 7;//пин D7 const byte RUVpin = 11;//пин D11 const byte RUNpin = 14;//пин A0 const byte RDVpin = 15;//пин A1 const byte RDNpin = 16;//пин A2 //инициируем пины ардуино эхолокатор const byte echoPin = 19;//пин 19 ШИМ эхо локатор const byte trigPin = 18;//пин 18 ШИМ триг локатор //---------main------------------------------- void setup() { //инициализация ком порта Serial.begin (9600); //настройка для пинов движения pinMode (LUVpin, OUTPUT);//задаем пину тип на вывод pinMode (LUNpin, OUTPUT);//задаем пину тип на вывод pinMode (LDVpin, OUTPUT);//задаем пину тип на вывод pinMode (LDNpin, OUTPUT);//задаем пину тип на вывод pinMode (RUVpin, OUTPUT);//задаем пину тип на вывод pinMode (RUNpin, OUTPUT);//задаем пину тип на вывод pinMode (RDVpin, OUTPUT);//задаем пину тип на вывод pinMode (RDNpin, OUTPUT);//задаем пину тип на вывод //настройка для пинов сонара pinMode(trigPin, OUTPUT);//задаем триг на передачу pinMode(echoPin, INPUT);//задаем эхо на прием //настройка для пинов реле и мосфета pinMode(relayPin, OUTPUT);//задаем пин реле как выход pinMode(potenPin, OUTPUT);//задаем пин регулятора как выход myservo.attach(servoPin);//подключаем сервопривод на servo radio.begin();//активируем модуль Wifi radio.setAutoAck(1);//режим подтверждения приёма, 1 вкл 0 выкл radio.setRetries(0, 15);//время между попыткой достучаться, число попыток radio.enableAckPayload();//разрешаем отсылку данных в ответ на входящий сигнал radio.setPayloadSize(32);//размер пакета, в байтах radio.openReadingPipe(1, address[0]);//хотим слушать трубу 0 radio.setChannel(0x60);//выбираем канал (в котором нет шумов) radio.setPALevel (RF24_PA_MAX);//уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX radio.setDataRate (RF24_250KBPS);//скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS //(должна быть одинакова на приёмнике и передатчике, при самой низкой скорости имеем самую высокую чувствительность и дальность) radio.powerUp();//начинаем работу radio.startListening();//начинаем слушать эфир, мы приёмный модуль } //ниже выполнение программы void loop() { { //для сонара int duration, cm;//инициализируем две переменные duration и cm digitalWrite(trigPin, LOW);//триг отключен delayMicroseconds(2);//ждем 2 милисекунды digitalWrite(trigPin, HIGH);//триг включен delayMicroseconds(10);//ждем 10 милисекунд digitalWrite(trigPin, LOW);//отключаем триг duration = pulseIn(echoPin, HIGH);//присваиваем переменной duration принятое эхо cm = duration / 58;//высчитываем переменную cm Serial.print(cm);//строки для ком порта нам не нужны Serial.println(" cm");//строки для ком порта нам не нужны delay(100);//ждем 0,1сек или 100 милисекунд } { //для Wifi byte pipeNo; while ( radio.available(&pipeNo)) //слушаем эфир со всех труб { radio.read( &recieved_data, sizeof(recieved_data) );//чиатем входящий сигнал digitalWrite(relayPin, recieved_data[0]);//подаем на реле сигнал с 0 места массива (0 или 1) переключения робота с ручного в автономный режим myservo.write(recieved_data[1]);//поверем серво на угол 0..180 (значение получено с 1 элемента массива) сервопривод управления эхолокатором analogWrite(potenPin, recieved_data[2]);//подаем на регулятор ШИМ сигнал (в соответствии с принятыми данными со 2 места массива, диапазон 0...255 ) IRda или регулятор скорости analogWrite(Xpot, recieved_data[3]);//записываем массив 3 в переменную Xpot //<---вот про этот бред вам и говорят analogWrite(Ypot, recieved_data[4]);//записываем массив 4 в переменную Ypot //<--- //Управление мотор-редукторами джойстиком по оси Y (вперед и назад) if (Ypot < 500)//движение назад { digitalWrite(LUNpin, HIGH);//сигнал LU мотор-редуктору на движение назад digitalWrite(LDNpin, HIGH);//сигнал LD мотор-редуктору на движение назад digitalWrite(RUNpin, HIGH);//сигнал RU мотор-редуктору на движение назад digitalWrite(RDNpin, HIGH);//сигнал RD мотор-редуктору на движение назад } else if (Ypot > 512)//движение вперед { digitalWrite(LUVpin, HIGH);//сигнал LU мотор-редуктору на движение вперед digitalWrite(LDVpin, HIGH);//сигнал LD мотор-редуктору на движение вперед digitalWrite(RUVpin, HIGH);//сигнал RU мотор-редуктору на движение вперед digitalWrite(RDVpin, HIGH);//сигнал RD мотор-редуктору на движение вперед } else//остановка всех мотор-редукторов { digitalWrite(LUNpin, LOW);//сигнал LU мотор-редуктору на остановку1 digitalWrite(LDNpin, LOW);//сигнал LD мотор-редуктору на остановку1 digitalWrite(RUNpin, LOW);//сигнал RU мотор-редуктору на остановку1 digitalWrite(RDNpin, LOW);//сигнал RD мотор-редуктору на остановку1 digitalWrite(LUVpin, LOW);//сигнал LU мотор-редуктору на остановку2 digitalWrite(LDVpin, LOW);//сигнал LD мотор-редуктору на остановку2 digitalWrite(RUVpin, LOW);//сигнал RU мотор-редуктору на остановку2 digitalWrite(RDVpin, LOW);//сигнал RD мотор-редуктору на остановку2 } //Управление мотор-редукторами джойстиком по оси X (влево и вправо) if (Xpot < 500)//поворот налево { digitalWrite(LUNpin, HIGH);//сигнал LU мотор-редуктору на движение назад digitalWrite(LDNpin, HIGH);//сигнал LD мотор-редуктору на движение назад digitalWrite(RUVpin, HIGH);//сигнал RU мотор-редуктору на движение вперед digitalWrite(RDVpin, HIGH);//сигнал RD мотор-редуктору на движение вперед } else if (Xpot > 512)//поворот направо { digitalWrite(LUVpin, HIGH);//сигнал LU мотор-редуктору на движение вперед digitalWrite(LDVpin, HIGH);//сигнал LD мотор-редуктору на движение вперед digitalWrite(RUNpin, HIGH);//сигнал RU мотор-редуктору на движение назад digitalWrite(RDNpin, HIGH);//сигнал RD мотор-редуктору на движение назад } else//остановка всех мотор-редукторов { digitalWrite(LUNpin, LOW);//сигнал LU мотор-редуктору на остановку1 digitalWrite(LDNpin, LOW);//сигнал LD мотор-редуктору на остановку1 digitalWrite(RUNpin, LOW);//сигнал RU мотор-редуктору на остановку1 digitalWrite(RDNpin, LOW);//сигнал RD мотор-редуктору на остановку1 digitalWrite(LUVpin, LOW);//сигнал LU мотор-редуктору на остановку2 digitalWrite(LDVpin, LOW);//сигнал LD мотор-редуктору на остановку2 digitalWrite(RUVpin, LOW);//сигнал RU мотор-редуктору на остановку2 digitalWrite(RDVpin, LOW);//сигнал RD мотор-редуктору на остановку2 } } }