jueves, 28 de marzo de 2019

Servo controlado co M_block

#include <Servo.h>
Servo miservo;
int pos=0;
int TECLA=0;
void setup() {
  Serial.begin(9600);
  miservo.attach(9);
  pos=0;
}
void loop() {
    miservo.write(pos);
    delay(50);
    Serial.println(pos);
    if (Serial.available() > 0) {  //esto da algo de error
       delay(100);
       TECLA=Serial.read();
       if (TECLA==49){  //es decir,  "1"
          pos=0; //ángulo que debe tomar con la tecla indicada
          }
       if (TECLA==50){  //es decir,  "2"
          pos=45; //ángulo que debe tomar con la tecla indicada
       }
       if (TECLA==51){  //es decir,  "3"
          pos=90; //ángulo que debe tomar con la tecla indicada
          }
        if (TECLA==52){  //es decir,  "4"
          pos=135; //ángulo que debe tomar con la tecla indicada
          }
       if (TECLA==53){  //es decir,  "5"
          pos=180; //ángulo que debe tomar con la tecla indicada
          }
     
     
       }
}

Así conseguiriamos girar el servo al angulo deseado mediante las teclas

Servo controladopor ponteciometro

1.- Mueve un servo según una  determinada entrada analógica. Mediante un joystick o un dispositivo que cuente con un  potenciómetro podemos controlar el movimiento de un servo. 

int val;                     //introducimos la variable val
#include <Servo.h>
Servo servo;
int pot = 3;  //entrada analógica del potenciometro
void setup() {
  Serial.begin(9600);
  servo.attach(6);
}
void loop() {
  int valorpot= analogRead(pot);
  val=map(valorpot,0,1023,0,180); //el valor de ""val" ira variando según varie el valor del potenciometro
  Serial.println(val); //hacemos que nos muestre el angulo de giro en el monitor
  delay(500);
  servo.write(val);
  delay(100);
}

Así conseguiriamos que el servomotor giré exactamente el ángulo que deseemos mediante un controlador, el cual es en este caso en potenciómetro.

viernes, 22 de marzo de 2019

Limpiaparabrisas

1.- Modifica el programa para que el LIMPIAPARABRISAS se mueva más lentamente  cuando se mueva en un sentido y más rapidamente en el otro. 

#include <Servo.h>     
#define pinServo 9   
Servo miservo;         
int pos=0;                 
void setup() {
    miservo.attach(pinServo);        //declaramos la salida del sevo
}
void loop() {
    for (pos=0; pos<=170; pos=pos+1); {
       miservo.write(pos);                     //movemos el servo en un sentido
       delay(800);
    }
    for (pos=170; pos>=10; pos=pos-70); {
       miservo.write(pos);                   //aumentamos el posicionamiento para aumentar la velocidad
       delay(700);
    }
}

Movimiento de Servo Simple

Actividades para tomar contacto con las funciones mas simples de los servomotores