Paso 3: Subir el código a tu Arduino
Puede encontrar este código de demostración en las bibliotecas de RobotGeek y herramientas bajo:
Este código nos conseguirá a través de las siguientes tres secciones. Se le pedirá conectar el actuador linear de pins diferentes basados en la sección del tutorial que está trabajando.
/ *** * Kit Demo del RobotGeek del actuador Linear experimentador * ___ * | \---------\___________________________ * __| | || --------------------|__ * (o | FIRGELLI | o || ____________________| o) * |__________________/--------------------------|| *** El bosquejo siguiente le permitirá al control de una Firgelli lineal actuador mediante * la RobotGeek Slider RobotGeek mando, RobotGeek Joystick y pulsadores RobotGeek ** http://www.robotgeek.com/robotgeek-experimenters-kit-linear-actuator *** cableado * actuador lineal - Digital Pin 6, 9, 10 y 11 ** perilla - Pin analógico 0 * Joystick - Analog Pin 1 * Slider - Analog Pin 2 ** pulsador - 2 Pin Digital * pulsador - Digital Pin 4 * pulsador - Pin Digital 7 ** puentes para pernos de 3/5/6 y 10/09/11 deben establecerse en 'VIN' *** Control de comportamiento : * Mover el control deslizante o el mando se mueve el actuador lineal manteniendo posición absoluta. * Mover el joystick se mueve el actuador linear incrementalmente. * Presiona uno de los botones se moverá el actuador a una posición predeterminada. * *** / //Includes #include //Servo biblioteca se puede utilizar para Firgelli Mini actuadores lineales //Linear actuador Pins const int LINEARPIN_BUTTON = 6; Actuador lineal de 6 Pin Digital const int LINEARPIN_KNOB = 9; Actuador lineal de 9 Pin Digital const int LINEARPIN_SLIDER = 10; Actuador lineal de 10 Pin Digital const int LINEARPIN_JOYSTICK = 11; Actuador lineal de 11 Pin Digital //Analog Pins de entrada const int KNOB_PIN = 0; Perilla en el Pin analógico 0 const int JOYSTICK_PIN = 1; Palanca de mando (vertical) en el Pin analógico 1 const int SLIDER_PIN = 2; Slider en el Pin analógico 2 //Digital entrada Pins const int BUTTON1_PIN = 2; Botón 1 en el Pin Digital 2 const int BUTTON2_PIN = 4; 2 botón de Digital Pin 4 const int BUTTON3_PIN = 7; 3 botón de banda muerta de //Generic Digital Pin 7 límites - joystics no todos se centrará en 512, por lo que estos límites quitar 'drift' de joysticks que están fuera del centro. const int DEADBAND_LOW = 482; disminuir este valor si se produce deriva, aumentarlo para aumentar la sensibilidad en el centro posición const int DEADBAND_HIGH = 542; aumentar este valor si se produce dispersión, disminuye para aumentar la sensibilidad alrededor de los valores de pulso de //Max/min de posición de centro en microsegundos para lo actuadores lineares const int LINEAR_MIN = 1050; const int LINEAR_MAX = 2000; cambiarán las variables: int button1State = 0; variable para leer el estado del pulsador int button2State = 0; variable para leer el estado del pulsador int button3State = 0; variable para leer el estado del pulsador Servo linearKnob, linearSlider, linearButton, linearJoystick; crear objetos de servo para controlar los actuadores lineales int knobValue, sliderValue, joystickValue; variables para la lectura de los pines analógicos. El valor estará entre 0 y 1023 int valueMapped; los valores de joystick se cambió (o 'asignados') a nuevos valores al actuador linear. variables de valor posicional actual se envía al actuador lineal. int linearValue_Knob = 1500; int linearValue_Slider = 1500; int linearValue_Button = 1500; int linearValue_Joystick = 1500; int velocidad = 2; void setup() {//initialize actuadores lineales como servo objetos linearKnob.attach(LINEARPIN_KNOB); / / fijaciones/activa el actuador lineal como un servo objeto linearSlider.attach(LINEARPIN_SLIDER); / / fijaciones/activa el actuador lineal como un servo objeto linearButton.attach(LINEARPIN_BUTTON); / / fijaciones/activa el actuador lineal como un servo objeto linearJoystick.attach(LINEARPIN_JOYSTICK); / / fijaciones/activa el actuador lineal como un pins de //Analog objeto servo no necesita ser inicializado //use writeMicroseconds para establecer los actuadores lineales en sus posiciones por defecto linearKnob.writeMicroseconds(linearValue_Knob); linearSlider.writeMicroseconds () linearValue_Slider); linearButton.writeMicroseconds(linearValue_Button); linearJoystick.writeMicroseconds(linearValue_Joystick); } void loop() {posiciones //Preset para el Control de botón / / la pulsación set el valor lineal de button1State = digitalRead(BUTTON1_PIN); si (button1State == HIGH) {/ / set la linearValue_Button de valor de posición = 1300;} button2State = digitalRead(BUTTON2_PIN); si (button2State == HIGH) {/ / set la linearValue_Button de valor de posición = 1500;} button3State = digitalRead(BUTTON3_PIN); si (button3State == HIGH) {/ / set la linearValue_Button de valor de posición = 1700;} //Analog directo Control //read los valores de lo sensores analógicos knobValue = analogRead(KNOB_PIN); sliderValue = analogRead(SLIDER_PIN); linearValue_Knob = mapa (knobValue 0, 1023, LINEAR_MAX, LINEAR_MIN); Mapa valor analógico del sensor para el actuador linear linearValue_Slider = mapa (sliderValue, 0, 1023, LINEAR_MAX, LINEAR_MIN); Mapa valor analógico del sensor para el actuador linear //Incremental Joystick Control joystickValue = analogRead(JOYSTICK_PIN); leer los valores de la actualización de //only de joystick si la palanca de mando está fuera de la zona de descanso (es decir, mover las afueras de la posición central) si (joystickValue > DEADBAND_HIGH || joystickValue < DEADBAND_LOW) {valueMapped = mapa (joystickValue, 0, 1023, velocidad, - velocidad) //Map valor analógico del joystick nativo valor (0 a 1023) cambio a incremental (velocidad - velocidad). linearValue_Joystick = linearValue_Joystick + valueMapped; //add asigna valor de joystick para presentar valor linearValue_Joystick = restringir (linearValue_Joystick LINEAR_MIN, LINEAR_MAX); } //Use la writeMicroseconds para fijar el actuador a su nuevo linearKnob.writeMicroseconds(linearValue_Knob) de posición; linearSlider.writeMicroseconds(linearValue_Slider); linearButton.writeMicroseconds(linearValue_Button); linearJoystick.writeMicroseconds(linearValue_Joystick); Delay(10); }