Advertisement
DrRandom

Expander

May 6th, 2020
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. int InterruptPIN = 17;
  2. boolean keyChanged = false;
  3. void InterruptOnIn(){keyChanged = true;}
  4.  
  5. PCF8574 ExtOuts(0x20);
  6. PCF8574 ExtIns(0x21);
  7.  
  8. static const inline void Setup_Expanders(){
  9.     for(int i=0;i<8;i++) {ExtOuts.pinMode(i, OUTPUT);}
  10.     ExtOuts.begin();
  11.  
  12.     pinMode(InterruptPIN, INPUT_PULLUP);
  13.     attachInterrupt(digitalPinToInterrupt(InterruptPIN), InterruptOnIn, FALLING);
  14.  
  15.     for(int i=0;i<8;i++) {ExtIns.pinMode(i, INPUT);}
  16.     ExtIns.begin();
  17.  
  18.     for(int i=0;i<8;i++) {ExtOuts.digitalWrite(i, HIGH);delay(100);}
  19.     for(int i=8;i>=0;i--) {ExtOuts.digitalWrite(i, LOW);delay(100);}
  20. }
  21.  
  22.  
  23. static const inline void Expander_Loop(){
  24.   if (keyChanged){
  25.     PCF8574::DigitalInput val = ExtIns.digitalReadAll();
  26.     if (val.p0==HIGH) Serial.println("KEY0 PRESSED");
  27.     if (val.p1==HIGH) Serial.println("KEY1 PRESSED");
  28.     if (val.p2==HIGH) Serial.println("KEY2 PRESSED");
  29.     if (val.p3==HIGH) Serial.println("KEY3 PRESSED");
  30.     if (val.p4==HIGH) Serial.println("KEY4 PRESSED");
  31.     if (val.p5==HIGH) Serial.println("KEY5 PRESSED");
  32.     if (val.p6==HIGH) Serial.println("KEY6 PRESSED");
  33.     if (val.p7==HIGH) Serial.println("KEY7 PRESSED");
  34.     keyChanged = false;
  35.   }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement