Timer only working for a second


i working on automated pool controller , having problem whenever timer triggered turns on pump second , turns if off. have guidance have done wrong.

code: [select]
#include <time.h>
#include <timealarms.h>
int led = 13;
const int amsw = 2;
int pump = 4;
int ssrctrl = 11;
const int remote = 5;
const int remote2 = 6;
int pumpstate = low;
int buttonstate = 0;
int remotestate = 0;
int remote2state = 0;
int amstate = 0;
int fan = 9;
int estop = 13;
int pumpdet = 10;
int pumpdetstate = 0;
int estopstate = low;
int lastremotestate = low;
long lastdebouncetime = 0;                                                                         
long debouncedelay = 50;
int ssrstate = 0;

void setup() {
  serial.begin(9600);
  settime(11,59,50,6,17,14);
  pinmode(amsw, input);
  pinmode(remote, input);
  pinmode(remote2, input);
  pinmode(estop, input);
  pinmode(led, output);     
  pinmode(fan, output);
  pinmode(pump, output);
  pinmode(pumpdet, input);
  pinmode(ssrctrl, output);
  alarm.alarmrepeat(12,0,0,test);
  alarm.alarmrepeat(14,0,0,pumpcycleoff); 
  digitalwrite(ssrctrl, low);
 
 

}

void loop() {
  buttonstate = digitalread(amsw);
  remotestate = digitalread(remote);
  int reading = digitalread(remote);
  remote2state = digitalread(remote2);
  pumpdetstate = digitalread(pumpdet);
 
  if (buttonstate == high) {
    analogwrite(fan, 100);
    if (remotestate == high) {
      digitalwrite(pump, high);
      digitalwrite(ssrctrl, low);
     }
   
       
   
   
     if (remote2state == high) {
       digitalwrite(pump, low);
       digitalwrite(ssrctrl, high);
       }
   
    if (pumpdetstate == high) {
  analogwrite(fan, 255); }

    }
   
    else {digitalwrite(pump, low);
    digitalwrite(ssrctrl, high);
       
        analogwrite(fan, 0);
        }
       
        digitalclockdisplay();
  alarm.delay(1000); // wait 1 second between clock display
   
           
}
  //these timer controls, leave them set for
  //specific jobs. 
void test(){
   if(buttonstate == low){
      digitalwrite(pump, high);
      analogwrite(fan, 255);
         digitalwrite(ssrctrl, low);
         
         
         
       }}
       
void pumpcycleoff(){
   digitalwrite(pump, low);
   analogwrite(fan, 90);
     digitalwrite(ssrctrl, high);
     delay(5000);
     analogwrite(fan, 0);}
     
   
     void digitalclockdisplay()
{
  // digital clock display of time
  serial.print(hour());
  printdigits(minute());
  printdigits(second());
  serial.println();
}

void printdigits(int digits)
{
  serial.print(":");
  if(digits < 10)
    serial.print('0');
  serial.print(digits);
}

code: [select]
void test(){
   if(buttonstate == low){
      digitalwrite(pump, high);
      analogwrite(fan, 255);
         digitalwrite(ssrctrl, low);
         
         
         
       }}

rubbish. conceivable reason putting 2 curly braces on 1 line save vertical space. after 3 blank lines stupid.

isyourspacebarbroken? if insist on putting { on same line statement, @ least put space in front of it, can seen.


Arduino Forum > Using Arduino > Programming Questions > Timer only working for a second


arduino

Comments

Popular posts from this blog

opencv3, tbb and rasp pi 2 - Raspberry Pi Forums

small ethernet problem - Raspberry Pi Forums

Multithumb configuration params not working? - Joomla! Forum - community, help and support