Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ADC_PATH=/sys/bus/platform/devices/TI-am335x-adc/iio:device0/
- LEDS[0]="61"
- LEDS[1]="44"
- LEDS[2]="68"
- LEDS[3]="67"
- # not exactly accurate for better results
- MAX_VALUE=4000
- prepare_led()
- {
- echo "${1}" > "/sys/class/gpio/export";
- echo "out" > "/sys/class/gpio/gpio${1}/direction";
- echo "1" > "/sys/class/gpio/gpio${1}/value";
- }
- teardown()
- {
- echo "${1}" > "/sys/class/gpio/unexport";
- }
- #Run if ctrl+c is pressed
- control_c()
- {
- for LED in "${LEDS[@]}" ; do
- teardown ${LED}
- done
- echo -en "leaving";
- exit $?;
- }
- trap control_c SIGINT
- for LED in ${LEDS[@]} ; do
- prepare_led ${LED}
- done
- step=$(((2**${#LEDS[@]})-1))
- dividor=$((MAX_VALUE/step))
- echo $step
- echo "reading"
- while true; do
- value=$(cat ${ADC_PATH}/in_voltage4_raw)
- #echo $value
- v=$((value/dividor))
- echo v = $v
- for (( i=$((${#LEDS[@]}-1)); i>=0; i-- )) do
- #echo i = $i
- #echo $((2**i))
- if [ $v -ge $((2**i)) ]
- then
- echo "0" > "/sys/class/gpio/gpio${LEDS[${i}]}/value";
- v=$((v-$((2**i))))
- #echo changed v to $v
- else
- echo "1" > "/sys/class/gpio/gpio${LEDS[${i}]}/value";
- fi
- done
- sleep 0.1
- done
- control_c
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement