void loop() {
analogWrite(col, xCol);
xBaza = Serial.read();
if(xBaza != xBaza0) {
xBaza0 = xBaza;
analogWrite(baza, xBaza);
writes();
}
}
1. Попадаете в условие, выполняете действия. После чего идете на второй круг. в переменной сидит, например 50, которое вы присваиваете.
2.
Снова читаете, но уже чтение порта возвращает вам -1, если не ошибаюсь, если не прочитано ни одного символа.
Сравниваем: -1 не равно 50 и вы опять в условии. Выполняется вывод и присваивание переменной значения -1.
После этого обе переменные становятся -1 и вы не попадаете в условие. Т.к. при попытке чтения порта результат -1 и в переменной тоже -1.
И читаете Вы не цифру, а ее ASCII код.
Возможно поможет
if(xBaza != xBaza0 && xBaza != -1) {