One of my main goals is for the circuit to find a way to lower the power consumption of the circuit as possible. I've made a couple of improvements that really helped a lot. Here are my findings:
- Lowering the internal clock of the ATTiny85 from 16MHz to 1MHz helped reduce the idle mode current draw from an average of 7.75mA to 0.97mA.
- Increasing the resistance to lower down the current passing through the motor (See schematic, denoted by R2) helped reduce the running motor current draw from 50mA to 45mA. It lessened the strength of the vibration and it skirted dangerously low to the lowest operating current of my vibration motor. I reverted to the original resistance values for now.
- Switching the code to make use of a watchdog timer when the ATTIny85 is idle has helped significantly lowering the current draw in idle mode from 0.97mA to 4uA. A huge improvement! (Will make a log about this in the future, but if you can't wait more info here).
So far this were the improvements that I did. Here's a table to give a better idea of the improvements that I did and how it affected the power consumption.
|Internal Clock||Watchdog||Motor Resistance||Motor Running Current Draw||Circuit Idle Current Draw|
|16 MHz||No||47 ohms||50 mA||7.75 mA|
|1 MHz||No||47 ohms||50 mA||0.97 mA|
|1 MHz||No||0 ohms||75 mA||1.38 mA|
|1 MHz||No||100 ohms||45 mA||0.97 mA|
|1 MHz||Yes||47 ohms||50 mA||4.00 uA|
My concern right now is that the current draw of the motor when it is running is a bit high. But since the motor has a minimum operating current of 40 mA, it means I cannot go down any further if I wanted to. I may need to look for a less power hungry vibration motor, if such a thing exists. Here's what I'm using right now.
I'm open to hearing your thoughts if you have any ideas!