para el amigo dabopeyton que expuso algunas dudas en el curo de pic basic de comandos referentes a Proton dejo manual del mismo:
http://www.compile-it.com/protonds/proton_ds_userguide.pdf
y de doy explicación de algunos lo demás es mirar el manual.
HPWM
HPWM es un tren de pulsos que un usuario puede especificar su frecuencia y ciclo de trabajo. El ciclo de trabajo es el porcentaje de tiempo que el pulso se mantiene alta en comparación con el tiempo que se mantiene baja. Así, un ciclo de trabajo de 50% significa que se mantiene alta para el 50% del tiempo, y baja el 50% del tiempo. Un ciclo de trabajo del 25% significa que el pulso es alto el 25% del tiempo, y baja el 75% del tiempo.
50% ciclo de trabajo (frecuencia = 2kHz);
25% ciclo de trabajo (frecuencia = 2kHz);
No importa cuál sea la frecuencia, el ciclo de trabajo será el mismo, sólo que los pulsos serán más aplastados .Hay límites en la frecuencia del PWM, que son:
Frecuencia Xtal - frecuencia PWM más bajo utilizable
• 4 MHz - 244Hz
• 8MHz - 489Hz
• 10MHz - 611Hz
• 12MHz - 733Hz
• 16MHz - 977Hz
• 20MHz - 1221Hz
• 24MHz - 1465Hz
• 33MHz - 2015Hz
• 40MHz - 2442Hz
•
Y con todas las velocidades Xtal, el más rápido de frecuencia posible es 32767Hz. Así que hay limitaciones con el PWM en lo que respecta a la frecuencia que puede producir. Cuanto más rápida sea la frecuencia, la mejor para esta aplicación, ya que aumenta la respuesta de las salidas.
El ciclo de trabajo es un valor entre 0 y 255, donde 0 es 0% y 255 es de 100%, es decir, un ciclo de trabajo de 63 en realidad significa el 25% como 63/255 = 0,25 (25%).
El comando de PBP y Proton es:
HPWM Canal, Dutycycle, Frecuencia
SERVO Comando de Proton:
También conocido como sistemas de retroalimentación cerrada, los motores servo vienen con un circuito de control, que detecta si hay un mecanismo del motor en la ubicación deseada y si no se corrige un error de forma continua hasta que el motor alcance el punto adecuado. Servo por lo general vienen en pequeños envases de plástico como el siguiente, pero ten en cuenta que hay todo un sistema en el interior; circuito del motor en sí, engranajes y motor de accionamiento y control.
Servo es por lo general tienen gran esfuerzo de torsión debido a su engranaje. La velocidad del motor disminuye, pero aumenta su par, lo que les permite manejar grandes cargas. El bucle de realimentación cerrado mencionado anteriormente es en realidad un potenciómetro interno que está conectado a un eje mecánico para detectar el ángulo de giro. La señal del potenciómetro proporciona datos para el circuito de control para asegurar que el motor se encuentra en el ángulo deseado.
La mayoría de los servos están diseñados para funcionar dentro de un rango limitado, por ejemplo, 90 ° o ° 180, pero puede ser modificado para rotación continua. Este control exacto de la rotación y el par gracias al engranaje hace que el servo sea un gran dispositivo para incluir en cualquier proyecto de tipo mecánico-robóticas. La mayoría de servo operar desde 4,8 a 7,2 V DC.
El eje del motor servo se coloca con señales de ancho de pulso modulado (PWM). Así que todos los servos vienen con tres cables (alimentación, tierra y Control). Por lo general, en los servos de afición con ángulo de 90 ° de rotación, la señal anchura varía entre 1 y 2 ms. Si el pulso es la rotación más amplia continúa hasta que alcanza los límites mecánicos. Esta señal se aplica a la línea de control del servo. Consulte la hoja de datos para obtener más información del motor que baja ha seleccionar.
Para el ejemplo vamos a utilizar un servo que tiene una rotación máxima de 180 ° y opera con una señal de control de 1ms a 2ms.
Con esto en mente, una señal con un pulso de 1,5 ms alta llevara al servo a mitad de camino, o una señal en 2mS hará ir al servo a 100% la desviación. Esta señal debe ser enviada al servo a (50 Hz), permitiendo al programa realizar muchas otras funciones.
En el comando de Proton servo se limita a a lo que se menciono anteriormente. Mediante su uso podemos hacer que el servo baja a cualquier posición, y que se quede allí. Algunos servos tienen diferentes requisitos de pulso para diferentes ángulos, pero Los Servos más comunes operarán desde 1ms a 2ms.
Una vez que el servo está en la posición, el potenciómetro de retroalimentación al circuito de control interno de los servos se asegurará de que el servo no se deriva de la posición deseada, (siempre que se actualizan con la posición cada 50 ó 20 ms), si hay demasiado tiempo entre las señales de control, el servo se deriva. Consulte la hoja de datos de su servo.
Ejemplo:
Código:
Device = 18F4550
XTAL = 4
Dim Servo_Position As Word
LCD_DTPIN = PORTB.4
LCD_RSPIN = PORTB.2
LCD_ENPIN = PORTB.3
LCD_INTERFACE = 4
LCD_LINES = 2
LCD_TYPE = 0
ALL_DIGITAL = True
DelayMS 150
Cls
Servo_Position = 1500
inicio:
Repeat
Servo PORTA.0, Servo_Position
DelayMS 20
Inc Servo_Position
Print At 1, 1, "Servo = ", DEC4 Servo_Position
Until Servo_Position = 2000
Repeat
Servo PORTA.0, Servo_Position
DelayMS 20
Dec Servo_Position
Print At 1, 1, "Servo = ", DEC4 Servo_Position
Until Servo_Position = 1000
GoTo inicio