Merhabalar servo arduıno ve hcr04 kullanarak devre yaptım devre calışıyror ama yazdığım kodda hata veriyor düzeltebilir seniz çok sevinirim.

Katılım
10 Tem 2024
Mesajlar
3
Puanları
1
Yaş
14
Kod:
#include <Servo.h>

Servo name_servo;

int servo_position = 0;
int servo_position2 = 180;


const int TRIG_PIN = 6; 
const int ECHO_PIN = 7; 
const int LED_PIN  = 9; 
const int DISTANCE_THRESHOLD = 50; 


float duration_us, distance_cm;

void setup() {
  name_servo.attach (9);

  Serial.begin (9600);       
  pinMode(TRIG_PIN, OUTPUT); 
  pinMode(ECHO_PIN, INPUT);   
  pinMode(LED_PIN, OUTPUT);  
}

void loop() {
  
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  
  duration_us = pulseIn(ECHO_PIN, HIGH);
  
  distance_cm = 0.017 * duration_us;

  if(distance_cm < DISTANCE_THRESHOLD)
  
  digitalWrite(LED_PIN, HIGH);  

     for (servo_position = 0; servo_position <=180; servo_position +=1){

    name_servo.write(servo_position);
    delay(10);
  }
  
  for (servo_position=180; servo_position >= 0; servo_position -=1){

    name_servo.write(servo_position2);
    delay(10);
  }
  else
    digitalWrite(LED_PIN, LOW);  

 
  Serial.print("distance: ");
  Serial.print(distance_cm);
  Serial.println(" cm");

  delay(500);
}
 

Ekli dosyalar

  • ....png
    ....png
    43.6 KB · Görüntüleme: 8
abi yaptım olmadı if(distance_cm < DISTANCE_THRESHOLD) bunun yerıne if(distance_cm < DISTANCE_THRESHOLD) { bunu yazınca yıne aynı hatayı
veriyor
 
Güzel parantez ({}) hatası var, alttaki else den önce de parantezi kapatmalısınız.
Alttaki şekilde derlendi.
C:
#include <Servo.h>

Servo name_servo;

int servo_position = 0;
int servo_position2 = 180;


const int TRIG_PIN = 6;
const int ECHO_PIN = 7;
const int LED_PIN  = 9;
const int DISTANCE_THRESHOLD = 50;


float duration_us, distance_cm;

void setup()
{
  name_servo.attach (9);

  Serial.begin (9600);       
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);   
  pinMode(LED_PIN, OUTPUT); 
}

void loop()
{
 
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);


  duration_us = pulseIn(ECHO_PIN, HIGH);

  distance_cm = 0.017 * duration_us;

  if(distance_cm < DISTANCE_THRESHOLD)
  {

    digitalWrite(LED_PIN, HIGH); 

    for (servo_position = 0; servo_position <=180; servo_position +=1)
    {
      name_servo.write(servo_position);
      delay(10);
    }

    for (servo_position=180; servo_position >= 0; servo_position -=1)
    {
      name_servo.write(servo_position2);
      delay(10);
    }
  }
  else
  {
    digitalWrite(LED_PIN, LOW);
  }

  Serial.print("distance: ");
  Serial.print(distance_cm);
  Serial.println(" cm");

  delay(500);
}
 
Son düzenleme:

Forum istatistikleri

Konular
128,867
Mesajlar
921,139
Kullanıcılar
450,986
Son üye
yasinarsln53

Yeni konular

Çevrimiçi üyeler

Geri
Üst