Hello everyone,
i have a problem with vs1838b sensor used as breakbeam.
Basically, instead of detecting the broken beam, it detects when it is opened but for a fraction of a second. I wanted to ask you how to solve without changing the receiver. This is a video of the operation: Video
These are the two variants of code with the same problem:
#include <IRremote.h>
#define PIN_IR 3
#define PIN_DETECT 6 //vs1838b sense pin
#define PIN_STATUS 13 //led interno arduino
IRsend irsend;
void setup ()
{
Serial.begin(9600);
pinMode (PIN_DETECT, INPUT);
pinMode (PIN_STATUS, OUTPUT);
irsend.enableIROut (38);
irsend.mark (0);
}
void loop () {
digitalWrite (PIN_STATUS, !digitalRead (PIN_DETECT));
Serial.println((int)!digitalRead(PIN_DETECT));
}
#include <IRremote.h>
#define PULSE_TIME 1000
#define PIN_STATUS 13 //led interno arduino
int RECV_PIN = 6; //vs1838b sense pin
IRsend irsend;
unsigned long time;
boolean send = true;
void setup()
{
Serial.begin(9600);
pinMode(RECV_PIN, INPUT);
pinMode (PIN_STATUS, OUTPUT);
irsend.enableIROut(38);
time = 0;
}
void loop()
{
if(millis() - time >= (PULSE_TIME/1000))
{
if(send)
{
irsend.mark(PULSE_TIME);
}
else
{
irsend.space(PULSE_TIME);
}
time = millis();
send = !send;
}
Serial.println((int)digitalRead(RECV_PIN));
digitalWrite (PIN_STATUS, !digitalRead (RECV_PIN));
}
Thanks a lot to anyone who can help me