--[[ 
	-- 原始的程式範例如下 -- 
	--turn to position -90
	pwm.setduty(pin, 27); 
	pwm.start(pin); -- 給電源
	tmr.delay(1000000);  -- 等5秒, microseconds to busyloop for -- 毫秒1/10^3, 微秒1/10^6
	pwm.stop(pin) -- 關電源

	--turn to position 0 again
	pwm.setduty(pin, 71); pwm.start(pin); tmr.delay(1000000); pwm.stop(pin)

	--turn to position +90
	pwm.setduty(pin, 123); pwm.start(pin); tmr.delay(1000000); pwm.stop(pin)

	-- 重要資訊 -- 
	-- Position "0" (1.5 ms pulse) is middle, "90" (~2ms pulse) is middle, is all the way to the right, "-90" (~1ms pulse) is all the way to the left
	-- 位置"0"(1.5 ms脈衝), "90"(~2ms脈衝)向右，"-90"(~1ms脈衝)向左
--]]

-- 禹翔寫的換算公式
function getPWM(angle)
	-- angle只能輸入(0~180度) PWM值為25~130
	return (128-27) * (angle/180) + 27
end

pin=1 -- 設定那個pin腳控制SG90的data線
pwm.setup(pin, 50, 27) -- 初始化位置27

--[[ 
	-- 以下為控制sg90從0度轉到180度的程式
	for angle = 0,180,5 do
		pwm_val = getPWM(angle)
		print("angle="..angle..",pwm="..pwm_val)
		pwm.setduty(pin, pwm_val); pwm.start(pin); tmr.delay(200000); pwm.stop(pin)
	end

	-- 以下為控制sg90從180度轉到0度的程式
	for angle = 180,0,-5 do
		pwm_val = getPWM(angle)
		print("angle="..angle..",pwm="..pwm_val)
		pwm.setduty(pin, pwm_val); pwm.start(pin); tmr.delay(200000); pwm.stop(pin)
	end
--]]


angle = 0
pwm_val = getPWM(angle)
print("angle="..angle..",pwm="..pwm_val)
pwm.setduty(pin, pwm_val); pwm.start(pin); tmr.delay(500000); pwm.stop(pin)

angle = 180
pwm_val = getPWM(angle)
print("angle="..angle..",pwm="..pwm_val)
pwm.setduty(pin, pwm_val); pwm.start(pin); tmr.delay(500000); pwm.stop(pin)

angle = 90
pwm_val = getPWM(angle)
print("angle="..angle..",pwm="..pwm_val)
pwm.setduty(pin, pwm_val); pwm.start(pin); tmr.delay(500000); pwm.stop(pin)