Olá pessoal , comecei a lidar com arduino a mais ou menos 2 anos mas somente coisas simples , agora me deparei realmente com uma situação complicada para mim espero que possam me ajudar , eu preciso controlar 3 servos via serial e estou apanhando muito para fazer isso , o arduino comunicará com uma aplicação em C# , só que não faço ideia de como separar o comando de cada servo , será que alguém poderia me ajudar ?
Tags:
Seria interessante você detalhar um pouco mais, dizer qual biblioteca está usando, e afins. Se estiver usando a biblioteca servo do arduino, é simples separá-los.
Antes do void setup(), você declara o nome dos servos que você vai utilizar Exemplo:
Servo servo_1;
Servo servo_2;
Já dentro do void(setup), você declara os pinos de cada servo:
servo_1.attach(5);
servo_2.attach(6);
E na hora de programar, você diz para qual servo está enviando o valor:
servo_1.write(VALOR1);
servo_2.write(VALOR2);
Eu queria por exemplo , não faço idéia de como , mas tipo receber A130 , ai ia ser o motor A para 130 graus.
Você precisa separar os servos por letras, ou podem ser números? Se for por número fica bem mais facil.
Você terá uma int de 4 números, o primeiro que indica o servo, e as outras 3 indicam a posição.
Primeiro você lerá o primeiro caractere (casa dos milhares), para isso delimita >1000<2000, depois você tira 1000, e resta o valor da posição. E assim sucessivamente. Porém, se obrigatoriamente receber uma letra, você tera que criar uma string, e depois separar número de letras (o que é um pouco mais complexo).
int numero = 0;
void setup()
{
Serial.begin(9600);}
void loop();
{
if (Serial.available() > 0)
{
servo = Serial.parseInt();
if (servo >1000 && <2000)
{
int servo1=servo-1000
servo1.write(servo1);}
if (servo >2000 && <3000)
{
int servo2=servo-2000
servo1.write(servo2);}
}
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por