Advertisement
AntonioVillanueva

Test GPIO RASPBERRY USO SERVO MOTOR

May 12th, 2017
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. //g++ -o -std=C++11  servo servo.cc -lwiringPi -lpthread
  2. #include <iostream>
  3. #include <wiringPi.h>
  4. #include <softPwm.h>
  5.  
  6. using namespace std;
  7. #define INIT_VALUE 4//Valeur initial servo moteur
  8. #define RANGE 200//Valeur final servo moteur
  9. #define OPEN 13 //Valeur 90 degrees servo 13
  10. #define CLOSE 4 //Valeur 0 degrees servo
  11.  
  12. class servo{
  13.     public:
  14.     servo()=delete;//Pas de constructeur par default
  15.     servo(int pin);//Constructeur avec num. pin GPIO
  16.     void test(int pin);//Test Servo Moteur
  17.     void testAngle(int pin,int angle);
  18.  
  19.     private:
  20.     int create(int pin);
  21.     void open (int pin);
  22.     void close (int pin);
  23. };
  24.  
  25. servo::servo(int pin){ create(pin);}
  26. int servo::create(int pin){return softPwmCreate(pin,INIT_VALUE,RANGE);}//Cree  pwm gpio pins
  27. void servo::open(int pin){softPwmWrite(pin,OPEN);} //90 degrees
  28. void servo::close(int pin){softPwmWrite(pin,CLOSE);}//0 degrees
  29. void servo::test (int pin){close (pin);delay(1000);open(pin);delay(1000);close(pin);delay(1000);} //Test 0-90 degrees
  30. void servo::testAngle(int pin,int pas){
  31.     int angle(CLOSE);
  32.     while (angle<=OPEN){
  33.         cout <<"angle ="<<angle<<endl;
  34.         softPwmWrite(pin,angle);
  35.         delay(1000);
  36.         angle+=pas;
  37.     }
  38.     close(pin);
  39.     delay(1000);
  40. }
  41.  
  42. int main (){
  43.     int pin(0);
  44.     if (wiringPiSetupPhys()==-1){cout <<"Error !"<<endl;return 1;}//Gpio ping
  45.  
  46.     cout <<"Pin. Num Raspberry"<<endl;
  47.     cin >> pin;
  48.     servo servos(pin);//Cree servo
  49.     servos.test(pin);//Test servo 0-90
  50.     servos.testAngle(pin,1);
  51.     return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement