La formule semble être volt * 5,9-6,6 = mhz (valable entre 1,8 v et 4,5 v), donc à 3,3 v, cela donnerait 12,8 mhz. Sachez que si vous utilisez une fréquence de 12,8 MHz, TOUTE chute en dessous de 3,3 V PEUT causer des problèmes (et très difficile à diagnostiquer aussi!) Ou vous POUVEZ vous en tirer.
Cependant, les puces Arduino Atmega328p ont une détection de "brunissement" réglée à 4,3 V - toute baisse en dessous, la puce s'arrête. Vous pouvez obtenir un FAI (AKA ICSP) pour changer les fusibles - allez sur http://www.engbedded.com/fusecalc/ pour savoir sur quoi régler les fusibles. Vous pouvez également utiliser le FAI pour lire les fusibles actuels, ou bien reprogrammer la puce sans carte Arduino - tous mes projets ont un en-tête à 6 broches. Si vous faites cela, avant de reprogrammer en utilisant la carte Arduino, vous devrez "Graver Bootloader" (dans le menu des outils). Notez que la programmation peut toujours être effectuée via Arduino IDE.
Alternativement, si vous voulez aller "léger" (et avoir un FAI), vous pouvez changer les fusibles pour utiliser l'horloge interne de 8 MHz - cela libère également 2 broches supplémentaires! Sachez cependant que l'horloge interne peut dériver 1,2 heure par jour (= 5%), contre 1,7 seconde par jour (= 20 parties par million) sur un cristal de quartz typique. Si vous ne l'utilisez pas pour le chronométrage, cela n'a probablement pas d'importance.
Vous devrez modifier le timing, pour votre code - vous devez ajouter un boards.txt avec les paramètres corrects pour votre puce / vitesse d'horloge, etc. - vous pouvez copier les paramètres de l'entrée de la carte, changer le nom et changer le paramètre "build.f_cpu"; redémarrez (ou démarrez) votre Arduino IDE, allez dans "Outils-> Carte" et sélectionnez la carte que vous avez ajoutée.
Vous pouvez déplacer la puce sur / hors de la carte, et la reprogrammer là (notez que la carte sélectionnée dans Outils-> Carte est la carte FINALE, pas la carte de programmation). Faites attention à le brancher / débrancher - vous finirez par plier les broches! Alternativement, vous pouvez utiliser ISP (ICSP), comme mentionné ci-dessus - fortement recommandé. La programmation ISP fonctionnera également si la puce est réglée par défaut en usine, tant qu'elle dispose d'une horloge de travail.
La quantité d'énergie utilisée par la puce dépend énormément de ce que vous en faites - pas seulement les vitesses d'horloge, la source d'horloge, etc. mais également les modes de veille. Si vous dormez beaucoup, il peut dessiner moins en courant plus vite qu'en courant plus lentement - si presque tout votre temps est endormi, alors la consommation d'énergie doit être comptée par cycle d'horloge, pas par seconde - si votre horloge est la moitié de la vitesse, et demi-courant, puis vous tirez le même courant par instruction. Puisque le reste de votre temps est endormi, vous n'en tirez aucun avantage. Voir http://www.gammon.com.au/power pour une très bonne répartition de la consommation d'énergie, des conseils sur la façon d'économiser de l'énergie, etc.
Si vous ralentissez trop votre horloge, la série et l'i2c peuvent devenir peu fiables (à moins que vous ne ralentissiez la vitesse), mais je m'attendrais à pouvoir descendre à 1 mhz avant que cela ne soit un problème - une puce de 1 mhz essayant de faire 9600 bps a 104 instructions par bit de données transférées. i2c fonctionne à 100 khz, vous obtenez donc 10 instructions par bit (à 1 mhz) - éventuellement en le poussant. 8 MHz devrait être bien. Test, test, test.
MISE À JOUR: Il y a 3 paramètres possibles pour la détection de brunissement - il y a 3 valeurs possibles pour l'AtMega328p: désactivé, 1,8 V, 2,7 V et 4,3 V. J'avais l'impression (ci-dessus) que les Arduinos étaient normalement réglés sur 4.3v; ce n'est apparemment pas le cas (voir commentaire ci-dessous). Je me souviens avoir vu quelque part qu'il y avait une détection de baisse de tension. C'est quelque chose à garder à l'esprit, si votre Arduino se réinitialise, en particulier lorsque vous mettez des charges plus importantes sur la batterie (moteurs en marche, plusieurs LED, etc.).