Control de RC y Arduino: obras completas A (6 / 10 paso)

Paso 6: Segundo programa: servos

Levantar la imagen del sitio de Adafruit y no podía decir suficientes cosas buenas sobre ellos!

Ahora comienza la diversión!  Utilizando el programa que he esbozado anteriormente, permite añadir algunos servos usando la biblioteca de servo por defecto.  También he decidido usar un array para los datos de entrada en lugar de ocho variables independientes.  Si usted tiene un Uno, que se utilizará este último, todo lo que tienes que hacer es cambiar las variables de ubicación del pin.

Esto esboce voluntad leer los 8 canales de un receptor RC y los valores via serial monitor de entrada.
Programado para el Arduino MEGA 2560

Bibliotecas incluidas
#include < Servo.h >

Definir las Variables:
const int chA = 22;  Constantes variables relativos a localizaciones de pin
const int chB = 27;
const int chC = 30;
const int chD = 35;
const int chE = 38;
const int chF = 43;
const int chG = 46;
const int chH = 51;

Límites de acondicionamiento de señales
const int lo = 920;
const int Hola = 1640;
const int deadlo = 1270;
const int deadhi = 1290;
const int centro = 1280;

ch int [8];  Array para almacenar y mostrar los valores de cada canal
int ch4;  Variable de salida del servo
Dirección servo;  Servo dirección

la rutina de instalación se ejecuta una vez al presionar reset:
void setup()
{
inicializar la comunicación serial a 9600 bits por segundo:
Serial.Begin(9600);

Pines de entrada:
pinMode(chA,INPUT);
pinMode(chB,INPUT);
pinMode(chC,INPUT);
pinMode(chD,INPUT);
pinMode(chE,INPUT);
pinMode(chF,INPUT);
pinMode(chG,INPUT);
pinMode(chH,INPUT);

Salidas de servo:
Steer.Attach(2);      Conecte el Servo de dirección al Pin PWM 2
}

