Os servos são motores com alguma elecrónica suplementar incorporada.
De acordo com o seu comportamento e controlo existem pelo menos os seguintes tipos de servos:
- Os servos normais de 180 e 270 graus
- Os servos de guincho de 360 graus (servo sail winch)
- Os servos continuos 360 de graus
Controlo dos servos
Para controlar todos os tipos de servos acima referidos no Arduino pode ser usada a biblioteca servo.
https://www.arduino.cc/en/Reference/Servo
Servos normais de 180 e 270 graus
Usa-se o comando write() para indicar o angulo (em graus) desejado para a nova posição do eixo do servo. O angulo indicado deve estar dentro dos limites de rotação do servo.
Tambem se pode usar o comando writeMicroseconds().
Exemplos de servo normal: Tower Pro SG90, DFrobot DSS-M15S 270.
Servos de guincho de 360 graus
Usa-se o comando write() para indicar o angulo desejado para a nova posição do eixo do servo. O angulo indicado deve estar dentro dos limites de rotação do servo.
Tambem se pode usar o comando writeMicroseconds().
Exemplos de servo de guincho de 360 graus: SW4805, SW22HV, JX W4505-6T.
Os servos continuos 360 de graus
Usa-se o comando write() para indicar a existencia ou não do movimento e qual a direcção e velocidade da rotação.
O controlo é efectuado do seguinte modo:
- Definido um limite de valores minimo e maximo perto de 90 que param o movimento
- Valores inferiores ao minimo valor de paragem rodam o eixo do servo para a direita, mais rapido quanto menor for o número.
- Valores superiores ao maximo valor de paragem rodam o eixo do servo para a esquerda, mais rapido quanto maior for o número.
Tambem se pode usar o comando writeMicroseconds().
Exemplo de servo continuo 360 graus: Tower Pro MG995 360 graus.
Notas importantes no controlo dos servos
A biblioteca Servo.h é incompativel com a biblioteca SoftwareSerial.h
Links
https://servodatabase.com/