Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Construyendo a Chispas
Menú
Saltar al contenido.
Para controlar el movimiento de estos servos usaremos dos variables, una guardará el valor en
grados actual, la otra el valor en grados al que debe de moverse. En cada iteración de la
función loop() se llamara a la función ActualizarServos() que se ocupa de actualizar el valor del
servo. Si ambas variables coinciden no se hace nada, si son distintas cada iteración se sumará
o restará un grado para acercarse al valor deseado. Esto se hace así para evitar movimientos
demasiado rápidos que puedan dañar el robot o golpear alguna cosa del entorno. La velocidad
se puede controlar con el delay al final de la función loop()
Cada servo tendrá unos grados mínimos y máximos delos que no podrá pasar, delimitados por
la estructura del brazo (por ejemplo, que choque con la propia estructura del brazo o que la
articulación no «da más de si»). Se usaran dos variables para estar seguro que no pasamos
esos limites. Por ejemplo para la base se usaran: basePosMax y basePosMin.
Si se intenta establecer un valor mayor o menor del fijado por esas dos variables se igualará al
valor de estas. Asi evitamos situaciones que puedan dañar el brazo.
Para controlar el brazo usaremos comandos de texto enviados a través del puerto serie
Lo comandos son:
S1 base
S2 codo
S3 hombro
S4 mano
Por ejemplo, para cerrar la mano se podria usar el comando S4:35
#include <Servo.h>
int basePosMin = 0;
int hombroPosMin = 80;
int codoPosMin = 90;
int manoPosMin = 10;
void setup() {
// Se inicializan los servos en la posición central
baseServo.write(basePos);
hombroServo.write(hombroPos);
codoServo.write(codoPos);
manoServo.write(manoPos);
void loop() {
// Se actualizan los servos
ActualizarServos();