Galera gostaria de saber como posso fazer para ver a posição do servo atravez do serial monitor tipo como se ele fose m "sensor" alguem sabe ??
Tags:
Procurei sobre usa o comando read() porem não encontrei nem um codígo especifico pro servo por acaso você tem um ou possa me dar uma explicação detalhada?
coloque o sketch seu ai que eu adapto pra vc ok?
blz
È bem simples mas futuramente vou usar para outra coisa :
#include <Servo.h>
Servo myservo;
void setup() {
myservo.attach(9);
}
void loop() {
myservo.write(0);
delay(2000);
myservo.write(360);
delay(2000);
}
Seria isso q vc quer?
#include <Servo.h>
Servo myservo;
void setup() {
myservo.attach(9);
Serial.begin(9600);
}
void loop() {
myservo.write(0);
delay(2000);
Serial.println(0);
myservo.write(360);
delay(2000);
Serial.println(360);
}
Não quero que printe toda a variação de 0 ate 360 exemplo 1, 2, 3, 4, 5, ..... 360
escreva isso na sua ide
#include <Servo.h>
int valor = 0;
float valorServo = 0;
Servo servo1;
Servo servo;
String valorRecebido = "";
String meio = "0001";
String desce = "0002";
String sobe = "0003";
int limpastring = 0;
void setup ()
{
Serial.begin(9600);
servo1.attach(9);
}
void loop ()
{
valor = analogRead(A0);
valorServo = map (valor,0,1023,0,360);
if (Serial.available())
{
char entrada = Serial.read();
valorRecebido += entrada;
if (meio == valorRecebido.substring(0,4))
{
Serial.println("meio");
servo1.attach(9);
servo1.write(90);
Serial.println(valorServo);
limpastring = 1;
if (limpastring == 1)
{
valorRecebido = "";
limpastring = 0;
}
}
if (desce == valorRecebido.substring(0,4))
{
Serial.println("Desce");
servo1.attach(9);
servo1.write(180);
Serial.println(valorServo);
limpastring = 1;
if (limpastring == 1)
{
valorRecebido = "";
limpastring = 0;
}
}
if (sobe == valorRecebido.substring(0,4))
{
Serial.println("Sobe");
servo1.attach(9);
servo1.write(0);
Serial.println(valorServo);
limpastring = 1;
if (limpastring == 1)
{
valorRecebido = "";
limpastring = 0;
}
}
}
}
agora vc vai ter que abrir o seu servo e ligar no pino A0 do arduino o pino do meio do potenciometro do seu servo
agora abra o serial monitor e digite 0001 e de enter (cuidado pra nao errar a string senao vai ter que resetar o arduino ) duas vezes pra armazenar o valor da posiçao
agora faça a mesma coisa com 0002
e tb com 0003
dependendo da rotaçao de seu servo vc tera que mudar a linha
valorServo = map (valor,0,1023,0,360); trocando o 360 por outro valor e fazendo um teste ate os valores ficarem de seu gosto
talves nao fique 100% fiz uma coisa inedita pra vc nunca tinha tentado nada assim antes mas assim vc ja consegue captar algum valor
se quiser que fique 100% coloque um potenciometro externo ligado ao 5v e gnd que assim vc consegue captar os valores reais assim no lugar de 360 escreva 5 (valor do vcc) que ele comparara com o valor conhecido
espero que tenha ajudado
duvidas posta ai que procuraremos ajudar no possivel
vlw
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por