Boa noite a todos, meu TCC está quase finalizado, porém tem apresentado problemas com os servos. Estou alimentando os servos com uma fonte independente da fonte do arduino, entretanto seus GND's estão conectados. O servo vertical estão operando perfeitamente, mas o servo horizontal não está, como mostra o vídeo.
A fonte do arduino e dos servos são de 5V cada, com 2000mAh.
O sistema para seguir os servos funciona por meio de 4 ldr's (primeira imagem). O movimento dos servos é baseado na luminosidade recebida pelos LDR's. Os LDR's são distribuidos simetricamente (segunda imagem), de modo que os LDRs são distribuidos como a figura a seguir.
O terceiro arquivo é um vídeo que mostra o servo "louco".
como resolver esse problema?
Esse é o código.
ldr = analogRead(A0); //Faz a leitura analógica do LDR 1
ldr_1 = analogRead(A1); //Faz a leitura analógica do LDR 2
ldr_2 = analogRead(A2); //Faz a leitura analógica do LDR 3
ldr_3 = analogRead(A3); //Faz a leitura analógica do LDR 4
vms = (ldr + ldr_1) / 2; //Valor médio superior
vmi = (ldr_2 + ldr_3) / 2; //Valor médio inferior
vme = (ldr + ldr_2) / 2; //Valor médio esquerda
vmd = (ldr_1 + ldr_3) / 2; //Valor médio direita
dvert = vms - vmi; //Verifica a diferença entre ldr superior e inferior
dhoriz = vme - vmd; //Verifica a diferença entre o ldr da esquerda e direita
if (vms > vmi) { //Verifica condição vertical 01
servov = ++servov;
if (servov > 160) { //Angulo vertical limite superior
servov = 160;
}
} //Fim da confição vertical 01
else if (vms < vmi) { //Verifica condição vertical 02
servov = --servov;
if (servov < 10) { //Angulo vertical limite inferior
servov = 10;
}
}
else {
} //Nada acontece
vertical.write(servov); //Escreve a posição vertical
if (vme > vmd) { //Verifica condição horizontal 01
servoh = ++servoh;
if (servoh < 160) { //Angulo horizontal limite inferior
servoh = 160;
}
} //Fim da confição horizontal 01
else if (vme < vmd) { //Verifica condição horizontal 02
servoh = --servoh;
if (servoh > 20) { //Angulo horizontal limite superior
servoh = 20;
}
}
else {
} //Nada acontece
horizontal.write(servoh); //Escreve a posição horizontal
Tags:
Boa tarde JFS,
Recomendações:
1. Remova seu sketch da área de texto do seu tópico;
2. Leia http://labdegaragem.com/forum/topics/sugest-o-de-como-postar
3. Comente as linhas do seu sketch. Fica mais fácil entender o que vc quer fazer com cada linha e facilita a ajuda.
4. Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
com o seu sketch.
RV
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por