// библиотека для эмуляции Serial порта #include // создаём объект mySerial и передаём номера управляющих пинов RX и TX // RX - цифровой вывод 8, необходимо соединить с выводом TX дисплея // TX - цифровой вывод 9, необходимо соединить с выводом RX дисплея SoftwareSerial mySerial(8, 9); // переменная для хранения посылки данных String data; void setup() { // открываем последовательный порт mySerial.begin(9600); } void loop() { // ждём данные от дисплея while (mySerial.available() > 0) { data += char(mySerial.read()); delay(2); } // если пришёл символ 'g' if (data == "g") { int c = 99; // обнуляем счётчик попаданий mySerial.print("n0.val=0"); // дописываем в посылку служебные символы конца команды comandEnd(); // цикл счётчика таймера for (int i = 0; i < 100; i++) { for (int j = 0; j < 15; j++) { mySerial.print("tsw p"); mySerial.print(j); mySerial.print(",0"); comandEnd(); mySerial.print("p"); mySerial.print(j); // все слоты дисплея закрашиваем матрёшками mySerial.print(".pic=5"); comandEnd(); } // функция для генерации случайных чисел randomSeed(analogRead(A0)); // генерируем случайное число // одна из 15 области экрана на дисплее int b = random(0, 15); mySerial.print("tsw p"); mySerial.print(b); mySerial.print(",1"); comandEnd(); mySerial.print("p"); mySerial.print(b); // появление картинки, на которую надо быстро нажать mySerial.print(".pic=3"); comandEnd(); // уменьшаем таймер на единицу и отправляем в дисплей c--; mySerial.print("j0.val="); mySerial.print(c); comandEnd(); data = ""; delay(500); } data = ""; mySerial.print("t0.txt=\"reset\""); comandEnd(); mySerial.print("tsw t0,1"); comandEnd(); mySerial.print("tsw m0,1"); comandEnd(); delay(2); } data = ""; } // функция отправки конца команды // команда поступающая в дисплей должна кончаться символами «0xFF0xFF0xFF» void comandEnd() { for (int i = 0; i < 3; i++) { mySerial.write(0xff); } }