1

I'm a newbie to Arduino. The goal is to write a program that can stop a hypothetical conveyor belt (read a servo motor) if too many objects are stacked on a belt, that is detected by HC-S04 sensor. If the the distance exceeds the minimum threshold value (1000), then the motor can freely spin. If not, it should stop. With the code below, I get a servo motor to spin regardless of whether an object is in front of it or not. Tried taking out and changing the delay. It just was spinning faster or slower, but still ignored obstacle distance. Tried commenting sensorValue = map(sensorValue, 0, 255, 0, 4000); but it didn't affect the result.

#include <Servo.h>
#include <Wire.h>

Servo servo;
const int trigPin= 9;
const int echoPin= 10;
const int threshold = 1000;

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin,INPUT);
Serial.begin(9600);
servo.attach(8);

}

void loop() {
  int sensorValue = digitalRead(echoPin);
  sensorValue = map(sensorValue, 0, 255, 0, 4000);
  if (sensorValue >= threshold) {
    digitalWrite(8,HIGH);
    delay(10);
   }

  else {
    digitalWrite(8,LOW);
   delay(10);
  }
}
Dmitry
  • 6,716
  • 14
  • 37
  • 39

1 Answers1

0

Debug by outputting your sensorValue contents - this will allow you to check which branch is triggered.

(can't post as a comment because my rep is not high enough).

You can use the debugging values to check, configure and calibrate your sensor.

AJD
  • 2,400
  • 2
  • 12
  • 22