Paso 28: Mueve los ojos con un Basic Stamp
Ahora echemos un vistazo a otro video de hacer que los ojos se mueven con un Basic Stamp 2
Aquí está el código dor la rutina.
' {$STAMP BS2}
' {$PBASIC 2.5}
' prueba motor movimiento y retención vr para la posición correcta y mueve ojos rt y lt
Resultado VAR Word ' variable de la palabra para sostener el resultado.
BAJO 10' pin set 10 bajo ojo derecho
ALTO 8' pin set 8 ojo alto a la izquierda para moverse dejado ojo motor
BAJO 8' ser pin 8 bajo ojo izquierdo para detener el motor ojo izquierdo
pwmduty VAR Byte
pwmout PIN 6 ' LED conectada a P6
pwmduty = 0 ' establecer el ciclo de trabajo 0
Principal:
GOSUB checkeyes
IF resultado = 1 OR resultado = 0 THEN GOTO error ' si vr no tiene ningún programa de parada de la señal
Resultado IF < = 1100 entonces GOTO EYELEFT
Resultado IF > = 2300 entonces GOTO eyeright
GOTO eyeright
GOTO PRINCIPAL
BUG:
DEBUG "error encontrado en las lecturas de VR =", DEC resultado, CR ' si rutina de parada de pérdida de señal
PARADA
checkeyes: ' comprobar la ubicación de VR
ALTO 7 ' usar pin 7 para el circuito de la tapa de descarga
PAUSA 1 ' 1 ms.
RCTIME 7, 1, resultado ' tiempo de la carga medida RC. convertir de analógico a digital
VOLVER
eyeright: ' mover el ojo derecho hacia la derecha
ALTO 10' Apague el motor en
CHECKRT:
DEBUG "modo correcto de ojo", resultado de la DEC, CR
GOSUB checkeyes
IF resultado < 1100 entonces GOTO LINESLOW ' Verifique si en los límites inferiores
GOTO CHECKRT
eyeleft: ' mover el ojo hacia la izquierda
ALTO 8 ' encender motor
CHECKLT:
DEBUG "eyeleft mode", resultado de la DEC
GOSUB checkeyes
IF resultado > 2300 entonces GOTO LinesLow ' si encima límite apague el motor
GOTO CHECKLT
LinesLow: "Apague el motor
BAJA 8
BAJA 10
DEBUG "dejen líneas low", CR
GOSUB runhigh
GOTO principal
runhigh:
Mientras que pwmduty < 255 ' sigue aumentando el tiempo hasta que se llega a 255
PWMout PWM, pwmduty, 15' para aumentar voltaje LED disminuir pasado # para más rápido
pwmduty = pwmduty + 1 ' incrementar ciclo de trabajo 1
LAZO
runlow:
IF pwmduty > = 255 entonces pwmduty = 254 ' programar el ciclo de deber a 254
MIENTRAS pwmduty > = 1 ' seguir disminuir la tensión LED
Pwmout PWM, pwmduty, 25' a disminuir voltaje LED aumentar pasado # para más rápidamente
pwmduty = pwmduty-1 ' disminuir el ciclo de 1
LAZO
PAUSE 2000
VOLVER