problem mit auswertung von durchflusssensoren

Hallo zusammen,

ich benutze einen Arduino UNO (habe bereits im internet herausgefunden das er nur interrupts für pin 2+3 zulässt)

ich habe dennoch das Problem, dass er mir nur einen sensor auswertet. ich bin langsam am ende mit meinem latein, da ich ein rechter Anfänger beim Programmieren bin.

Evtl kann mir jemand helfen mit meinem Programm oder mir einen schucker in die richtige Richtung geben.

hier der Code

volatile int flow_frequency1;
volatile int flow_frequency2;
volatile int flow_frequency3;
unsigned int l_min1;
unsigned int l_min2;
unsigned int l_min3;
unsigned char flowmeter1 = 2;
unsigned char flowmeter2 = 3;
unsigned char flowmeter3 = 4;
unsigned long currentTime;
unsigned long cloopTime;

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);


void flow  ()
{
  flow_frequency1++;
    }
void flow2  ()
{
  flow_frequency2++;
    }

   


void setup() 
{
  pinMode (flowmeter1, INPUT);
  pinMode (flowmeter2, INPUT);
  pinMode (flowmeter3, INPUT);
  Serial.begin (9600);
  attachInterrupt (digitalPinToInterrupt (2), flow, CHANGE); 
  attachInterrupt (digitalPinToInterrupt (3), flow2, CHANGE); 
 
 

  sei();
  currentTime = millis();
  cloopTime = currentTime;

  lcd.init();
  lcd.backlight();


}



void loop() 
{
  currentTime = millis();
  if (currentTime - cloopTime >= 500)
  {
    cloopTime = currentTime;
    l_min1 = (flow_frequency1  / 7.5 );
    l_min2 = (flow_frequency2  / 7.5 );
    l_min3 = (flow_frequency3  / 7.5 );
    flow_frequency1 = 0;
    flow_frequency2 = 0;
    flow_frequency3 = 0;

    Serial.print (l_min1, DEC);
    Serial.print (" L/min");
    Serial.print (l_min2, DEC);
    Serial.print (" L/min");
    Serial.print (l_min3, DEC);
    Serial.print (" L/min");

    lcd.setCursor (0,0);
    lcd.print ("     Jacob GmbH ");
    lcd.setCursor (0,1);
    lcd.print (" Temp 1: "); 
    lcd.print (l_min1);
    lcd.print ("   L/min");
    lcd.setCursor (0,2);
    lcd.print (" Temp 2: ");
    lcd.print (l_min2);
    lcd.print ("   L/min");
    lcd.setCursor (0,3);
    lcd.print (" Temp 3: ");
    lcd.print (l_min3);
    lcd.print ("   L/min");
    delay (5000);
    lcd.clear ();
  }
  
  }

kann mir jemand sagen wie ich die 2 Sensoren richtig ausgelesen bekomme und wie ich den 3. einbetten kann?

vielen dank schonmal im vorraus

(habe bereits im internet herausgefunden das er nur interrupts für pin 2+3 zulässt)

Da hast du dann das falsche gefunden.

Suche nach "Pin Change Interrupt" oder nach "PCINT"

Dann machst du da doch schon eine schöne Zeitabfrage mit millies(), aber dann, kommt da ein delay().
Das geht schöner!

Tipp:
Suche nach "AVR ATOMIC RESTORESTATE"

PS:
Welchen Durchflusssensor nutzt du?

ich benutze den:

Water Flow Sensor
model: YF-S201

Vielen dank für den tip mit dem PinChange ich muss mich da mal drüber schlau machen.