Paso 6: Codigo
Para controlar la rotación del servomotor se debe enviar un pulso como señal en milisegundos determina su ángulo de rotación.
Estándar de rotación: Para mantener el servomotor en 0 grados debe estar 1 milisegundos en la parte alta del pulso, 20 milisegundos en la parte baja. Para mantener el servomotor en 90 grados debe estar 1.5 milisegundos en la parte alta del pulso, 18,5 milisegundos en la parte baja. Para mantener el servomotor en 180 grados debe estar 2 milisegundos en la parte alta del pulso, 18 milisegundos en la parte baja.
El código es el siguiente:
#include
Mder servo; Mizq servo; Servo pieder; Servo pieizq; Cabeza del servo;
int posmder = 0; int posmizq = 0; int pospder = 0; int pospizq = 0; int poscabeza = 0; int pos = 0;
int pos1 [] = {180,0,180,30,25};
int pos2 [] = {0,0,0,180,45};
int pos3 [] = {180,0,0,80,0,17};
int pos4 [] = {0,0,0,0,00};
int pos5 [] = {0,0,0,0,0};
void setup() {mder.attach(9); mizq.attach(12); pieder.attach(10); pieizq.attach(13); cabeza.attach(11);}
void loop() {}
para (pos = 0; pos < = 20; pos += 1) {}
posmder = -45 + pos1 [pos];
retardo (70); pospder = 0 + pos2 [pos];
Delay (100); posmizq = -45 + pos3 [pos];
retardo (80);
pospizq = 0 + pos4 [pos];
Delay (50); poscabeza -90 = pos5 [pos];
Delay (50); MDER.Write (posmder); pieder.Write (pospder);
MizQ.Write (posmizq); pieizq.Write (pospizq);
cabeza.Write (poscabeza); Delay(2);
posmder = 90 - pos; pospder = 180 - pos;
posmizq = 90 - pos; pospizq = 180 - pos;
poscabeza = 90 - pos; }
}