Alex753
Здесь я подсказать не в силах, с SPI мало имел дело.
Вот скетч который у меня работает, задержка на отключения, после выхода из режима AV 3 секунды, может пригодится.
Код:#include <Wire.h> #define ADDR 72 //адрес устройства int AV = 13; // управляющий пин unsigned long AVtime=0; int AVflag=false; void setup() { Wire.begin(ADDR); //определим как ведомый с указанным адресом Wire.onReceive(receive_handler); //ждем данных от мастера, функция возвращает int число байт данных pinMode(AV, OUTPUT); // назначаем пины как выходы } void loop() { } void receive_handler(int numbytes) { for (int i=0;i<numbytes;i++) //читаем весь пакет { int a = Wire.read(); // присваиваем переменной значение a if (a == 194 || a == 210) // если код 0194192247208 или 0210208247208 включить пин 13 { digitalWrite(AV, HIGH); AVflag == true; } else if (a == 80 || a == 88 || a == 64 || a == 67 || a == 91) // если код 080192247208 или 088192247208 или 064192247208 или 067192247208 или 091216247208 включить пин 13 AVflag == false,AVtime=millis(); if(millis()-AVtime>3000 && AVflag == false) digitalWrite(AV, LOW); } }




Ответить с цитированием