Вот такой код склепал он работает хорошо, но больно медленно(раз в секунду примерно цикл) основное время уходит на отправку как я понимаю, так вот хотел попросить помочь реализовать отправку допустим раз в 5 секунд наверное через millis? или еще как чтобы можно было на экране быстро менять переменную а отправлялась с интервалами..... Код (C++): #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); #include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); int q; int z; int q1; //переменная для конвертации int z1; //переменная для конвертации #define key1 300000 #define key2 303000 void setup() { lcd.init(); lcd.backlight(); Serial.begin(9600); lcd.setCursor(0, 0); // Устанавливаем курсор в начало 2 строки String s = "START ARDUINO"; for (int i = 0; i < s.length(); i++) { lcd.print(s[i]); delay(100); } mySwitch.enableTransmit(8); // пин,на который подключен передатчик randomSeed(analogRead(0)); } void loop() { delay(20); // Защита от скачков напряжения тока. int q = analogRead(A0); // Чтоб не засорять радио эфир, отправим данные только, если обнаружим изменения на PIN (A0). int z = analogRead(A1); // Чтоб не засорять радио эфир, отправим данные только, если обнаружим изменения на PIN (A1). q = map(q, 0, 1023, 0, 120); // Конвертируем значения z = map(z, 0, 1023, 0, 120); // Конвертируем значения q1 = map(q, 0, 120, 0, 360); // Конвертируем значения для вывода в монитор и на экран z1 = map(z, 0, 120, 0, 180); // Конвертируем значения для вывода в монитор и на экран sendRC(q+key1); sendRC(z+key2); lcd.clear(); lcd.print("Horizont -- "); lcd.print(q1); // Выводим текст lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки lcd.print("Vertical -- "); lcd.print(z1); // Выводим текст Serial.print(q1); Serial.print(z1); digitalWrite(13, LOW); } // подпрограмма отправки данных void sendRC(unsigned long code) { mySwitch.send(code, 20); }
Все сделал сам))) через millis все просто раз в 5 сек отправляем а все остальное не тормозит..еще и притормаживать пришлось)))