ARDUINO: Llibreria Servo

LLIBRERIA SERVO

//Necessària per a poder controlar un servomotor. Als servomotors podem indicar-lis els graus de gir, als motors NO.

  • Servo: Per a declarar un objecte servo
      • Estructura: Servo nomdelservo;Servo esquerra;
    • Attach: Per indicar el pin al que es troba el servo (és la seva versió de pinMode)
      • Estructura: nomdelservo.attach(númeropin); → esquerra.attach(9);
  • Write: Per a posicionar el servo a un angle (en graus) determinat.

Estructura: nomdelservo.write(graus); → esquerra.write(90);

FUNCIONS

//Una funció és un conjunt d’ordres que volem que es vagin repetint al llarg de programa. A les funcions podem afegir-lis variables, que farem servir per a executar les instruccions.

  • Void: És un tipus de funció que no retorna cap valor.
  • Int: És un tipus de funció que retorna un valor enter. No s’han de confondre amb les variables enteres, que tenen una estructura i una funció diferents.
    • Estructura: tipusdefunció nomdelafunció(tipusdevariable nomdelavariable){

}

Ex:

void blink(int led){

  analogWrite(led,HIGH);

  delay(2000);

  analogWrite(led,LOW);

  delay(2000);

}

void loop(){

  blink(9);

  blink(10);

  }

Ex:

float suma(float a, float b){

  float resultat = a+b;

  Serial.println(resultat);

  return resultat;

}

void setup(){

  Serial.begin(9600);

  float primer=suma(4.6,1.8);

  float segon=suma(5.5,6.1);

  float resta=segon-primer;

  Serial.println(resta);

}

 

EXERCICI DE PRÀCTICA

Elaboreu un programa que calculi l’àrea de 3 triangles diferents i mostri el resultat pel monitor.

 

 

EL MEU ROBOT: CONDUCCIÓ PREPROGRAMADA

La Laia vol programar un vehicle que avanci, retrocedeixi, pari i giri tant cap a la dreta com cap a l’esquerra.

Després, vol configurar-lo per a que faci el recorregut següent tot sol:

SOLUCIÓ

#include <Servo.h>

Servo esquerra;        

Servo dreta;        

const int neutre = 90;    

void setup() {

 esquerra.attach(9);                          

 dreta.attach(10);                           

}

void stop(pausa){

 esquerra.write(neutre);                       

 dreta.write(neutre);                         

 delay(pausa);                                        

}

void gird(pausa){

 esquerra.write(neutre+10);                       

 dreta.write(neutre+10);                         

 delay(pausa);                                        

}

 

void gire(pausa){

 esquerra.write(neutre-10);                       

 dreta.write(neutre-10);                         

 delay(pausa);                                        

}

 

void davant(pausa){

 esquerra.write(neutre-30);                       

 dreta.write(neutre+30);                         

 delay(pausa);                                        

}

void darrere(pausa){

 esquerra.write(neutre+30);                       

 dreta.write(neutre-30);                         

 delay(pausa);                                        

}

 

void loop() {

 davant(500);

 gire(400);

 davant(500);

 gird(400);

 davant(500);

 gire(400);

 davant(500);

 stop(2000);

 darrere(0);

 darrere(5000);

}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.