USB-serial контроллер Arduino перезагружает МК каждый раз, когда терминальная программа (в т.ч. Serial monitor, встроенный в ПО Arduino IDE) устанавливает соединение. Реализовано это следующим образом: у USB-serial контроллера вывод DTR (Data Terminal Ready) связан с выводом RESET. Если программа, работающая с виртуальным последовательным портом, использует DTR, то при установке соединения МК перезагружается. Сделано это для того, чтобы обеспечить загрузку скетча из Arduino IDE - МК перезагружается перед загрузкой кода.
По скольку у Вас плата Ардуино UNO самым простым способом будет установка конденсатора между входами RST и GND емкостью 10 мкф.
Пример:
Шаг 1. Прошейте плату Ардуино UNO следующим скетчем:
// переменная счетчика
uint16_t i=0;
void setup() {
// открываем порт на скорости 9600
Serial.begin(9600);
}
void loop() {
// печатаем значение счечика
Serial.println(i,DEC);
// увеличиваем значение счечика
i++;
// пауза одна секунда
delay(1000);
}
Шаг 2. Отключите питание платы
Шаг 3. Установите конденсатор емкостью 10 мкф (не забывайте соблюдать полярность) между входами RST и GND
Шаг 4. Подключите плату к ПК
Шаг 5. Откройте монитор порта
Как мы видим переменная счетчика имеет ненулевое значение - т.е. плата не перезагрузилась после открытия монитора порта. Теперь использование терминала не приведет к перезагрузке платы.
Чтобы вновь появилась возможность заливать скетчи необходимо либо отключить конденсатор либо:
1. Нажать и удерживать кнопку RESET
2 Начать загрузку скетча
3. Как только мигнул светодиод RX отпустить её
Про другие способы (в том числе связанные с переделкой платы) можно прочитать в этой статье
p.s: вариант с установкой резистора лично у меня не сработал