Используем вывод RESET
На плате Arduino имеется входной контакт Reset (иногда подписан как RES). Его установка в логический ноль приводит к сбросу процессора. А также есть отдельная кнопка Reset. Кнопка используется, если вы хотите заново перезапустить прошивку, не загружая её с компьютера. Бывает так, что после сборки проекта доступ к кнопке затруднителен, а сброс процессора необходим. В этом случае вывод Reset будет кстати. Мы можем управлять сбросом через свою кнопку, которую можно вывести в удобное место.

Добавим на отладочную плату кнопку и соединим её одним выводом к порту Reset, а вторым к выводу GND

Специально для схемы код не нужен, так как обычное нажатие кнопки сделает всю работу без строчки кода. А мы напишем скетч, чтобы убедиться в работоспособности схемы — будем увеличивать значение счётчика и кнопкой сбрасывать в 0.
int counter; void setup() < Serial.begin(9600); >void loop()
Arduino.ru

Проблемы с USB портом чтоли . Загрузил скетч , серва двигается,и при этом в диспетчере устройств порт( COM 3 )на котором сама плата,стал то пропадать ,то опять появляться и сбросить загруски больше не получается,и даже кнопкой reset ? Какой то геморой сплошной .И ещё ,на 8ю винду дрова не встают для ардуино ,устоновил вторую ОС win7 и ситуация происходит выше написанная.
Кто нибудь подскажет плизз я в этом деле новичёк!,как сбрасывать правильно и вообще последовательность работы?и вообще нужны ли ждамперы и где правильно должны они стоять.
Заранее благодарен Алексей!
- Войдите на сайт для отправки комментариев
Чт, 22/11/2012 — 01:04
Зарегистрирован: 03.12.2011
Загрузите этот скетч чтобы «отформатировать» arduino. Только это вам ничего не даст.. Вы должны использовать дополнительное питание когда подключаете серво.
void setup() <> void loop() <>
- Войдите на сайт для отправки комментариев
Чт, 22/11/2012 — 02:23

Зарегистрирован: 18.11.2012
Спасибо! вобщем ,каким то макаром и долгими эксперементами я наткнулся на этот скетч:
// светодиод, подключённый к digital pin 13 будет изменять своё
// состояние при изменении напряжения на digital pin 2
//
int pin = 13;
volatile int state = LOW;
void setup()
pinMode(pin, OUTPUT); // порт как выход
attachInterrupt(0, blink, CHANGE); // привязываем 0-е прерывание к функции blink().
>
void loop()
digitalWrite(pin, state); // выводим state
>
state = !state; // меняем значение на противоположное
>
И мне пришло в голову, после многих копаний по разным форумам ,нажать кнопку RESET,при этом её удерживая,потом нажал на загруску скетча и когда компиляция прошла,сразу при загрузке отпустил кнопку. По светодиодам на плате я понял ,что загрузка прошла успешно,я поставил джампер на самый близкий штекер ,расположенный уUSB входа.
Всё прекрасно заработало,но единственное большое НО!
Так же не должно же быть! Обычно при описаниях работ с arduino на видео и так на любой писанине всё на много просто.
Может в чём то другом дело,подскажите пожалуйста?
- Войдите на сайт для отправки комментариев
Как сбросить Arduino до нуля 3 способа


Другое
На чтение 5 мин Просмотров 3.5к. Опубликовано 31.01.2023
Arduino — торговая марка аппаратно-программных средств для построения и прототипирования простых систем. Из этого следует вывод, что есть техническая часть сборки плат Arduino и программная Arduino IDE. В программной части можно прошивать плату на определённые действия. То есть мы подключаем какие-то компоненты к нашей плате и прошиваем её на определённые действия.
Скетчи – программные коды используемые для прошивки платы. Они остаются после прошивки в памяти самой Arduino, то есть платы. Бывает так, что скетч нужно убрать и поставить другой и данное действие называется сбросом или Reset Arduino.

Часто возникает вопрос, как сбросить Arduino. Есть несколько простых способов сделать это на аппаратном уровне:
- С помощью кнопки сброса
- С помощью пина Reset
- С помощью внешней кнопки сброса
И также на программном уровне:
- С помощью функции сброса
- Методом сторожевого таймера
Любой из этих методов может повредить плату, так что применять их нужно с осторожностью. Сейчас разберёмся как не допустить ошибок.

Для начала, что такое сброс? Сброс платы Arduino аналогичен отключению и повторному подключению платы.
Перезагрузка Arduino похожа на перезагрузку вашего компьютера. Когда вы перезагружаете его, он завершает все запущенные процессы и вновь запускает систему.
Зачем вам сбрасывать настройки? Не всегда всё может пойти, как задумано, и функция сброса поможет вашей Arduino начать выполнение программы заново.
Причины сброса

- Чтобы избавиться от внутренних ошибок.
Код, запущенный вами может неправильно работать из-за ошибки в Arduino. Сброс поможет избавиться от любых внутренних ошибок. - Чтобы выйти из бесконечного цикла.
Бывает, что ваша программа перестаёт отвечать в середине процесса. Скорее всего, она попала в бесконечный цикл и без помощи не может его прервать. Нужно сбросить плату, чтобы выйти из цикла, это является одной из самых распространённых причин использования опции сброса. - Чтобы устранить ошибки.
Сброс – первое, что приходит на ум программисту, когда он работает на Arduino. Зачастую, это всегда решает проблему.
Аппаратные способы сброса
Начнём с первых трёх способов.
- С помощью кнопки сброса.
На плате Arduino UNO есть маленькая оранжевая кнопка. Нажатие на неё – самый лёгкий способ сбросить плату Arduino. - Использовать Reset pin.
Если внимательно посмотреть на плату, то вы увидите контакт сброса. Он находится рядом с контактами питания

