ARDUINO UNO работает некорректно

Здравствуйте!

Вот наипростейший скетч.

bool r;
bool g;
bool b;
bool d13;
int trigger;
long int time1;
void setup()
{
    pinMode(8, OUTPUT);
    digitalWrite(8, 0);
    pinMode(9, OUTPUT);
    digitalWrite(9, 0);
    pinMode(10, OUTPUT);
    digitalWrite(10, 0);
    pinMode(13, OUTPUT);
    digitalWrite(13, 0);
    r=0;
    g=0;
    b=0;
    time1=millis()+500;
    trigger=0;
}
void loop()
{
    if ((millis()-time1)>=500) r=1;//включился красный светодиод
    if ((millis()-time1)>=1000) g=1;//включился желтый светодиод
    if ((millis()-time1)>=1500) b=1;//включился зеленый светодиод
    if ((millis()-time1)>=2000) b=0;//выключился зеленый светодиод
    if ((millis()-time1)>=2500) g=0;//выключился желтый светодиод
    if ((millis()-time1)>=3000) r=0;//выключился зеленый светодиод
    if ((millis()-time1)>=3500) 
    {
        	time1=millis();
        	trigger=!trigger;
               d13=trigger;
    }
    digitalWrite(13, d13);
    digitalWrite(10, b);
    digitalWrite(9, g);
    digitalWrite(8, r);
}

на одной плате работает нормально как задумано.

На второй - в СЕЙЧАС восемь раз медленней.

Здесь какая-то проблема со второй платой.
Плата запитана от USB компа. 3 мая все было нормально. Пришли менять электросчетчик, вырубили пробки. Врубили пробки. Плата стала работать некорректно. При компиляции вот такая ошибка: # avrdude: stk500_recv(): programmer is not responding и работа в 8 раз медленнее.

Забросил это дело.

Вчера открыл пустой скетч:

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:
}

откомпилировал без ошибки.
Затем вышеуказанный скетч. Откомпилировал без ошибки. Стала работать нормально. Выключил компьютер.

Сегодня включил. Работает в 8 раз медленнее. Все указанные действия не помогают. Появляется то же самое сообщение об ошибке.

Вроде ж понятно, что это ошибка загрузки, а не компиляции. Плата не видится, вот и все дела

1 лайк

Видимо, слетел загрузчик и фьюзы (включился div8 по умолчанию). Запишите новый загрузчик (при этом фьюзы восстановятся) и будет много счастья.

1 лайк

Ну да. Причём тут компиляция к загрузке? Если загрузка не работает, то и компиляция до одного места. И наоборот - без компиляции не будет загрузки.)

Никогда этого не делал, но придется.

Вот здесь показано как это делается с помощью рабочей Arduino Uno. А есть ли еще другой способ записи загрузчика?

Есть, при помощи программатора.

1 лайк

То есть в любом случае без вспомогательных “железяк” не обойдешься?

Нет, не обойдёшься.

1 лайк

Программатор в нашем деле - штука незаменимая, например

Брать с переходником - по ссылке это 1 set

2 лайка

Нищеброды обходятся и подручными средствами.

Вот USBasp в коробочке на столе - и есть подручное средство )))

Но его же нужно где то взять/купить? Не всех это устраивает.)

Для меня это темный лес, надеюсь пока, а нужна еще какая-нибудь прошивка в виде файла, нужна ли специальная программа.
И еще. На одном краю Arduino Uno есть два ряда по три ножки. С таким разъемом и надо брать программатор?

Кому и кобыла - невеста ))) Вот ничем помочь не могу )))

Я же и написал - брать с переходником

Есть же вторая плата. И даже так любимое неофитами видео - https://www.youtube.com/watch?v=tOjJU6c7diY

Меня бы это устроило, но не знаю, с чего начать. Да и ESP32 хочу начать осваивать. Там наверно тоже программатор нужен.

Нет. Там прошивка только через загрузчик или через Веб-интерфейс

Абсолютно верно.

Если нужно здесь и сейчас, есть вторая плата, а программатора нету - то да. А если иметь в виду перспективу, лучше таки купить программатор - стоит-то копейки ))