Having trouble with my attachInterrupt not working


hoping can newbie out here. having problems attachinterrupt button. when connect digital pins #2 , #3 5v , run button ground clear out 0v low nothing happening on lcd. "regular" code keeps on running no interruption. more newbie status me me out.

thank in advance!!!


code: [select]
//read air pressure in air bags, 4 air pressure sensors on analog pins 0-3
//2 tank sensors connected analog pins 4,5
//air ride control unit attached digital pin 13-6
//2 push buttons connected digital pins 2,3 interrupt , clear display upper , lower tank
//2 push buttons connected digital pins 5,4 set ride heights
//uses moderndevice 20x4 lcd screen



const int psisensor1 = 0;    //set lf bag sensor input on analog port 0
const int psisensor2 = 1;    //set rf bag sensor input on analog port 1
const int psisensor3 = 2;    //set lr bag sensor input on analog port 2
const int psisensor4 = 3;    //set rr bag sensor input on analog port 3
const int tank1sensor = 4;   //set upper tank sensor input on analog port 4
const int tank2sensor = 5;   //set lower tank sensor input on analog port 5
int sensor1val = 0;          //set lf bag sensor 0 value
int sensor2val = 0;          //set rf bag sensor 0 value
int sensor3val = 0;          //set lr bag sensor 0 value
int sensor4val = 0;          //set rr bag sensor 0 value
int tank1val = 0;            //set upper tank sensor value 0
int tank2val = 0;            //set lower tank sensor value 0
int press1 = 0;              
int press2 = 0;
int press3 = 0;
int press4 = 0;
volatile int tank1pres = 0;    //set tank 1 pressure 0
volatile int tank2pres = 0;    //set tank 2 pressure 0
const int lfuppin = 13;        //lf bag fill solenoid digital pin 13
const int lfdownpin = 12;      //lf bag release solenoid digital pin 12
const int rfuppin = 11;        //rf bag fill solenoid digial pin 11
const int rfdownpin = 10;      //rf bag release solenoid digital pin 10
const int lruppin = 9;         //lr bag fill solenoid digital pin 9
const int lrdownpin = 8;       //lr bag release solenoid digital pin 8
const int rruppin = 7;         //rr bag fill solenoid digital pin 7
const int rrdownpin = 6;       //rr bag release solenoid digital pin 6
const int upbuttonpin = 5;     //push button put car @ highes level on digital pin 5
const int ridebuttonpin = 4;   //push button put car @ ride height on digital pin 4
int upbuttonstate = low;         // current state of output pin
int button1state;             // current reading input pin
int lastbutton1state = high;   // previous reading input pin
int ridebuttonstate = low;
int button2state;
int lastbutton2state = high;
long lastdebouncetime = 0;  
long debouncedelay = 50;  
boolean tank1_print, tank2_print;


void setup()

