' STEP_2.Bas - PICAXE 18X ' ' Illustrates control of two uni-polar stepper motors. ' ' Motor A on low four bits of outputs, Motor B on upper four bits. ' ' Note that a ULN2803 or similar is required to interface with the steppers. ' ' Pullup resistors (10K typ) to +5 VDC required on Inputs 0, 1, 6 and 7. ' ' A GRD on Pin0 casues Motor A to turn. Similarly, a ground on Pin1 causes Motor B to turn. ' the direction is determined by the state of Input 6 for Motor A and Input 7 for Motor B. ' ' Note that both motors travel at the same speed. ' ' Uses nominally 135 of 2048 bytes. It appears that this would run on a PICAXE-18A ' ' copyright, Jesus Hernandez, Peter H Anderson, Baltimore, MD, May, '04 Symbol StepPatt = B0 Symbol OutPatt = B1 Symbol StepIndexA = B2 Symbol StepIndexB = B3 Symbol StepOnA = Pin0 Symbol StepOnB = Pin1 Symbol StepDirA = Pin6 Symbol StepDirB = Pin7 StepIndexA = 0 StepIndexA = 0 OutPatt = $11 ' output something to hold motors in place Pins = OutPatt MotorA: If StepOnA = 1 Then MotorB ' skip to control motor B ' Control Motor A If StepDirA = 0 Then CWA Goto CCWA CWA: If StepIndexA = 0 Then CWA_1 StepIndexA = StepIndexA - 1 GoTo CWA_2 CWA_1: StepIndexA = 7 CWA_2: Goto OutPattA CCWA: If StepIndexA = 7 Then CCWA_1 StepIndexA = StepIndexA + 1 GoTo CCWA_2 CCWA_1: StepIndexA = 0 CCWA_2: OutPattA: Lookup StepIndexA, ($01, $03, $02, $06, $04, $0c, $08, $09), StepPatt OutPatt = OutPatt & $f0 | StepPatt Pins = OutPatt MotorB: If StepOnB = 1 Then TimeDelay ' skip to delay ' otherwise, control MotorB If StepDirB = 0 Then CWB Goto CCWB CWB: If StepIndexB = 0 Then CWB_1 StepIndexB = StepIndexB - 1 GoTo CWB_2 CWB_1: StepIndexB = 7 CWB_2: Goto OutPattB CCWB: If StepIndexB = 7 Then CCWB_1 StepIndexB = StepIndexB + 1 GoTo CCWB_2 CCWB_1: StepIndexB = 0 CCWB_2: OutPattB: Lookup StepIndexB, ($01, $03, $02, $06, $04, $0c, $08, $09), StepPatt StepPatt = StepPatt * 16 ' move to high nibble OutPatt = OutPatt & $0f | StepPatt Pins = OutPatt TimeDelay: Pause 50 ' adjust as necessary to control the speed of a motor. Goto MotorA