Here I share a fragment very useful code when Arduino receive a frame through the serial port, for example to perform an access control or general purpose. ![]()
int bandM=LOW; //flag
int ctdiD =0;
int ctduD =0;
String c;
String diD;
String duD;
void setup() {
 Serial.begin(9600);
 pinMode(2, INPUT); //sensor infrared input
 pinMode(3, INPUT); //sensor infrared input
}
void cont(int cpi, int cpu )//cpi=total persons, cpu=counter persons update
{
 do
  {
  int sVM = digitalRead(2);
  int sVA = digitalRead(3);
  if (sVM==LOW) {
   bandM=HIGH;
  }
  if (sVA==LOW && bandM==HIGH) {
   cpu++;bandM=LOW;Serial.println(cpu);
  }
  delay(100);
 }while(cpu<cpi);
}
void loop() {
if (Serial.available() > 0){
    c = Serial.readString();
    int cLgh = c.length();
    Serial.println(cLgh);
    int iD = c.indexOf('i');
    Serial.println(iD);
    int uD = c.indexOf('u');
    Serial.println(uD);
    diD = c.substring(iD+1,uD);
    duD = c.substring(uD+1,cLgh);
    ctdiD = diD.toInt();
    ctduD = duD.toInt();
    Serial.println(ctdiD);
    Serial.println(ctduD);
    delay(600);
    cont(ctdiD, ctduD);
 }
}


