Открываем в блокноте файл C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt
Добавляем в него текст
Code: Select all
## Arduino Pro or Pro Mini (3.3V, 16/8 MHz) w/ ATmega328P
## --------------------------------------------------
pro.menu.cpu.168MHzatmega328=ATmega328P (3.3V, 16/8 MHz)
pro.menu.cpu.168MHzatmega328.upload.maximum_size=30720
pro.menu.cpu.168MHzatmega328.upload.maximum_data_size=2048
pro.menu.cpu.168MHzatmega328.upload.speed=57600
pro.menu.cpu.168MHzatmega328.bootloader.low_fuses=0xFF
pro.menu.cpu.168MHzatmega328.bootloader.high_fuses=0xDA
pro.menu.cpu.168MHzatmega328.bootloader.extended_fuses=0xFD
pro.menu.cpu.168MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
pro.menu.cpu.168MHzatmega328.build.mcu=atmega328p
pro.menu.cpu.168MHzatmega328.build.f_cpu=8000000L
Обращаю внимание на имя пункта меню - pro.menu.cpu.168MHzatmega328. Оно должно быть уникальным для каждого варианта платы/частоты. Если надо добавить несколько вариантов для разных частот то это имя у них должно различаться.
Запускаем Arduino IDE. Выбираем плату "Arduino Pro or Pro Mini". Добавленные процессоры должны появиться в выпадающем меню "Инструменты"->"Процессор"
В скетче в самом начале добавляем
Code: Select all
#include <avr/power.h>
Code: Select all
8MHz clock_prescale_set(clock_div_2);
4MHz clock_prescale_set(clock_div_4);
2MHz clock_prescale_set(clock_div_8);
1MHz clock_prescale_set(clock_div_16);
500kHz clock_prescale_set(clock_div_32);
250kHz clock_prescale_set(clock_div_64);
125kHz clock_prescale_set(clock_div_128);
Даташитное потребление ATmega329P при разном питании тактовой частоте
![Image](https://i.stack.imgur.com/NpgOy.png)
На плате кроме смого процессора есть еще светодиоды, которые тоже "кушают". При необходимости их можно демонтировать феном. Со светодиодами потребление платы при 3,3в и разной тактовой частоте
Code: Select all
16MHz 10mA
8MHz 7.7mA
4MHz 6.4mA
2MHz 5.5mA
1MHz 5mA
500kHz 4.75mA
Reference
1. Is there a simple way to reduce clock speed on an UNO?
2. Arduino’s ATMega328 Power Consumption
3. What is the best way to estimate the power consumption of an Atmega328p microcontroller?