Duvida sobre biblioteca do TLC5940 no Arduino, para controle de servos.

Olá pessoal, esse é o meu primeiro tópico aqui no Lab, e preciso de uma ajudinha sobre a biblioteca do TLC5940 (http://playground.arduino.cc/learning/TLC5940). Depois de ver e rever os exemplos no google, ainda tenho duvida sobre se é possivel o controle do servo individualmente e com qual função é feito isso (coloquei um exemplo ai embaixo do que quero dizer), e tambem se é necessario ajustar largura de pulso maximo e minimo de cada servo, como vi comentarios sobre isso em alguns sites. 

/* Esse código é só um exemplo para perguntar
se é feita uma leitura do potenciometro, e enviar o valor para o TLC 5940
em especifico e somente para o output 10
o valor lido na entrada analogica A1 do arduino, 

mesma coisa para o output11 com A2

ja vi varios exemplos porem nao compreendi certos pontos
como: é possivel controlar os servos individualmente?
se sim, é usando "tlc_setServo(pino do servo, posição)"?

e tambem se é necessario ajustar algum parametro no codigo ou na biblioteca para
cada servo como largura maxima e minima de pulso...
*/
#include <Tlc5940.h> //inclui a biblioteca
#include <tlc_servos.h>

 

#define servoPin1 10 //servo1
#define servoPin2 11 //servo2

 

int pot1 = A1; // potenciometro 1
int pot2 = A2; //potenciometro 1
int val1, val2;

 

void setup(){
tlc_initServos(); //nao sei ao certo sobre essa funçao
}

 

void loop(){
val1 = map(analogRead(pot1), 0, 1023, 0, 180); //converte o valor do potenciometro
val2 = map(analogRead(pot2), 0, 1023, 0, 180); 

 

tlc_setServo(servoPin1, val1); //aqui minha maior duvida, é possivel fazer isso??
tlc_setServo(servoPin2, val2);

 

Tlc.update(); //função para executar o a funçao anterior, ou algo assim
delay(20);
}

Pretendo construir um quadruped, e precisa controlar 12 servos, e buscando a melhor solução foi o tlc5940. Quando começar a construção compartilharei com vocês o projeto. 

Desde já agradeço pela ajuda..

Exibições: 596

Responder esta

Respostas a este tópico

E aí, Daniel!

Dê uma olhada no post que fiz http://labdegaragem.com/forum/topics/quantos-servo-motores-voc-dese... .

Este é o código que usei no vídeo:

#include "Tlc5940.h"
#include "tlc_servos.h"

void setup()
{
tlc_initServos(); // Note: this will drop the PWM freqency down to 50Hz.
}

void loop()
{
for (int angle = 0; angle < 180; angle = angle + 3) {
tlc_setServo(0, angle);
tlc_setServo(1, (angle / 2));
tlc_setServo(2, (180 - angle));
tlc_setServo(3, (180 - (angle / 2)));
tlc_setServo(4, (angle / 3));
tlc_setServo(5, (angle / PI));
Tlc.update();
delay(20);
}
for (int angle = 180; angle >= 0; angle = angle - 3) {
tlc_setServo(0, angle);
tlc_setServo(1, (angle / 2));
tlc_setServo(2, (180 - angle));
tlc_setServo(3, (180 - (angle / 2)));
tlc_setServo(4, (angle / 3));
tlc_setServo(5, (angle / PI));
Tlc.update();
delay(20);
}
}

Obrigado Eduard, já tinha visto o seu post porem nao tinha compreendido alguns pontos, agora ja melhorou bastante...  E como ainda nao tenho o TLC5940 fica mais complicado testar. Valeu

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço