Проблема, с которой вы столкнулись, связана с переполнением переменной типа `long` в Arduino. По умолчанию, тип `long` в Arduino имеет размер 32 бита и может хранить числа от -2,147,483,648 до 2,147,483,647. Когда вы пытаетесь присвоить переменной `rmp` результат умножения 966 на 200, результат (193,200) находится в пределах допустимого диапазона.
Однако, если вы видите отрицательное число, это может быть вызвано тем, что переменная `rmp` была объявлена в другом месте кода и уже содержала отрицательное значение из-за переполнения, или же результат умножения был неправильно интерпретирован системой.
Вот исправленный вариант кода:
long rmp = 966L * 200L; // Используйте суффикс L для обозначения long
Serial.println(rmp);
Убедитесь, что вы используете суффикс `L` после чисел, чтобы указать, что они должны быть обработаны как значения типа `long`. Это поможет избежать переполнения и гарантировать, что умножение будет выполнено правильно. Попробуйте этот исправленный код и посмотрите, решит ли это вашу проблему. Если проблема остается, проверьте, нет ли других частей кода, которые могут влиять на значение `rmp` до этой операции умножения.
Вот сам код:
long rmp=0;
rmp=966*200;
Serial.println(rmp);
Я уже не знаю что делать...