Paso 7: Añadir un servo
Basándose en el ejemplo anterior ahora vamos a añadir un servo que está ligado a un segundo pulsador. Esto utiliza la librería Arduino Servo para controlar la posición del servo. Cambiando el valor en paréntesis después de la servo1.write code que puede controlar hasta qué punto el servo se mueve.
Copie y pegue este bosquejo en tu ventana de Arduino-
/*
* Ejemplo 3
* En este ejemplo se parpadear dos LED y luego desaparecer otro LED cuando button1 se presiona y se suelta
* y un servo se moverá después de button2 se presiona y se suelta
* Honus 2010
* Modificado de Adafruit alterna interruptor código, http://www.adafruit.com
*/
#include "Servo.h" / / incluye la librería servo
Servo1 servo; crea una instancia del objeto servo para controlar un servo
int servoPin1 = 9; pin de control de servo
ledPin1 int = 8; pin de control de LED
int ledPin2 = 7;
ledPin3 int = 11;
int buttonPin1 = 14; botón está conectado al pin 14 (pin analógico 0)
int buttonPin2 = 15; botón está conectado al pin 15 (1 pin analógico)
int val1; variable para lectura del estado del pin
int val2;
int buttonState1; variable para mantener el último estado de botón
int buttonState2;
void setup() {}
servo1.Attach(servoPin1); se fija el servo en el pin 9 al objeto servo
pinMode (buttonPin1, entrada); configurar el botón pin como entrada
pinMode (buttonPin2, entrada);
buttonState1 = digitalRead(buttonPin1); Lee el estado inicial
buttonState2 = digitalRead(buttonPin2); Lee el estado inicial
pinMode (ledPin1, salida); establece el pin LED como salida
pinMode (ledPin2, salida);
}
void loop() {}
servo1.Write(20);
val1 = digitalRead(buttonPin1); leer valor de entrada y almacena en val
Si (val1! = buttonState1) {/ / el estado de botón ha cambiado!
Si (val1 == LOW) {/ / comprobar si se presiona el botón
Serial.println ("botón a pulsado");
digitalWrite (ledPin1, HIGH); establece el pin LED alta (enciende)
Delay(500); espera 500 milisegundos
digitalWrite (ledPin2, HIGH);
Delay(500);
digitalWrite (ledPin1, LOW); establece el pin del LED baja (apaga)
Delay(500);
digitalWrite (ledPin2, LOW);
Delay(500);
fundidos de min a max en incrementos de 5 puntos:
para (int fadeValue = 0; fadeValue < = 255; fadeValue += 5) {}
establece el valor (rango de 0 a 255):
analogWrite (ledPin3, fadeValue);
Espere 30 milisegundos ver el efecto de atenuación
Delay(40);
}
se descoloran hacia fuera de max a min en incrementos de 5 puntos:
para (int fadeValue = 255; fadeValue > = 0; fadeValue-=5) {}
establece el valor (rango de 0 a 255):
analogWrite (ledPin3, fadeValue);
Espere 30 milisegundos ver el efecto de atenuación
Delay(40);
}
} else {/ / - no - se pulsa el botón...
digitalWrite (ledPin1, LOW); Apagar el LED
digitalWrite (ledPin2, LOW);
}
}
val2 = digitalRead(buttonPin2); leer valor de entrada y almacena en val 2
Si (val2! = buttonState2) {/ / el estado de botón ha cambiado!
Si (val2 == LOW) {/ / comprobar si se presiona el botón
servo1.Write(160); girar el servo a 160 grados
Delay(3000); Espere 3 segundos
servo1.Write(20); girar a 20 grados
} else {/ / - no - se pulsa el botón...
servo1.Write(20);
}
}
buttonState1 = val1; guardar el nuevo estado en nuestra variable
buttonState2 = val2;
}