Usar un microcontrolador PIC para controlar un Servo Hobby (4 / 6 paso)

Paso 4: El Firmware

Se adjunta es el firmware que utiliza para esta pequeña demo. Usé el libre IDE MPLAB con el compilador C18 (gratis para estudiantes). Ambos están disponibles para descargar desde la Web de Microchip. La lógica va como esto:
1. retardo en algún lugar entre 10 y 20 ms. (en este caso, 12)
2. Si se pulsa el botón (pin 4), mida el voltaje del potenciómetro (pin 2)
3. Ajuste la señal de control alto (5 v)
4. retraso durante un tiempo proporcional a la tensión medida en el paso 2
5. Ajuste la señal de control bajo (tierra)
6. lazo para paso 1

Tal vez un poco más información sobre la conversión de analógico a digital está en orden. Así que ya sabemos que el voltaje en el pin 2 va a estar en alguna parte entre 0 y 5 voltios por el divisor de tensión. Conversión del A/d del PIC (expresiones) funciona como un divisor del voltaje inverso. Reporta el voltaje como una parte de su alimentación. Sin embargo, la proporción se escala entre 0 y 255 (que es de 8 bits de información, el tamaño de un carácter sin signo). En otras palabras, se establece la siguiente igualdad:
(voltaje del pin 2) / 5v = POT_VALUE / 255
o:
POT_VALUE = 255 * ((pin 2 voltage) / 5v)
La foto está haciendo en realidad una conversión A/d de 10 bits y 8 bits es mucho granulares suficiente para nuestros propósitos, por lo que no se usan los dos bits menos significativos de la conversión A/D de este código. Además, el último par de dígitos probablemente miden ruido en lugar de la señal, por lo que no estamos perdiendo todo lo que tanto por ignorarlas.

Los retrasos se calculan basándose en el tiempo que toma para completar una instrucción en el PIC con un reloj de 4 MHz. No recuerdo por qué, pero de alguna manera que esto funciona hacia fuera a 1/6 nos por ciclo de instrucción. Así que si nos demoramos para 5400 ciclos, que es de 5400 ciclos * Estados Unidos 1/6 / ciclo = 900 US = 0,9 Sra. otra pieza importante es encontrar la constante de proporcionalidad que escala POT_VALUE (en un rango de 255-0 = 255) a la anchura de pulso (en un rango de 2,1 ms-0,9 ms = 1200 nos); o, para enmarcar la cuestión de una manera diferente: ¿Cuántos ciclos debemos retrasar para cada cuenta de POT_VALUE?
(Estados Unidos 1200 * 6 ciclos / nos) 255 cuenta = cuenta de ciclos de 28
Los siguientes junto con el código notará que realmente demoro 20 ciclos por cuenta, no 28. Se trata de un valor determinado experimentalmente (miraba la señal con un osciloscopio) que se ajusta para todos los factores eso efecto de la sincronización, principalmente la cabeza del bucle for en la línea 68.

Artículos Relacionados

LinkIt con Blynk para controlar un Servo

LinkIt con Blynk para controlar un Servo

Hay muchos usos para el servo actualmente! Hay más aplicaciones para WiFi Servo! Este proyecto demostrará cómo utilizar un LinkIt un tablero para Control de un Servo usando BlynkPaso 1: Cargar códigoSi no sabes cómo añadir código a la un junta linkit
Controlar varios servos de arduino y android

Controlar varios servos de arduino y android

Usar aplicaciones de android para controlar múltiples servomotor conectado a tu arduino usa arduino uno, cuenta con sólo 6 pines PWM, que lo que dejé con el resbalador 6 en la aplicación para android, si quieres controlar mas de 6, puede utilizar ard
Sistema de desarrollo para microcontroladores PIC y AVR

Sistema de desarrollo para microcontroladores PIC y AVR

después de probar muchos sistemas de desarrollo para microcontroladores PIC y AVR, ninguno me satisface. Así que he creado este sistema con placa que me ha satisfecho.Paso 1: Más espacio libre En este sistema de desarrollo, puse dos protoboards girar
Cómo usar un Wiimote para controlar un Robot NXT de Lego Mindstorms

