#include "enc.h" #include #include #include #include "radDisplay.h" #include "extDisplay.h" const int input[] = {}; long inputCurrentValue[] = {0, 0, 0, 0, 0, 0, 0, 0}; long inputPreviewValue[] = {0, 0, 0, 0, 0, 0, 0, 0}; const int numPins = sizeof(input) / sizeof(input[0]); const int buttonInput[2] = {36,39}; int buttonLastState[2] = {HIGH, HIGH}; int buttonCurrentState[2]; String inputBuffer = ""; #define RXD2 (16) #define TXD2 (17) //#define DEBUGIO void setup() { #ifdef DEBUGIO Serial.begin(115200); #else Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2); #endif setupEncoder(); initRadDisplay(); initExtDisplay(); pinMode(buttonInput[0], INPUT); analogReadResolution(12); analogSetAttenuation(ADC_11db); } void loop() { for (int i = 0; i < 2; i++) { buttonCurrentState[i] = digitalRead(buttonInput[i]); if (buttonLastState[i] == LOW && buttonCurrentState[i]){ #ifdef DEBUGIO Serial.print(1001+i); Serial.print("*"); Serial.print(buttonCurrentState[i]); Serial.print("\n"); #else Serial2.print(1001+i); Serial2.print("*"); Serial2.print(buttonCurrentState[i]); Serial2.print("\n"); #endif } buttonLastState[i] = buttonCurrentState[i]; } for (int i = 0; i < numPins; i++) { inputCurrentValue[i] = map(analogRead(input[i]), 0, 4096, 0, 16); if (inputCurrentValue[i] != inputPreviewValue[i]) { inputPreviewValue[i] = inputCurrentValue[i]; #ifdef DEBUGIO Serial.print(input[i]); Serial.print("*"); Serial.print(inputCurrentValue[i]); Serial.print("\n"); #else Serial2.print(input[i]); Serial2.print("*"); Serial2.print(inputCurrentValue[i]); Serial2.print("\n"); #endif } } for (int enc = 0; enc < ENCODER_COUNT; enc++) { if (getOldencoderCount(enc) != getEncoderCount(enc)) { #ifdef DEBUGIO Serial.print(101+enc); Serial.print("*"); Serial.println (getEncoderCount(enc)); #else Serial2.print(101+enc); Serial2.print("*"); Serial2.println (getEncoderCount(enc)); #endif setOldencoderCount(enc, getEncoderCount(enc)); } } //читаем кал #ifdef DEBUGIO while (Serial.available() > 0) { char chr = Serial.read(); if (chr == '\n') { processInput(inputBuffer); inputBuffer = ""; } else { inputBuffer += chr; } } #else while (Serial2.available() > 0) { char chr = Serial2.read(); if (chr == '\n') { processInput(inputBuffer); inputBuffer = ""; } else { inputBuffer += chr; } } #endif delay(50); } void processInput(String input) { input.trim(); int firstSpace = input.indexOf(' '); int secondSpace = input.indexOf(' ', firstSpace + 1); if (firstSpace == -1 || secondSpace == -1) { return; } String n1 = input.substring(0, firstSpace); String n2 = input.substring(firstSpace + 1, secondSpace); String n3 = input.substring(secondSpace + 1); int anyVar = n1.toInt(); int x = n2.toInt(); int y = n3.toInt(); if (anyVar == 10002) { changeRad(n2.toFloat()); } if (anyVar == 10001) { changeExt(n2.toFloat()); } }