Здравствуйте ! Cтолкнулся не сколько с проблемой сколько с интересом . На сколько я зна тип переменных char нужен для хранения символов "аски" . Но при попытке вывода текста в монитор порта через переменную, я получа . Хотя через массив string вывод работает должным образом. "стринги " использовать не хочу , ибо простая замена char на string в коде, занимает 3% памяти а воть мой код Код (C++): uint32_t funTimer;//точкa отсчёта таймера int flfun;//флаг функции задержек int switchFun;// флаг процента выполнения int pinBuffer;// буфер предыдущего пина функции задержек void setup() { Serial.begin(9600); // открыть порт на скорости //выходы pinMode(4 , OUTPUT);/*компрессор*/pinMode(5 , OUTPUT);/*подушка*/pinMode(7, OUTPUT);/*нож*/pinMode(6 , OUTPUT);/*сброс*/ //входы pinMode(10, INPUT_PULLUP);/*концевик*//*pinMode(11, INPUT_PULLUP);*//*стоп*/pinMode(A7, INPUT);/*вакуум*/pinMode(A6, INPUT);/*нагрев*/ pinMode(LED_BUILTIN, OUTPUT); delay(1000); } void loop() { funDelay (LED_BUILTIN , 10, "ligh"); } int funDelay (int pin , int Delay, char Text) { //порт, задержка, текст в порт float crutch; if (flfun == 0 && pinBuffer != pin) { //проверка на первый запуск digitalWrite(pin, HIGH); Serial.print(Text); Serial.print(" на порту № "); Serial.print(pin); Serial.print(" запущен на "); Serial.print(Delay); Serial.println(" секунд"); funTimer = millis(); //сброс таймера float crutch = Delay / 4; flfun = 1; } if (millis() - funTimer >= Delay * 1000 && flfun > 0) { // ищем разницу (Delay) digitalWrite(pin, LOW); Serial.print(Text); Serial.print(" на порту № "); Serial.print(pin); Serial.println(" отклчён "); pinBuffer = pin; //запомним пин flfun = 0; switchFun = 0; //сброс } if (millis() - funTimer >= crutch * 1000 && flfun == 1 && switchFun < 1) { Serial.println("25% "); switchFun = 1; } if (millis() - funTimer >= crutch * 1000 * 2 && flfun == 1 && switchFun < 2) { Serial.println(" 50% "); switchFun = 2; } if (millis() - funTimer >= crutch * 1000 * 3 && flfun == 1 && switchFun < 3) { Serial.println(" 75% "); switchFun = 3; } }
Потамушта не нужно путать отдельный символ Код (C++): char Text; и указатель на строку Код (C++): char * Text;
Это условности. По факту в этом типе данных можно хранить любое целочисленное число без знака размерностью 1 байт.