Rumusnya tampaknya volt * 5.9-6.6 = mhz (valid antara 1.8v dan 4.5v), jadi pada 3.3v, ini akan menghasilkan 12.8mhz. Ketahuilah bahwa, jika Anda berlari dengan kecepatan 12.8mhz, SETIAP turun di bawah 3.3V MUNGKIN menyebabkan masalah (dan juga sangat sulit untuk didiagnosis!) Atau Anda MUNGKIN melakukannya.
Namun, chip Arduino Atmega328p memiliki deteksi "brown-out" pada 4.3V - setiap penurunan di bawah itu, chip dimatikan. Anda bisa mendapatkan ISP (AKA ICSP) untuk mengubah sekering - kunjungi http://www.engbedded.com/fusecalc/ untuk mengetahui apa yang harus ditetapkan dengan sekering. Anda juga dapat menggunakan ISP untuk membaca sekering saat ini, atau memang memprogram ulang chip tanpa papan Arduino - semua proyek saya memiliki header 6-pin. Jika Anda melakukan ini, sebelum memprogram ulang menggunakan papan Arduino, Anda harus "Membakar Bootloader" (di menu alat). Perhatikan bahwa pemrograman masih dapat dilakukan melalui Arduino IDE.
Atau, jika Anda ingin "menyalakan" (dan memiliki ISP), Anda dapat mengubah sekering untuk menggunakan jam 8mhz internal - ini membebaskan 2 pin tambahan juga! Perlu diketahui, bagaimanapun, bahwa jam internal dapat melayang 1,2 jam per hari (= 5%), dibandingkan dengan 1,7 detik per hari (= 20 bagian per juta) pada kristal kuarsa yang khas. Jika Anda tidak menggunakannya untuk ketepatan waktu, ini mungkin tidak masalah.
Anda perlu membuat perubahan pada waktu, untuk kode Anda - Anda perlu menambahkan boards.txt dengan pengaturan yang benar untuk chip / clockspeed Anda dll - Anda dapat menyalin pengaturan dari entri untuk papan, mengubah nama, dan mengubah pengaturan "build.f_cpu"; restart (atau mulai) IDE Arduino Anda, buka "Tools-> Board" dan pilih board yang Anda tambahkan.
Anda dapat memindahkan chip on / off board, dan memprogram ulang di sana (perhatikan bahwa board yang dipilih di Tools-> Board adalah board FINAL, bukan board pemrograman). Hati-hati memasukkan / mencabutnya - pada akhirnya, Anda AKAN menekuk pin! Atau, Anda dapat menggunakan ISP (ICSP), seperti yang disebutkan di atas - sangat direkomendasikan. Pemrograman ISP juga akan berfungsi jika chip tersebut bawaan pabrik, asalkan memiliki jam kerja.
Berapa banyak daya yang digunakan oleh chip sangat tergantung pada apa yang Anda lakukan dengannya - tidak hanya kecepatan jam, sumber jam, dll tetapi juga mode tidur. Jika Anda banyak tidur, itu mungkin kurang menarik ketika berjalan lebih cepat daripada berjalan lebih lambat - jika hampir semua waktu Anda tertidur, maka konsumsi daya harus dihitung per siklus jam, bukan per detik - jika jam Anda setengah kecepatan, dan setengah saat ini, maka Anda menggambar arus yang sama per instruksi. Karena sisa waktu Anda dihabiskan untuk tidur, Anda tidak mendapat manfaat. Lihat http://www.gammon.com.au/power untuk rincian penggunaan daya yang sangat baik, kiat tentang cara menghemat daya, dll.
Jika Anda memperlambat jam terlalu banyak, serial dan i2c mungkin menjadi tidak dapat diandalkan (kecuali jika Anda memperlambat kecepatannya), tapi saya berharap dapat turun ke 1mhz sebelum ini menjadi masalah - sebuah chip 1mhz coba lakukan 9600bps memiliki 104 instruksi per bit data yang ditransfer. i2c beroperasi pada 100khz, sehingga Anda mendapatkan 10 instruksi per bit (pada 1mhz) - mungkin mendorongnya. 8mhz seharusnya baik-baik saja. Tes tes tes.
UPDATE: Ada 3 pengaturan yang memungkinkan untuk deteksi brown-out - ada 3 nilai yang mungkin untuk AtMega328p: dinonaktifkan, 1.8v, 2.7v, dan 4.3v. Saya mendapat kesan (di atas) bahwa Arduino biasanya diatur ke 4.3v; ternyata bukan itu masalahnya (lihat komentar di bawah). Saya ingat melihat suatu tempat bahwa ada deteksi kecoklatan. Ini adalah sesuatu yang perlu diingat, jika arduino Anda diatur ulang, terutama saat meletakkan beban yang lebih besar pada baterai (motor berjalan, banyak led, dll.).