Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Loop Logic
- * When an object is closer tha 10cm led 1 is on, 7cm led 2 and 5 cm led 3
- * When the object goes outside these ranges they will turn off after a 1 second delay
- */
- #include <HCSR04.h>
- const int led1 = 2;
- const int led2 = 3;
- const int led3 = 4;
- HCSR04 hc(5,6); //(trig pin , echo pin)
- unsigned long ctus = 0;
- unsigned long readDelay = 10;
- unsigned long ctLed1 = 0;
- unsigned long ctLed2 = 0;
- unsigned long ctLed3 = 0;
- unsigned long ledDelay = 2000;
- unsigned long ctPrint = 0;
- unsigned long spDelay = 1000;
- int Close = 100;
- int Mid = 150;
- int Far = 200;
- int distance = 0;
- void setup(){
- Serial.begin(9600);
- pinMode(led1, OUTPUT);
- pinMode(led2, OUTPUT);
- pinMode(led3, OUTPUT);
- digitalWrite(led1, LOW);
- digitalWrite(led2, LOW);
- digitalWrite(led3, LOW);
- }
- void readDistance(){
- distance = hc.dist();
- distance = distance*10;
- }
- void loop(){
- int led1State = digitalRead(led1);
- int led2State = digitalRead(led2);
- int led3State = digitalRead(led3);
- if((millis() - ctus) > readDelay){
- readDistance();
- ctus = millis();
- }
- if((millis() - ctPrint) > spDelay){
- Serial.print(distance);Serial.println(" mm");
- ctPrint = millis();
- }
- if(distance < Far){
- led1State = HIGH;
- }else if(distance >= Far){
- if((millis() - ctLed1) > ledDelay){
- led1State = LOW;
- ctLed1 = millis();
- }
- }
- if(distance < Mid){
- led2State = HIGH;
- }else if(distance >= Mid){
- if((millis() - ctLed2) > ledDelay){
- led2State = LOW;
- ctLed2 = millis();
- }
- }
- if(distance < Close){
- led3State = HIGH;
- }else if(distance >= Close){
- if((millis() - ctLed3) > ledDelay){
- led3State = LOW;
- ctLed3 = millis();
- }
- }
- digitalWrite(led1, led1State);
- digitalWrite(led2, led2State);
- digitalWrite(led3, led3State);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement