How to Connect an Output Value to an Output PIN

Hi there,

I have made a person counter,

Here is the code:



#define trigPin1 6
#define echoPin1 7

#define trigPin2 8
#define echoPin2 12

int hit1 = 0, hit2 = 0;
int numEntries = 0, numExits = 0;

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(11,10,9,2,3,4,5);

void setup() {
Serial.begin(9600);
// set up the LCD’s number of columns and rows:
lcd.begin(16, 2);
//Print a message to the LCD.
lcd.print(“Persons:”);

//sensors
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);

}

void loop() {
// set the cursor to column 0, line 1
lcd.setCursor(0, 1);

//check sensor1
int duration, distance;
digitalWrite(trigPin1, LOW);
delayMicroseconds (2);
digitalWrite (trigPin1, HIGH);
delayMicroseconds (5);
digitalWrite (trigPin1, LOW);
duration = pulseIn (echoPin1, HIGH);
distance = (duration/2) / 29.1;

if(distance < 50){
Serial.println(“Entering…”);
hit1 = 1;
}

//check sensor2
int duration2, distance2;
digitalWrite(trigPin2, LOW);
delayMicroseconds (2);
digitalWrite (trigPin2, HIGH);
delayMicroseconds (5);
digitalWrite (trigPin2, LOW);

duration2 = pulseIn (echoPin2, HIGH);
distance2 = (duration2 / 2) / 29.1;

if(distance2 < 50){
Serial.println(“Exitting…”);
hit2 = 1;
}

//entry was triggered, scan exit until exit is hit
while(hit1 == 1 && hit2 == 0){
//check sensor2
int dur, dist;
digitalWrite(trigPin2, LOW);
delayMicroseconds (2);
digitalWrite (trigPin2, HIGH);
delayMicroseconds (5);
digitalWrite (trigPin2, LOW);

dur = pulseIn (echoPin2, HIGH);
dist = (dur / 2) / 29.1;

if(dist < 50){
//reset the two values
hit1 = 0;
hit2 = 0;
numEntries++;
Serial.println("\tENTERED");
break;
}
}

//exit was triggered, scan entry until entry is hit
while(hit1 == 0 && hit2 == 1){
//check sensor2
int dur, dist;
digitalWrite(trigPin1, LOW);
delayMicroseconds (2);
digitalWrite (trigPin1, HIGH);
delayMicroseconds (5);
digitalWrite (trigPin1, LOW);

dur = pulseIn (echoPin1, HIGH);
dist = (dur / 2) / 29.1;

if(dist < 50){
//reset the two values
hit1 = 0;
hit2 = 0;
numExits++;
Serial.println("\tEXITED");
delay(100);
break;
}
}

/* DEBUGGING
Serial.print(distance);
Serial.print("-----");
Serial.print(distance2);
Serial.println();
*/

// print the number of seconds since reset:
lcd.print(numEntries - numExits);

delay(100);
}



I have one pin left on my Arduino Uno - Pin 13. I want to edit that code to make Pin 13 Output LOW when value of the LCD count “persons” is 0 and Pin 13 Output be HIGH when the result is greater than 0.

Can anyone help me?

Thanks,

Ardalan G.

Ardalan:
I have one pin left on my Arduino Uno - Pin 13. I want to edit that code to make Pin 13 Output LOW when value of the LCD count "persons" is 0 and Pin 13 Output be HIGH when the result is greater than 0.

Can anyone help me?

try this:
in setup(), add pinMode(13,OUTPUT);

in loop , add if(numEntries - numExits > 0) digitalWrite(13,HIGH); else digitalWrite(13,LOW);

Yup. That worked. Thank you