Paso 1: Arduino temas cubiertos en este Instructable (inc. el Arduino Sketch)
http://Arduino.CC/en/Main/arduinoBoardUno
He tratado de incluir las cuestiones del meollo que se presentan en la práctica. Este proyecto abordó dos principales retos de Arduino:
- Servo control - cómo utilizar secuencias de comandos de Arduino para convertir una entrada física en algo que se controla mecánicamente la posición de un objeto físico en 2 dimensiones (ojos!)
- Una lámpara simple circuito - cómo llegar de Arduino para convertir la señal de entrada y hacer que encienda una luz y ajustar su luminosidad (dimmer)
La comunidad de Arduino es inmensa (tanto en tamaño como en amabilidad!). Este proyecto reconoce a todas las personas que le dan a él.
El servo de secuencias de comandos se basan en 'Servo.h - biblioteca basada en la interrupción de Servo para Arduino usando 16 bits temporizadores-versión 2'
por Michael Margolis. ¡ Respeto!
http://code.Google.com/p/Arduino/Source/Browse/trunk/Libraries/servo/servo.h?r=1088
El sketch de Arduino completado se incluye aquí para referencia. Pasó con 10 versiones para llegar a esto.
No hay nada muy sofisticado. Los comentarios de la escritura explican lo que está haciendo.
En pasos posteriores en este Instructable, he añadido Comentarios extra ampliados sobre el código en el contexto de medidas específicas (por ejemplo, para los controles servo para los globos oculares)
Este es un sketch de ".ino". Este es un formato de Arduino más adelante. Comenzó como un ".pde"
/*
Cabezal de lámpara - sketch de arduino para el control de un control remoto de cabeza de la lámpara de lectura
Andrew Lewis de enero de 2012
Este código es de dominio público.
El servo de secuencias de comandos se basan en Servo.h - interrumpir biblioteca Servo conducido por Arduino usando 16 bits temporizadores-versión 2 por Michael Margolis. ¡ Respeto!
http://code.Google.com/p/Arduino/Source/Browse/trunk/Libraries/servo/servo.h?r=1088
Versión 10
Esta versión utiliza tres potenciómetros (potes) como entradas por cable a través de los rieles de voltaje (que varían de 0 a 5V).
La variable de salida de voltaje de cada uno por separado, control de 2 servos y 2 LEDs (operando como un par)
La tensión es leída por el arduino por 3 entradas analógicas (1 por maceta)
Las salidas de Arduino los servos son de pines digitales, que utilizan modulación de pulso para controlar la tensión de salida.
La alimentación es un estándar 5V, 2A. Debe tener esta cantidad de corriente para alimentar los servos y LEDs de alta potencia
*/
DEFINIR LAS LÁMPARAS
establecer números de pin de la lámpara
const int lampPin = 5; declara el número de pin de entrada analógica para la señal - en
const int ledPinEyes = 3; el número del pin de salida de LED para el globo ocular LEDs - hacia fuera
int valLamp = 0; variable para leer las entradas analógicas del interruptor para activar luces
FINAL DE LÁMPARAS
DEFINIR SERVOS
#include < Servo.h > / / incluye arduino estándar servo clase
int delay_val = 5; asigna el desfase del incremento del servo (retraso entre valores) para ambos servos
SERVO 1
Servo myservo; crear objeto servo para controlar un servo
const int potPin1 = 0; declara que pin analógico se utiliza para conectar la salida de voltaje variable analógica del potenciómetro 1 (servo control 1)
int valPot1; variable para leer el valor del pin analógico de servo 1
SERVO DE FINAL 1
SERVO 2
Servo myservo2; crear el segundo objeto servo para controlar un servo de segunda
const int potPin2 = 1; declara que pin analógico se utiliza para conectar la salida de voltaje variable analógica del potenciómetro 2 (servo controles 2)
int valPot2; variable para leer el valor del pin analógico de servo 2
SERVO DE FINAL 1
SERVOS
void setup() {}
pinMode (lampPin, entrada); configura pin digital como entrada para la señal de entrada de encendido/apagado LED (para ojos)
pinMode (ledPinEyes, salida); / / esto es la salida que enciende las luces o de
Conecte los servos
myservo.Attach(5); se fija el servo en el pin 5 al objeto servo
myservo2.Attach(9); segundo servo se conecta al pin 9 al segundo objeto servo
}
void loop() {}
lampCheck(); / / comprobar lámpara entrada y ajustar el brillo
servoCheck(); busque entradas servo y ajustar en consecuencia la posición
}
void servoCheck() {}
controles servo
Servo 1---
valPot1 = analogRead(potPin1); Lee el valor del potenciómetro (valor entre 0 y 1023)
digitalWrite (ledPinJoystick, HIGH);
valPot1 = mapa (valPot1, 50, 1000, 0, 179); la escala a utilizar con el servo (valor entre 0 y 180)
myservo.Write(valPot1); ajusta la posición del servo según el valor de escala
Delay(delay_val);
---final del servo 1
// servo 2 ------------------------
valPot2 = analogRead(potPin2); Lee el valor del potenciómetro (valor entre 0 y 1023)
digitalWrite (ledPinJoystick, HIGH);
valPot2 = mapa (valPot2, 50, 1000, 0, 179); la escala a utilizar con el servo (valor entre 0 y 180)
myservo2.Write(valPot2); ajusta la posición del servo según el valor de escala
Delay(delay_val);
---final del servo 2
acabar con controles servo * /
}
funciones de la lámpara * /
void lampCheck() {}
valLamp=analogRead(lampPin);
valLamp = mapa (valLamp, 20, 1023, 0, 255); la escala a utilizar con el servo (valor entre 0 y 180)
valLamp = restringir (valLamp, 0,255);
analogWrite (ledPinEyes, valLamp);
}