Principal del programa
void loop()
{
leer los canales de entrada
CH [0] = pulseIn (chA, HIGH);  Leer y guardar canal 1
CH [1] = pulseIn (chB, HIGH);
CH [2] = pulseIn (chC, HIGH);
CH [3] = pulseIn (chD, HIGH);
CH [4] = pulseIn (chE, alto);
CH [5] = pulseIn (chF, HIGH);
CH [6] = pulseIn (chG, HIGH);
CH [7] = pulseIn (chH, HIGH);

Acondicionamiento de señales de entrada
para (int i = 0; i < = 8; i ++) //Signal acondicionado lazo
{
Si (ch [i] < = lo) //Trim ruido de fondo
{
CH [i] = lo;
}

Si (ch [i] < = deadhi & & ch [i] > = deadlo) //Create banda muerta
{
CH [i] = Centro;
}

Si (ch [i] > = Hola) //Trim ruido del extremo superior
{
CH [i] = hola;
}
}

Dirección de Control de salida en el canal 4
CH4 = ch [3];
Si (ch4 > = lo & & ch4 < = deadlo)
{
CH4 = mapa (ch4, lo, deadlo, 0, 90);
}
else if (ch4 == centro)
{
CH4 = 90;
}
else if (ch4 > = deadhi & & ch4 < = Hola)
{
CH4 = mapa (ch4, deadhi, Hola, 90, 180);
}
Steer.Write(CH4);

Salidas serie
Serial.Print ("Ch1:");  Mostrar la cadena de texto en el Serial Monitor para distinguir las variables
Serial.Print (ch[0]);     Imprimir el valor del canal 1
Serial.Print ("|");
Serial.Print ("Ch2:");
Serial.Print (ch[1]);
Serial.Print ("|");
Serial.Print ("Ch3:");
Serial.Print (ch[2]);
Serial.Print ("|");
Serial.Print ("Ch4:");
Serial.Print (ch[3]);
Serial.Print ("|");
Serial.Print ("Ch5:");
Serial.Print (ch[4]);
Serial.Print ("|");
Serial.Print ("capítulo 6:");
Serial.Print (ch[5]);
Serial.Print (& p. uot; | ");
Serial.Print ("Ch7:");
Serial.Print (ch[6]);
Serial.Print ("|");
Serial.Print ("Ch8:");
Serial.println (ch[7]);
Serial.Print ("dirección de la salida:");
Serial.println (ch4);
}

¿Voy a suponer que el servo tuvo una crisis nerviosa y desarrolló una marca leve? La ventana de terminal confirma que las ruedas simplemente cayeron apagado de su proyecto, ahora ¿qué? Antes de comprometerse el servo o Arduino a la casa de la tuerca es algo que se puede trabajar alrededor.  El problema es cómo la biblioteca de servo Arduino genera la señal de salida requerida. Se interrumpe el programa principal para mantener el pulso de 50Hz y se entre en conflicto con la función pulsein corromper valuesbeing leer. ¿Tanto la biblioteca de servo y pulsein son interrupción basado pero que miramos a la sustitución de? Decidí eliminar la librería servo después de un montón de google-fu.

Artículos Relacionados

Control de Motor con Arduino

Control de Motor con Arduino

Control de motores con Arduino puede ser complicado.En primer lugar, los motores necesitan más actual que la producción de qué Arduino pueden suministrar pernos. También motores pueden generar su propia corriente a través de un proceso llamado inducc
Sistema de seguridad y Control de acceso con Arduino y RFID

Sistema de seguridad y Control de acceso con Arduino y RFID

sistema de seguridad y Control de acceso con Arduino y RFIDEste proyecto es un evolotuin de mi primer proyecto llamado "Arduino – sistema de seguridad y acceso Control"Como se puede ver en el http://arduinobymyself.blogspot.com.br/2012/03/arduin
Cómo construir RC 433 MHZ para control de servos (100% Arduino)

Cómo construir RC 433 MHZ para control de servos (100% Arduino)

¡ Hola chicos!Hay mi solución para omitir número de temporizador (servo y Marc alambre virtual).Debido al número de temporizador que tenía, decidí omitir añadiendo un tercer arduino.Es la forma en que funciona:-El transmisor comprueba entradas y envi
Control de LED con Arduino Bluetooth y Android. (Parte 1)

Control de LED con Arduino Bluetooth y Android. (Parte 1)

Este instructable es un simple tutorial explicar cómo controlar un LED mediante Bluetooth de Android.Se necesita:Arduino UNOResistencias 300Ω (x 3)Resistencia 150ΩLEDPuentes;Módulo de Bluetooth (HC-06/otros);Teléfono Android;Bluetooth Apk SPP (Lite s
Cómo utilizar el control remoto IR con Arduino (actual y actualizada)

Cómo utilizar el control remoto IR con Arduino (actual y actualizada)

Estoy cansado de estos complicados tutoriales sobre cómo hacer ciertas cosas. Me gusta simple, fácil de entender, las instrucciones paso a paso. Mi mayor problema era con IR y POV *. Yo finalmente he dominado cómo controlar mi proyecto con cualquier
Control de luz usando Arduino con módulo de relé AC

Control de luz usando Arduino con módulo de relé AC

¡ Hola amigos! Soy Ostin, I ll muestran cómo controlar un CA luz con Arduino usando el módulo de relés. Es un proyecto simple y también muy peligroso ya que vamos a tratar con alto voltaje 220v. No trate de si eres un aficionado en el trato con alto
IR control 3D Rover impreso (Arduino)

IR control 3D Rover impreso (Arduino)

Este instructable fue creado en cumplimiento de la exigencia de proyecto de la Makecourse de la Universidad de South Florida (www.makecourse.com)Este instructivo cubre los pasos necesarios en la forma de recrear mi proyecto Rover. Que va cubriendo to
Control de Servos con Arduino y receptor/transmisor de RC

Control de Servos con Arduino y receptor/transmisor de RC

En este Tutorial voy a explicar cómo controlar más de un servo con un único canal de sus transmisor/receptor y el programa de movimientos propios. Es útil para movimientos complejos como brazos robóticos.Se necesita:-Arduino Uno-Transmisor-Receptor-3
Descifrado de control remoto IR de Arduino

Descifrado de control remoto IR de Arduino

el siguiente en mi lista de proyectos es un TV-B-Gone como gadget. Ya que muchos locales IR control remoto dispositivos Jordania desconocidos orígenes, un gadget simple IR control remoto descifrado, como el de tutorial fantástico de Ladyada , haría m
Control remoto universal usando Arduino, 1Sheeld y móvil Android

Control remoto universal usando Arduino, 1Sheeld y móvil Android

Este proyecto ilustra cómo su televisor, receptor de satélite y estéreo utilizando tu móvil Android en vez de usar hay mando a distancia.Básicamente, se puede aplicar esta técnica para otros dispositivos funcionan con control remoto. Estaba pensando
Control de calidad con Arduino Uno de aire

Control de calidad con Arduino Uno de aire

Control de calidad de aire con Arduino Uno con la ayuda de MQ135 aire calidad gases peligrosos módulo Sensor Detector.Paso 1: Configuración de pines Rojo = 5VVerde = datos (A0)Negro = tierraPaso 2: Conexión del cable de 1 = rojo (5V)2=Black(Ground)4=
Cómo el control DC motores con Arduino

Cómo el control DC motores con Arduino

Recientemente había terminado de diseñar nuestro compacto plug-and-play Arduino robot y lo lanzó en Kickstarter. Actualmente estamos buscando patrocinadores.Con este kit de robótica, es muy fácil de conectar motores, sensores y módulos de comunicació
Control de motor con arduino shield motor via Web

Control de motor con arduino shield motor via Web

En este proyecto, de control de motor de la C.C. (ventilador de la computadora) con motor shield(official) a través de la Página Web.Puede controlar motor de velocidad lenta o rápida velocidad y parada.También si lo desea, puede Agregar botón de cont
Control de ventilador de Arduino Uno

Control de ventilador de Arduino Uno

Este proyecto permite a los usuarios control dos diferentes ventiladores y un servo. Los ventiladores se encenderá automáticamente si se alcanza una cierta temperatura y el servo girará 90 grados. Un pulsador permite también para el control manual de