Come utilizzare la libreria di Adafruit Servo Controller
ciao tutti, il mio problema è che nn reisco capire come funziona la libreria della shield di adafruit per il controllo dei servo motori, in particolare non riesco capire il funzionamento della funzione: pwm.setpwm(n,x,y), la "n" ho capito che identifica il servo invece "x" e "y" non capisco cosa si riferiscono, nella libreria vengono identificate come on e off... ho pensato che magari serve per fare girare il servo tipo da x=10° y=80° ma quando faccio le prove il servo si incricca e mi sembra che va oltre il suo limite, il servo in teoria gira da 0° 180° anche se dopo ho visto che non è proprio così... se utilizzo la servo-shield "cinese" utilizzando le istruzioni della libreria servo.h, il servo gira bene senza incriccarsi o altro.. =(
i servi che utilizzo sono tower pro 9g sg90.
questa è la libreria:
i servi che utilizzo sono tower pro 9g sg90.
questa è la libreria:
code: [select]
/***************************************************
library our adafruit 16-channel pwm & servo driver
pick 1 today in adafruit shop!
------> http://www.adafruit.com/products/815
these displays use i2c communicate, 2 pins required to
interface. arduino unos, thats scl -> analog 5, sda -> analog 4
adafruit invests time , resources providing open source code,
please support adafruit , open-source hardware purchasing
products adafruit!
written limor fried/ladyada adafruit industries.
bsd license, text above must included in redistribution
****************************************************/
#ifndef _adafruit_pwmservodriver_h
#define _adafruit_pwmservodriver_h
#if arduino >= 100
#include "arduino.h"
#else
#include "wprogram.h"
#endif
#define pca9685_subadr1 0x2
#define pca9685_subadr2 0x3
#define pca9685_subadr3 0x4
#define pca9685_mode1 0x0
#define pca9685_prescale 0xfe
#define led0_on_l 0x6
#define led0_on_h 0x7
#define led0_off_l 0x8
#define led0_off_h 0x9
#define allled_on_l 0xfa
#define allled_on_h 0xfb
#define allled_off_l 0xfc
#define allled_off_h 0xfd
class adafruit_pwmservodriver {
public:
adafruit_pwmservodriver(uint8_t addr = 0x40);
void begin(void);
void reset(void);
void setpwmfreq(float freq);
void setpwm(uint8_t num, uint16_t on, uint16_t off);
private:
uint8_t _i2caddr;
uint8_t read8(uint8_t addr);
void write8(uint8_t addr, uint8_t d);
};
#endif
Arduino Forum > International > Italiano > Software (Moderator: leo72) > Come utilizzare la libreria di Adafruit Servo Controller
arduino
Comments
Post a Comment