Documentos de Académico
Documentos de Profesional
Documentos de Cultura
int retardo=5;
int dato_rx;
int numero_pasos = 0;
String leeCadena;
void setup() {
Serial.begin(9600);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
void loop() {
while (Serial.available()) {
delay(retardo);
char c = Serial.read();
leeCadena += c;
if (leeCadena.length()>0){
dato_rx = leeCadena.toInt();
Serial.print(dato_rx);
Serial.println(" Grados");
delay(retardo);
while (dato_rx>numero_pasos){
paso_izq();
numero_pasos = numero_pasos + 1;
while (dato_rx<numero_pasos){
paso_der();
leeCadena = "";
apagado();
void paso_der(){
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
delay(retardo);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
delay(retardo);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
delay(retardo);
digitalWrite(11, HIGH);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
delay(retardo);
void paso_izq() {
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
delay(retardo);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
delay(retardo);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
delay(retardo);
digitalWrite(11, HIGH);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
delay(retardo); }
void apagado() {
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
}
//Variables
Servo SERVOT;
int velocidad = 0;
int pulsacion = 0;
int estado_boton;
int estado_boton_anterior;
void setup() {
Serial.begin(9600);//Frec
SERVOT.write(20);
estado_boton_anterior = digitalRead(controlPin);
void loop() {
detecta_pulsacion();
//Condiciones
if (pulsacion > 0) {
for (pos = 20; pos <= 160; pos += 5) { //de 0 degrees a 180
delay(velocidad);
}
for (pos = 160; pos >= 20; pos -= 5) {
SERVOT.write(pos);
delay(velocidad);
detecta_pulsacion();
void detecta_pulsacion() {
//estado boton
estado_boton = digitalRead(controlPin);
if (estado_boton != estado_boton_anterior) {
if (estado_boton == HIGH) {
Serial.println("Nueva pulsacion");
pulsacion++;
switch (pulsacion) {
case 1:
velocidad = 40;
break;
case 2:
velocidad = 10;
break;
case 3:
pulsacion = 0;
break;
}
}
estado_boton_anterior = estado_boton;