This works like a 4-bar battery indicator. It charges and discharges:
- Initial test of all four bars
- When charging, the highest bar blinks
- When full, it begins discharging.
- Discharging fades bars slowly
Settings are near the top of the following listing. They are focused on the speed of the charge/discharge cycle.
//Charging/Discharging Battery Gauge //on chn1-chn4 //how long at each charge level define stayAtCharge 50% //discharge basic time unit define dischargeTimeUnit 1s //discharge/recharge before ended? define chargerReconnection 33% //define several blinks in half bar steps //each ends "on" define chargeblink00 chn1=00% @+0.4s chn1=20% @+0.4s define chargeblink05 chn1=00% @+0.4s chn1=100% @+0.4s define chargeblink10 chn2=00% @+0.4s chn2=20% @+0.4s define chargeblink15 chn2=00% @+0.4s chn2=100% @+0.4s define chargeblink20 chn3=00% @+0.4s chn3=20% @+0.4s define chargeblink25 chn3=00% @+0.4s chn3=100% @+0.4s define chargeblink30 chn4=00% @+0.4s chn4=20% @+0.4s define chargeblink35 chn4=00% @+0.4s chn4=100% @+0.4s //the code //Initial turn-on LED Test //only happens once @+0.5s chn1=100% @+0.5s chn2=100% @+0.5s chn3=100% @+0.5s chn4=100% //short wait, then clear all LED's @+0.5s @+0.05s chn4=0% @+0.05s chn3=0% @+0.05s chn2=0% @+0.05s chn1=0% //short wait before charging @+0.5s //Random Initial Charge Level Go Between charge00 and charge25 //zero bars current charge charge00 chargeblink00 chargeblink00 chargeblink00 go to charge00 with stayAtCharge chance //half bar current charge charge05 chargeblink05 chargeblink05 chargeblink05 go to charge05 with stayAtCharge chance //1 bar current charge charge10 chn1=100% chargeblink10 chargeblink10 chargeblink10 go to charge10 with stayAtCharge chance charge15 chn1=100% chargeblink15 chargeblink15 chargeblink15 go to charge15 with stayAtCharge chance charge20 chn1=100% chn2=100% chargeblink20 chargeblink20 chargeblink20 go to charge20 with stayAtCharge chance charge25 chn1=100% chn2=100% chargeblink25 chargeblink25 chargeblink25 go to charge25 with stayAtCharge chance charge30 chn1=100% chn2=100% chn3=100% chargeblink30 chargeblink30 chargeblink30 go to charge30 with stayAtCharge chance charge35 chn1=100% chn2=100% chn3=100% chargeblink35 chargeblink35 chargeblink35 go to charge35 with stayAtCharge chance //slower discharge of bar discharge40 chn4=fade to 0% within 10s @+dischargeTimeUnit go to discharge40 with stayAtCharge chance //faster discharge of bar discharge35 chn4=fade to 0% within 3s @+dischargeTimeUnit go to discharge35 with stayAtCharge chance discharge30 chn3=fade to 0% within 10s @+dischargeTimeUnit go to discharge30 with stayAtCharge chance discharge25 chn3=fade to 0% within 3s @+dischargeTimeUnit go to discharge25 with stayAtCharge chance //start charging again? go to charge20 with chargerReconnection chance discharge20 chn2=fade to 0% within 10s @+dischargeTimeUnit go to discharge20 with stayAtCharge chance discharge15 chn2=fade to 0% within 3s @+dischargeTimeUnit go to discharge15 with stayAtCharge chance //start charging again? go to charge10 with chargerReconnection chance discharge10 chn1=fade to 0% within 10s @+dischargeTimeUnit go to discharge10 with stayAtCharge chance discharge05 chn1=fade to 0% within 3s @+dischargeTimeUnit go to discharge05 with stayAtCharge chance //start charging again go to charge00