eu queria que meu servo movimentasse quando o sensor ultrassonico detectar algo na frente dele , mas não consegui, o servo motor se movimenta com sucesso quando coloco o for dentro do else, mas dentro do if ele gira sem parar :
// programa para o sensor ultrassonico
#include <Servo.h>
#define SERVO 6 // Porta Digital 6 PWM
Servo s; // Variável Servo
int pos; // Posição Servo
int ledPin = 13; //configura o pino 13 da Arduino para conexão do LED
int trig = 8; //configura o pino 8 da Arduino para conexão do Trig do sonar
int echo = 11; //configura o pino 11 (PWM) da Arduino para conexão do Echo do sonar
void setup( ) {
pinMode(trig, OUTPUT); //define o pino 8 como um output (envia sinal do sensor)
pinMode(echo, INPUT); //define o pino 7 como um input (recebe sinal do sensor)
pinMode(ledPin, OUTPUT); //define o pino 13 como um output (aciona o LED)
Serial.begin(9600);
Serial.print("distancia");
s.attach(SERVO);
Serial.begin(9600);
s.write(0); // Inicia motor posição zero
}
void loop(){
float tempo, cm;
//comandos para enviar um pulso do sonar e armazenar o tempo de resposta
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH); //ativa o sonar por 10 microssegundos
delayMicroseconds(10);
digitalWrite(trig, LOW);
delayMicroseconds(2);
tempo = pulseIn(echo, HIGH); // tempo, recebe o tempo de ida e volta do sinal
cm = tempo/29/2; //converte duration em centímetros
Serial.println(cm);
// Se cm menor ou igual a 30, liga o LED
if (cm <= 30)
{
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
for(pos = 0; pos < 90; pos++)
{
s.write(pos);
delay(15);
}
delay(1000);
for(pos = 90; pos >= 0; pos--)
{
s.write(pos);
delay(15);
}
}
}
Tags:
Bom dia J2S,
Leia: http://labdegaragem.com/forum/topics/sugest-o-de-como-postar
e depois remova seu sketch da área de texto do tópico.
RV
Recomendo:
Fazer a correta indentação, fica complicado entender se determinado bloco tem dependencia do anterior, vide:
https://pt.wikipedia.org/wiki/Indenta%C3%A7%C3%A3o
https://www.arduino.cc/en/Guide/Environment#auto
Na versão acima tudo está no else, inclusive 2x o for(;;) e um delay(1000) O seu problema deve ser de colchetes. Identando vc mesmo vai enxergar o erro, acho.
Jessica,
Estou verificando seu programa, mas preciso entender o que realmente deseja fazer com o sensor e com o servo motor, pretende deixar o funcionamento do servo em função da distancia que o sensor lê ? porque no programa, esta setado um valor de (cm <= 30) -> apenas liga o led, senão ele fica movimentando o servo motor.
Existem também algumas bibliotecas utilizando este sensor, o que facilita caso não use profissionalmente:
https://www.filipeflop.com/blog/sensor-ultrassonico-hc-sr04-ao-ardu...
em anexo o Programa com extensão C.
Me informe melhor o que deseja fazer que tento ajudar e siga a dica do RV sobre seu Sketch.
obrigada pela atenção leonardo, me chama no email que paso meu whats jessicassoarez@gmail.com
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2023 Criado por Marcelo Rodrigues.
Ativado por