Инверсия сигнала
- Войдите на сайт для отправки комментариев
Пт, 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???
Восклицательный знак - в вашем коде - инверсия значения, применяется по нужной логике
спасибо