#!/bin/sh trap 'echo 240 > /sys/bus/i2c/devices/0-002d/pwm1;exit' 1 2 15 declare -i sleepint=5 declare -i temp=0 declare -i pwm=0 declare -i old_temp=0 declare -i var_pwm=240 declare -i max_temp=60 declare -i min_temp=46 declare -i max_pwm=240 declare -i min_pwm=0 declare -i pwm_interval=($max_pwm-$min_pwm)/16 echo 1 > /sys/bus/i2c/devices/0-002d/pwm1_enable echo 240 > /sys/bus/i2c/devices/0-002d/pwm1 sleep 5 while true do temp=`cat /sys/bus/i2c/devices/0-002d/temp2_input` temp=$temp/1000 pwm=`cat /sys/bus/i2c/devices/0-002d/pwm1` if [[ $temp -lt $min_temp ]]; then var_pwm=0 sleepint=10 elif [[ $temp -gt $max_temp ]]; then var_pwm=240 sleepint=20 else if [[ $temp -lt $old_temp ]]; then if [[ $var_pwm -gt 0 ]]; then var_pwm=$var_pwm-$pwm_interval sleepint=5 fi elif [[ $temp -gt $old_temp ]]; then if [[ $var_pwm -lt 240 ]]; then var_pwm=$var_pwm+$pwm_interval sleepint=5 fi else sleepint=10 fi fi old_temp=$temp echo $var_pwm > /sys/bus/i2c/devices/0-002d/pwm1 # echo temp $temp pwm $pwm var_pwm $var_pwm sleepint $sleepint sleep $sleepint done