added ADC interrupt instead of polling