CCCPaste

Turbine control

local modem = peripheral.find("modem")
local monitor = peripheral.wrap("front")
 
monitor.clear()
monitor.setCursorPos(4, 1)
monitor.write("Turbine #1")
monitor.setCursorPos(1, 3)
monitor.write("Fuel Feed")
monitor.setCursorPos(1, 4)
monitor.write("-=-=-=-=-=-=-=-")
monitor.setCursorPos(1, 6)
monitor.write("Clutch")
monitor.setCursorPos(1, 7)
monitor.write("-=-=-=-=-=-=-=-")
monitor.setCursorPos(1, 9)
monitor.write("Output")
monitor.setCursorPos(1, 10)
monitor.write("-=-=-=-=-=-=-=-")
term.clear()
term.setCursorPos(1,1)
print("Running...")
 
function fuelFeed(side, mode, tc)
  rs.setOutput(side, true)
  modem.transmit(3,4,mode)
  monitor.setCursorPos(1, 5)
  monitor.write(mode)
  monitor.setCursorPos(1, 5)
  monitor.drawPixel(9, 5, tc)
  sleep(1)
  rs.setOutput(side, false)
end
 
function shift(side, mode, tc)
  rs.setOutput(side, true)
  modem.transmit(2,3,mode)
  monitor.setCursorPos(1, 8)
  monitor.write(mode)
  monitor.setCursorPos(1, 8)
  monitor.drawPixel(9, 8, tc)
  sleep(1)
end

while rs.getInput("front") == false
do

local batt = rs.getAnalogInput("left")
local speed = rs.getAnalogInput("top")

if speed == 0
then
	if batt <= 3
	then
	fuelFeed("bottom", "Online", colors.green)
    sleep(240)
	end
	
	if batt >= 4
	then
	fuelFeed("right", "Offline", colors.red)
	
elseif speed >= 1 and speed <= 14
then
	shift ("right", "Low RPM", colors.orange)
	sleep(5)
	
elseif speed >= 15
then
	shift ("back", "Engaged", colors.green)
end
end