Wireless sensor networks are severely-energy constrained devices. Energy-related issues are one of the common failure modes in sensor deployments. One challenge in systemwide energy management is that individual nodes in a sensor network often have widely varying energy profiles due to the amount of data transmitted, hardware construction, and other environmental effects. These differences result in unpredictable node and system lifetimes. As a result, sensor network bit-rate and reliability may degrade prematurely. Our research explores and evaluates an easily implemented dynamic scheduling policy supported by a battery gauge aimed to solve this problem.The dynamic scheduling policy presented here operates in a slotted manner. The decision for each node to communicate is based on the available energy of that node. Our policy guarantees a minimum communication bandwidth, while allowing nodes with more energy to increase their available bandwidth by a factor related to the amount of "extra" energy they have. We present real-system results measured on test nodes in several different network scenarios. The results show our scheduling, when compared to a fixed schedule, guarantees a longer usable system lifetime by preventing premature degradation of connections. In addition to improving connectivity, it reduces data delay by as much as 50% for intermittently connected nodes, with no added communication overhead.