Reset arduino это

Перезагрузка Ардуино программно командой

Для того, чтобы перезагрузить Arduino не нажимая кнопку Reset, существует три варианта — все способы мы рассмотрим в этом обзоре. Перезагрузку Arduino требуется выполнять при зависании микроконтроллера или при работе с nRF24L01+ радио модулем, например, когда трансивер теряет связь и перестает работать. Перезагрузить радиопередатчики сложно, а вот перезагрузить Ардуино не составит проблем.

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • резистор на 1 кОм;
  • макетная плата;
  • провода «папа-папа».

Программная перезагрузка Ардуино (soft reset)

Программная перезагрузка — это на самом деле не настоящий сброс программы, а просто переход в начало кода (в нулевой адрес). То есть код начинает исполнятся с самого начала, не влияя на установки Ардуино на момент soft reset. Например, если на момент перезагрузки микроконтроллера был установлен сигнал «HIGH» на каком-то выходе, то значение не вернется по умолчанию в «LOW», а так и останется «HIGH».

Перезагрузка Ардуино из программы (softReset)

Пояснения к коду:

  1. функция asm volatile(«jmp 0x00»); перезапускает программу с начала, но не сбрасывает порты, команду можно использовать в любом месте кода;
  2. в нашем примере перезагрузка из программы происходит каждые 10 секунд.

Чтобы использовать сторожевой таймер (watchdog), необходимо включить файл avr/wdt.h, а затем вызвать функцию wdt_enable(). Сторожевой таймер — это встроенный таймер (до 8 секунд), который можно запустить или сбрасывать в начальное состояние программным способом. Как только таймер «дотикает» до нуля, контроллер подает сигнал сброса и устройство уходит в hard перезагрузку.

Перезагрузка Ардуино при зависании (Watchdog)

Пояснения к коду:

  1. чтобы не происходило перезагрузки микроконтроллера, следует снять комментарий с команды wdt_reset();, тогда счетчик будет запускаться заново — в противном случае каждые 4 секунды будет происходить перезагрузка Ардуино.

Аппаратная перезагрузка Ардуино (hard reset)

Аппаратная перезагрузка возвращает все настройки платы по-умолчанию, т.е. все переменные возвращаются к исходному значению, а все задействованные порты отключаются и устанавливаются заново. Т.е. hard reset — это самая настоящая перезагрузка, которая происходит при нажатии на кнопку RESET. Но эту перезагрузку также можно вызвать из кода, подав низкий сигнал на порт Reset Ардуино.

Как перезагрузить Arduino на программном уровне

Пояснения к коду:

  1. важно установить высокий уровень сигнала на 12 пине в самом начале программы, иначе будет происходить сброс;
  2. в примере перезагрузка Ардуино из кода происходит каждые 10 секунд.

Заключение. Мы рассмотрели, как перезагрузить Ардуино на программном уровне на примере трех вариантов. Не забывайте, что используя аппаратную перезагрузку необходимо быть внимательным и устанавливать нужные значения до перезагрузки микроконтроллера. Ну а если нужен самый настоящий reset микроконтроллера, то используйте аппаратную перезагрузку Ардуино (hard reset).

Источник

Adblock
detector