Cómo usar un Wiimote para controlar un Robot NXT de Lego Mindstorms

Tutorial: Cómo usar un Wiimote para controlar un Lego Robot - los videos más divertidos clips están aquí este vídeo le mostrará cómo usar un wiimote para controlar un Robot de Lego Mindstorms NXT.Aquí está el enlace a Glovepie: http://carl.kenner.goo
Programación de microcontroladores PIC

Programación de microcontroladores PIC

microcontroladores PIC están una herramienta muy útil y versátil para su uso en muchos proyectos electrónicos. Son muy baratas y fáciles de encontrar. También son muy potentes y muchos son capaces de velocidades de hasta 64 MIPS utilizando el bloque
Una guía para controlar cosas con variables de entrada (a través de arduino)

Una guía para controlar cosas con variables de entrada (a través de arduino)

el corazón de este proyecto es un) montan un sensor a entrada analógica arduino y b) programación con if... else instrucción.Este proyecto muestra un sistema de refrigeración de ordenador para mantener cierta temperatura dentro de una torre de ordena
Medidor de LYT de LED: LED microcontrolador PIC y código promedio móvil

Medidor de LYT de LED: LED microcontrolador PIC y código promedio móvil

Hola a todos, gracias por sacar mi primer Instructable. Han disfrutado de ver sus creaciones en los años y me encanta lo que ustedes están contribuyendo. Este proyecto es una vuelta al lado de una que vi recientemente aquí y tengo que dar un grito ha
Puzzlebox órbita: Utilizando un Arduino para controlar un helicóptero infrarrojo

Puzzlebox órbita: Utilizando un Arduino para controlar un helicóptero infrarrojo

en este Instructable vamos a explicar cómo las señales de infrarrojos son utilizados por un control remoto para controlar un juguete o dispositivo, a continuación, demuestran cómo un simple circuito se puede Agregar a un Arduino para manejar el mismo
Utilizando un Arduino para controlar o probar un dispositivo electrónico SPI

Utilizando un Arduino para controlar o probar un dispositivo electrónico SPI

hay muchos dispositivos electrónicos que utilizan el bus SPI, o autobús de interfaz periférico Serial, comunicaciones (varios sensores, LCD displays, potenciómetros digitales, convertidores D/a y A/d, transmisores inalámbricos y receptores, controles
Mueva la mano para controlar brazo robótico OWI... sin compromiso

Mueva la mano para controlar brazo robótico OWI... sin compromiso

LA IDEA:Hay por lo menos 4 otros proyectos en Instructables.com (a partir del 13 de mayo de 2015) alrededor de modificar o controlar el brazo robótico OWI. No es de extrañar, ya que es tan un gran barato robótico kit y para jugar con. Este proyecto e
Aplicación Android para controlar un Robot de 3DPrinted

Aplicación Android para controlar un Robot de 3DPrinted

Este instructables se hace explicar cómo controlar mi EEZYbotARM o EEZYbotDELTA con un Smartphone (o una tableta). Esto se hace a través de la placa Arduino equipado con un módulo bluetooth y una aplicación Android con MIT App inventor 2.Video:En el
Usar un disco duro para cortar un registro

Usar un disco duro para cortar un registro

Nos desnudaron 8 unidades de disco duros hacia abajo el determinar el actuador más adecuado para nuestra aplicación.Corte la ranuraDespués de haber visto imágenes del brazo de actuador de disco duro de tocar cuando se conecta al amplificador nos conv
¿Cómo a parpadear un Led con el microcontrolador PIC?

¿Cómo a parpadear un Led con el microcontrolador PIC?

Este tutorial es para principiantes de microcontrolador PIC.* pasos para instalar el MP Lab* pasos para instalar el compilador xc8* Programa para abrir y cerrarConstrucción de proyecto y grabarlo en el pic McPaso 1: Componentes necesarios 1) PIC16F88
Usando tablas de relé para controlar actuadores lineales

Usando tablas de relé para controlar actuadores lineales

En este Instructable, a aprender cómo utilizar las tablas de relé para controlar actuadores lineales. Todos los relés actúan igual, la única diferencia es cuántos están en el tablero.Cuatro relais pueden combinarse con la MegaMoto de mandos para perm