Вам лишь нужно правильно подключить всё и поэтому всё отмечено на рисунке.
Как это работает:
Подключите контакт сброса к одному из контактов ввода-вывода на плате и загрузите кода который сбрасывает вашу плату.
В коде вам нужно установить контакт цифрового ввода-вывода на высокий уровень и объявить его как выходной контакт. То есть когда программа начнёт выполняться, вышеуказанный контакт сгенерирует выход высокого логического уровня и подаст его на контакт RESET, который сбросит Arduino.
Настройка внешней кнопки сброса
Если вы не можете дотянуться до кнопки сброса на плате Arduino или если на вашей плате установлен экран, вам нужно настроить внешнюю кнопку сброса. Всё что вам нужно это: макетная плата, кнопка и пара перемычек вместе с платой Arduino.

Подача низкого напряжения в течении короткого времени на контакт RESET приведёт к сбросу Arduino UNO. Это значит что необходимо лишь подать низкое напряжение на контакт RESET с помощью кнопки.
Для этого вам нужно подключить кнопку в нормально открытом состоянии, при этом одна сторона должна быть подключена к контакту RESET, а другая — к GND. В нормальном положении контакт RESET будет высоким, но как только вы нажмете кнопку, он соединится с контактом GND и, следовательно, будет иметь низкий логический уровень.
Данный способ поможет перезагрузить Arduino без необходимости загружать какой-либо код на плату.
Программный сброс. Использование функции сброса
В этом способе всё гораздо проще. Если вам нужно ресетнуть Arduino, то просто нужен небольшой код:
void(* resetFunc) (void) = 0;
Чтобы сбросить Arduino просто вызовите эту функцию:
resetFunc();
Если быть точным, то это не сброс, а обычный перевод стека в начало программного кода, иначе говоря в нулевой адрес. Объясняя проще, программа начинает выполняться с самого начала, при этом не влияя на установки МКК на момент исполнения.
Метод сторожевого таймера
Еще один отличный способ сбросить настройки платы Arduino — использовать метод сторожевого таймера. Этот метод использует библиотеку сторожевого таймера для сброса Arduino в случае, если программа не отвечает должным образом, и этот метод рекомендуется производителем чипа AVR. Таким образом, это один из наиболее предпочтительных способов сброса настроек плат Arduino.
Заголовочный файл должен быть включен для работы сторожевого таймера.
Во-первых, таймер должен быть включен. Продолжительность таймера может варьироваться от 15 миллисекунд до 8 секунд, в зависимости от вашего приложения. Например, если вам нужно установить таймер на 30 секунд, вы напишите wdt_enable(WDTO_30ms).
Точно так же вы можете изменить количество секунд и написать их вместо «30 мс». Таймер работает, перезагружая микроконтроллер, если выполнение программы занимает больше времени, чем обычно.
Например, если основная программа должна выполняться 40 мс, сторожевой таймер настроен таким образом, что если основная программа выполняется более 40 мс, микроконтроллер будет сброшен. Если программа работает нормально, она сбросит сторожевой таймер до того, как он коснется нуля. Если программа зависает в цикле и не может сбросить сторожевой таймер, то в этом случае генерируется прерывание, которое сбрасывает Arduino.
Итоги
Теперь, когда вы знаете, что нужно для сброса платы Arduino, вы можете легко сбросить настройки Arduino, если она застряла в бесконечном цикле или перестала отвечать. Вам лишь нужно убедиться, что вы выполняете всё правильно.
Arduino Pro Micro: Reset & Restore Bootloader
If you’ve accidentally uploaded some code to the Arduino Pro Micro board as “Arduino Micro”, “Arduino Leonardo” or any other board, there is a big chance to brick your board by crashing its bootloader so it won’t be recognized by the PC at all anymore.
To revive the “bricked” Arduino Pro Micro you can try to reset the board and restore the bootloader by uploading any sketch with the board and processor options correctly set.
Cool Tip: Add “Arduino Pro Micro” board to the Arduino IDE! Read more →
Reset Arduino Pro Micro
The process of resetting of the Arduino Pro Micro is a bit tricky as it doesn’t have a hardware RESET button.
Nevertheless it still can be put in a bootloader reset mode by wiring twice the RST (reset) and GND (ground) pins – use for this a piece of a wire or create a temporary button.

Bootloader Reset Feature: Arduino IDE has only 8 seconds to access the board after you short twice the RST to GND to invoke the bootloader reset feature.
Follow these steps to reset the “bricked” Arduino Pro Micro board and reinstall the bootloader:
-
Open an empty sketch in the Arduino IDE and select the correct board and processor:
Top Menu -> Tools -> Board: "SparkFun Pro Micro" Top Menu -> Tools -> Processor: "ATmega32U4 (5V, 15MHz)"
Top Menu -> Tools -> Port: "" -> Serial ports
Top Menu -> Sketch -> Upload
Once the status changes to “Done uploading.” it will mean that it worked – you have successfully reset the Arduino Pro Micro board and restored the bootloader.