Omet navegació

7.- Servomotor (0 a 180º)

Anem a veure el funcionament del servomotor SG90 que podem connectar directament a Arduino. El cable roig va a 5V , el cable marró a GND i el taronja al 9 o a qualsevol altre port d'Arduino.

SG90

El programa per controlar aquest servo és:

// Sweep
// by BARRAGAN <http://barraganstudio.com> 
// This example code is in the public domain.
//Modificat (25-nov-2015): Carles Ferrando.

#include <Servo.h> 
Servo servo1;  // Crea el objecte servo1 per controlar el servomotor 1
                // es poden crear un maxim de 8 objectes servo 

// Variable per emmgatzemar la posicio angular del servo (de 0 a 180 graus)  
int pos = 0;    
 
void setup() 
{ 
  // Adjunta el servo1 al port 9 de Arduino. Dona energia al port 9 
  servo1.attach(9);  
} 
  
void loop() 
{ //Comença un bucle loop

   //Bloc per anar de 0 a 90 
  for(pos = 0; pos < 90; pos += 1)  // Va des de 0 graus fins 89 graus 
  {  
     // Escriu la posicio "pos" al servo1, el fa anar a eixa posicio 
    servo1.write(pos); 
    // espera 15 milisegons a que el servo1 arribe a eixa posicio             
    delay(15);                       
  } 
  //Espera 2 segons amb la barrera pujada
  delay(2000) ; 
  
 //Bloc per anar de 90 a 0 
 for(pos = 9; pos>=1; pos-=1)     // Va des de 90 graus fins 0 graus 
 { 
  // Escriu la posicio "pos" al servo1, el fa anar a eixa posicio                               
 servo1.write(pos); 
  // espera 15 milisegons a que el servo1 arribe a eixa posicio              
 delay(15);                      
   }
   //Espera 2 segons amb la barrera baixada
   delay(2000) ; 
   
} // Acaba el bucle loop i torna a la linea de començament de nou cicle