Инверсия сигнала
- Войдите на сайт для отправки комментариев
Пт, 04/03/2022 - 22:19
Добрый вечер имеется вот такой код
#include <SPI.h> #include "nRF24L01.h" #include "RF24.h" RF24 radio(9, 10); // "создать" модуль на пинах 9 и 10 Для Уно byte recieved_data[2]; // массив принятых данных byte relay1 = 2; // реле на 2 цифровом byte relay2 = 3; // сервопривод на 3 цифровом byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб void setup() { Serial.begin(9600); // открываем порт для связи с ПК pinMode(relay1, OUTPUT); // настроить пин реле как выход pinMode(relay2, OUTPUT); radio.begin(); //активировать модуль 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() { Serial.print("START"); Serial.print(recieved_data[0]); Serial.println(recieved_data[1]); byte pipeNo; while ( radio.available(&pipeNo)) { // есть входящие данные // чиатем входящий сигнал radio.read(&recieved_data, sizeof(recieved_data)); // подать на реле сигнал с 0 места массива digitalWrite(relay1, !recieved_data[0]); digitalWrite(relay2, !recieved_data[1]); delay(250); digitalWrite(relay1, 0); digitalWrite(relay2, 0); } }
он рабочий, но как инвертировать выход МК??? при включении МК на relay1 и relay2 висит логический 0 как мне его поменять на логическую 1???
Восклицательный знак - в вашем коде - инверсия значения, применяется по нужной логике
спасибо