#include <Adafruit_NeoPixel.h>
#define PIN 6 // Neopixelek csatlakoztatására használt Arduino láb
#define NUMPIXELS 16 // Neopixel LED-ek száma
#define SW_UP 2 // Nyomógomb csatlakoztatására használt Arduino láb
#define SW_DO 3 // Nyomógomb csatlakoztatására használt Arduino láb
#define PIR_UP 4 // Nyomógomb csatlakoztatására használt Arduino láb
#define PIR_DO 5 // Nyomógomb csatlakoztatására használt Arduino láb
#define LDR_D 7
//int LDR_A_Pin = A0; // select the input pin for the potentiometer
//int LDR_A_Value = 0;// variable to store the value coming from the sensor
int objectsInArea = 0;
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin(); // Neopixel objektum inicializálása
pixels.show();
pinMode(SW_UP, INPUT);
pinMode(SW_DO, INPUT);
pinMode(PIR_UP, INPUT);
pinMode(PIR_DO, INPUT);
pinMode(LDR_D, INPUT);
Serial.begin(115200);
}
void loop() {
bool state1A = digitalRead(SW_UP);
bool state1B = digitalRead(PIR_UP);
bool state2A = digitalRead(SW_DO);
bool state2B = digitalRead(PIR_DO);
// Detect object entering the area from A to B
if (state1A == HIGH && state1B == HIGH) {
while (digitalRead(SW_UP) == HIGH || digitalRead(PIR_UP) == HIGH); // Wait until object passes A
objectsInArea++;
Serial.print("Objects in area: ");
Serial.println(objectsInArea);
}
// Detect object entering the area from B to A
if (state2A == HIGH && state2B == HIGH) {
while (digitalRead(SW_DO) == HIGH || digitalRead(PIR_DO) == HIGH); // Wait until object passes B
objectsInArea++;
Serial.print("Objects in area: ");
Serial.println(objectsInArea);
}
// Detect object leaving the area from B to A
if (state2B == HIGH && state2A == HIGH) {
while (digitalRead(PIR_DO) == HIGH || digitalRead(SW_DO) == HIGH); // Wait until object leaves B
objectsInArea--;
Serial.print("Objects in area: ");
Serial.println(objectsInArea);
}
// Detect object leaving the area from A to B
if (state1B == HIGH && state1A == HIGH) {
while (digitalRead(PIR_UP) == HIGH || digitalRead(SW_UP) == HIGH); // Wait until object leaves A
objectsInArea--;
Serial.print("Objects in area: ");
Serial.println(objectsInArea);
}
// Small delay to avoid bouncing issues
delay(100);
}
/* if (digitalRead(LDR_D) == LOW) {
pixels.setPixelColor(0, 127, 0, 127);
pixels.setPixelColor(15, 127, 0, 127);
pixels.show();
}
else (digitalRead(LDR_D) == HIGH); {
pixels.clear();
pixels.show();
}
}
// else (digitalRead(SW_UP) == HIGH) { // Ellenőrzés, hogy a nyomógombot megnyomták-e
// Fokozatos elhalványulás minden egyes LED-en
// for(int i=0; i<NUMPIXELS; i++) {
// for(int brightness = 255; brightness >= 0; brightness--) {
// pixels.setPixelColor(i, pixels.Color(brightness, brightness, brightness));
// pixels.show();
// }
// }
// }
// if (digitalRead(SW_DO) == HIGH) {
// Felvilágosodás minden egyes LED-en
// for(int i=0; i<NUMPIXELS; i++) { //for(int i=NUMPIXELS-1; i>=0; i--) {
// for(int brightness = 0; brightness <= 255; brightness++) {
// pixels.setPixelColor(i, pixels.Color(brightness, brightness, brightness));
// pixels.show();
// }
// }
//else (digitalRead(LDR_D) == LOW) {
//pixels.setPixelColor(0, 127, 0, 127);
//pixels.setPixelColor(15, 127, 0, 127);
//}
}*/