{
 serial.begin(9600);
 attachinterrupt(0, tank1, low);
 attachinterrupt(1, tank2, low);
 pinmode (lfuppin, output);
 pinmode (lfdownpin, output);
 pinmode (rfuppin, output);
 pinmode (rfdownpin, output);
 pinmode (lruppin, output);
 pinmode (lrdownpin, output);
 pinmode (rruppin, output);
 pinmode (rrdownpin, output);
 pinmode (upbuttonpin, input);
 pinmode (ridebuttonpin, input);  
 serial.print("?f");                //clear lcd per lcd117 command
 serial.print("?x03?y0rhodes caddy");
 serial.print("?x03?y11950 cadillac");  
 serial.print("?x00?y3custom built andy");
 delay (5000);
 serial.print("?f");                //clear lcd per lcd117 command
 serial.print("?x02?y0lf psi:");     // print @ column 4, row 1
 serial.print("?x12?y0rf psi:");     //print @ column 13, row 1
 serial.print("?x02?y2lr psi:");     //print @ column 4, row 3
 serial.print("?x12?y2rr psi:");     //print @ column 13, row 3


}
 
 void loop()
 {
   sensor1val = analogread(psisensor1);  //reads pressures in 4 bags
   press1 = (sensor1val*35.0877-9.4737);
   sensor2val = analogread(psisensor2);
   press2 = (sensor2val*35.0877-9.4737);
   sensor3val = analogread(psisensor3);
   press3 = (sensor3val*35.0877-9.4737);
   sensor4val = analogread(psisensor4);
   press4 = (sensor4val*35.0877-9.4737);
   serial.print("?x03?y1");
   serial.print(press1);
   serial.print("?x13?y1");
   serial.print(press2);
   serial.print("?x03?y3");
   serial.print(press3);
   serial.print("?x13?y3");
   serial.print(press4);
   delay(350);
   
   if (tank1_print)
   {
     serial.print("?x05?y0");
     serial.print("upper tank psi:");
     tank1val = analogread(tank1sensor);
     tank1pres =(tank1val*35.0877-9.4737);
     serial.print("?x08?y1");
     serial.print(tank1pres);
     tank1_print = false;
   }

   if (tank2_print)
   {
     serial.print("?x05?y2");
     serial.print("lower tank psi:");
     tank2val = analogread(tank2sensor);
     tank2pres =(tank2val*35.0877-9.4737);
     serial.print("?x08?y3");
     serial.print(tank2pres);
     tank2_print = false;
   }

   
   
   if (digitalread(upbuttonpin)== high)
   {
     if (press1 < 116);
     {
       delay(50);
       digitalwrite(lfuppin, high);
       if (press1 >115);
       {
         delay(50);
         digitalwrite(lfdownpin, high);
       }
     }
     if (press2 < 116);
     {
       delay(50);
       digitalwrite(rfuppin, high);
       if (press2 > 115);
       {
         delay(50);
         digitalwrite(rfdownpin, high);
       }
     }
     if (press3 < 116);
     {
       delay(50);
       digitalwrite (lruppin, high);
       if (press3 > 115);
       {
         delay(50);
         digitalwrite (lrdownpin, high);
       }
     }  
     if (press4 < 116);
     {
       delay(50);
       digitalwrite(rruppin, high);
       if (press4 > 115);
       {
         delay(50);
         digitalwrite(rrdownpin, high);
       }
     }
     return;
    }
   
    if (digitalread(ridebuttonpin) == high)
    {
      if (press1 < 80);
      {
        delay(50);
        digitalwrite (lfuppin, high);
        if (press1 > 80);
        {
          delay(50);
          digitalwrite (lfdownpin, high);
        }
      }
      if (press2 < 80);
      {
        delay(50);
        digitalwrite(rfuppin, high);
        if (press2 > 80);
       {
        delay(50);
        digitalwrite(rfdownpin, high);
       }
      }
      if (press3 < 80);
      {
        delay(50);
        digitalwrite(lruppin, high);
        if (press3 > 80);
        {
          delay(50);
          digitalwrite(lrdownpin, high);
        }
      }
      if (press4 < 80);
      {
        delay(50);
        digitalwrite(rruppin, high);
        if (press4 > 80);
        {
          delay(50);
          digitalwrite(rrdownpin, high);
        }
       }
   return;
  }
 
  int reading1 = digitalread(upbuttonpin);
  if (reading1 != lastbutton1state)
  {

    lastdebouncetime = millis();
  }

  if ((millis() - lastdebouncetime) > debouncedelay)
  {
    button1state = reading1;
  }

  digitalwrite(upbuttonpin, button1state);
  lastbutton1state = reading1;


  int reading2 = digitalread(ridebuttonpin);
  if (reading2 != lastbutton2state)
  {

    lastdebouncetime = millis();
  }

  if ((millis() - lastdebouncetime) > debouncedelay)
  {
    button2state = reading2;
  }
  digitalwrite(ridebuttonpin, button2state);
  lastbutton2state = reading2;
  }


 
void tank1()                          //interrupt button on digital pin 2 show tank 1 pressure
{
 tank1_print = true;
}

void tank2()                         //interrupt button on digital pin 3 show tank 2 pressure
{
 tank2_print = true;
}

quote
when connect digital pins #2 , #3 5v , run button ground clear out 0v low nothing happening on lcd


by "connecting pins 2 & 3 5v" mean way of external pull-up resistors? if not , wiring pins straight +5vdc , shorting ground switches, i'm sure cause power dip such chip reset , start again.

you need either use external pull-up resistors or using pinmode command turn on internal pull-ups pins 2 & 3.

lefty


Arduino Forum > Forum 2005-2010 (read only) > Software > Syntax & Programs > Having trouble with my attachInterrupt not working


arduino

Comments

Popular posts from this blog

CAN'T INSTALL MAMBELFISH 1.5 FROM DIRECTORY - Joomla! Forum - community, help and support

error: expected initializer before 'void'

CPU load monitoring using GPIO and leds - Raspberry Pi Forums