Формула выглядит так: вольт * 5,9-6,6 = мГц (действительный между 1,8 В и 4,5 В), поэтому при 3,3 В это даст 12,8 МГц. Имейте в виду, что если вы работаете на частоте 12,8 МГц, ЛЮБОЕ падение ниже 3,3 В МОЖЕТ вызвать проблемы (и очень трудно диагностировать тоже!), Или вы МОЖЕТЕ сойти с рук.
Тем не менее, чипы Arduino Atmega328p имеют обнаружение «отключения» на уровне 4,3 В - при любом падении ниже, чип отключается. Вы можете попросить интернет-провайдера (AKA ICSP) заменить предохранители - зайдите на сайт http://www.engbedded.com/fusecalc/, чтобы узнать, на что устанавливать предохранители. Вы также можете использовать ISP для считывания текущих предохранителей или перепрограммировать микросхему без платы Arduino - все мои проекты имеют 6-контактный разъем. Если вы сделаете это, перед перепрограммированием с использованием платы Arduino вам нужно будет «Burn Bootloader» (в меню инструментов). Обратите внимание, что программирование по-прежнему можно выполнять через Arduino IDE.
В качестве альтернативы, если вы хотите стать «легким» (и иметь интернет-провайдера), вы можете заменить предохранители на внутренние часы с тактовой частотой 8 МГц - это также освобождает 2 дополнительных контакта! Имейте в виду, однако, что внутренние часы могут дрейфовать 1,2 часа в день (= 5%), по сравнению с 1,7 секундами в день (= 20 частей на миллион) на типичном кристалле кварца. Если вы не используете его для хронометража, это, вероятно, не имеет значения.
Вам нужно будет внести изменения во время, для вашего кода - вам нужно добавить файлboards.txt с правильными настройками для вашего чипа / тактовой частоты и т. Д. - вы можете скопировать настройки из записи для платы, изменить имя и изменить настройка "build.f_cpu"; перезапустите (или запустите) вашу Arduino IDE, перейдите в «Инструменты-> Доска» и выберите доску, которую вы добавили.
Вы можете переместить микросхему на плату или с нее и перепрограммировать ее там (обратите внимание, что плата, выбранная в Tools-> Board, является платой FINAL, а не платой программирования). Будьте осторожны, подключая / отключая его - в конце концов, вы согнете контакты! В качестве альтернативы, вы можете использовать ISP (ICSP), как указано выше - очень рекомендуется. Программирование ISP также будет работать, если для микросхемы установлен заводской режим по умолчанию, при условии, что он имеет рабочие часы.
Сколько энергии потребляет чип, во многом зависит от того, что вы с ним делаете - не только тактовые частоты, тактовый источник и т. Д., Но также и режимы сна. Если вы много спите, он может меньше тянуться при работе быстрее, чем при медленной работе - если почти все ваше время спит, то энергопотребление следует считать за такт, а не за секунду - если ваши часы в два раза быстрее, и половину тока, то вы получаете тот же ток в каждой инструкции. Поскольку все остальное время вы спите, вы не получаете никакой выгоды. На http://www.gammon.com.au/power приведена очень хорошая разбивка энергопотребления, советы по экономии энергии и т. Д.
Если вы слишком сильно замедляете свои часы, последовательный интерфейс и i2c могут стать ненадежными (если вы не снизите скорость), но я ожидаю, что смогу снизить частоту до 1 МГц, прежде чем это станет проблемой - чип с частотой 1 МГц, пытающийся сделать 9600 бит / с имеет 104 инструкции на бит передаваемых данных. i2c работает с частотой 100 кГц, поэтому вы получаете 10 инструкций на бит (с частотой 1 МГц) - возможно, при нажатии. 8 МГц должно быть хорошо. Тест, тест, тест.
ОБНОВЛЕНИЕ: есть 3 возможных настройки для обнаружения отключения - есть 3 возможных значения для AtMega328p: отключено, 1,8 В, 2,7 В и 4,3 В. У меня сложилось впечатление (выше), что Arduinos обычно были настроены на 4.3v; по-видимому, это не так (см. комментарий ниже). Я помню, что видел где-то, что было обнаружение отключения. Об этом следует помнить, если ваш arduino перезагружается, особенно когда вы нагружаете батарею большими нагрузками (работают моторы, несколько светодиодов и т. Д.).