talofer99 icon

Untitled

talofer99 | PRO | 04/17/18 01:37:47 PM UTC | 0 ⭐ | 318 👁️ | Never ⏰ | []
C |

1.62 KB

|

None

|

0 👍

/

0 👎

#define NUMBER_OF_SENSORS 7 // Number of ultrasonic sensors
#define MAX_SENSOR_MEASUREMENT 35 // max distance for read for the sensor (in cm) 
 
 
// for ultrasonic
int sensorsPins[NUMBER_OF_SENSORS] = {2, 11, 12, A0, A1, A2, A3}; //define the pins for the sensors
const int TRIG_PIN = 13; // TRIGGER pin
volatile int currentSensor = 0; // current sensor been red
boolean sensorState[NUMBER_OF_SENSORS];//holds the sensor state to create a "snap shot" of the state of all the sensors after full loop over them - so we can choose the higher one.
long duration, distanceCm; // declare var for sensor read
 
 
// VOID SETUP
void setup() {
  
  // setup for ultrasonic
  pinMode(TRIG_PIN, OUTPUT);
  for (int i = 0; i < NUMBER_OF_SENSORS; i++) {
    pinMode(sensorsPins[i], INPUT);
  } //end for
 
  
 
} // end void setup
 
 
void loop() {
 
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  duration = pulseIn(sensorsPins[currentSensor], HIGH, 4000);
 
  // convert the time into a distance
  distanceCm = duration / 29.1 / 2 ;
 
  // if the distnace is between 40 and more then 0 (also the vlaue that OUT OF RANGE returns) show true - as sensor is showing movment.
  if (distanceCm < MAX_SENSOR_MEASUREMENT && distanceCm > 0) {
    sensorState[currentSensor] = true; // set true
  } else {
    sensorState[currentSensor] = false; // set false
  }  //end if
  
  
  // move to next sensor
  currentSensor = (currentSensor + 1) % NUMBER_OF_SENSORS;
  
  
 
}

Comments