global [dist] constants [[porta 5][porta-ddr $85] [portb 6][portb-ddr $86]] to transmit :n ifelse :n = 0 [ repeat 14 [clearbit 7 portb] ] [ repeat 14 [setbit 7 portb] ] end to strobe-none transmit 0 transmit 1 transmit 0 transmit 1 transmit 0 transmit 1 end to strobe-far transmit 0 transmit 0 transmit 1 transmit 1 transmit 0 transmit 1 end to strobe-near no-op no-op no-op no-op no-op no-op transmit 1 transmit 1 transmit 0 transmit 0 transmit 1 transmit 0 end to sample-signal clearbit 7 portb-ddr setbit 0 porta-ddr setbit 1 porta-ddr wait 1 repeat 25 [ transmit 0 transmit 1 ] loop[ setdist (read-ad 0) ifelse dist < 120 [strobe-none] [ ifelse dist > 223 [strobe-near] [strobe-far] ] ] end