Show Posts
Pages: 1 ... 13 14 [15] 16 17 ... 20
211  Using Arduino / Project Guidance / Re: heating control on: June 21, 2012, 01:39:38 pm
ok i have this now working in a manner of speaking the delay seems to start as soon as its powered up instead of just when the button goes low ?

Code:

else {                                          // switching off
    digitalWrite(solenoid,       LOW);
    digitalWrite(ignition_fan_2, LOW);
    DoneInitialization=false;                    // resetting the count
    delay(500);
    digitalWrite(relay230_24,    LOW);
     unsigned long currentMillis = millis();
  if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;   
   
if (fanState == HIGH)
      fanState = LOW;
   
    digitalWrite(fan, fanState);
  }
    }
this at the top of the code
int fanState = LOW;           
long previousMillis = 0;       
long interval = 20000;
212  Using Arduino / Project Guidance / Re: heating control on: June 19, 2012, 02:31:58 pm
Quote

Use a stopwatch or timer instead of delay, delay will freeze the thread until the delay is up.

ok
does anybody have any examples for this that would be helpful to my project?
213  Using Arduino / Project Guidance / Re: heating control on: June 18, 2012, 02:59:22 pm
still having issues ive given up looking at the blink without delay as the more i look at it the more confused im getting so had a look generally on the internet and come across this idea but still doesnt work i seemed to get it to not have a delay or have an endless delay
doing my head in now lol

Code:

 else {                                          // switching off
    digitalWrite(solenoid,       LOW);
    digitalWrite(ignition_fan_2, LOW);
    DoneInitialization=false;                    // resetting the count
    delay(1000);
    digitalWrite(relay230_24,    LOW);
          static unsigned long starttime;
          static int fanstate = LOW;
    if (fanstate == LOW && millis() - starttime > 10000) {
        fanstate = HIGH;
        digitalWrite(fan,           LOW);
        starttime = millis();
    }
  }
214  Using Arduino / Project Guidance / will this work on a attiny45 on: June 16, 2012, 10:54:44 am
hi there will this work on a attiny45 be for i purchase one?

Code:

// digital
const int led2    = 0;
const int led3    = 1 ;
// analog
int knockinput    = 3 ;
int led1    =       2 ;


//       attiny45 / attiny85
//
//             +-\/-+
//      Reset 1|    |8 Vcc
//      (A 3) 2|    |7 (A 1)
//      (A 2) 3|    |6 (D 1) PWM1
//        GND 4|    |5 (D 0) PWM0
//             +----+

void setup() {
  pinMode(led2,   OUTPUT);   
  pinMode(led3,   OUTPUT);

}

void loop() {
    int val = analogRead(knockinput);
    if (val >256) {
      analogWrite(led1,   255);
    }
    else {
      analogWrite(led1,   0);
    }
    //------------------------------
    if (val >512) {
      digitalWrite(led2,   HIGH);
    }
    else {
      digitalWrite(led2,   LOW);
    }
    //-------------------------------
    if (val >768) {
      digitalWrite(led3,   HIGH);
    }
    else {
      digitalWrite(led3,   LOW);
    }
}
215  Using Arduino / Project Guidance / Re: heating control on: June 08, 2012, 04:30:23 pm
i have looked and looked and i dont understand it hence why i have posted this to seek help.
and i have written the whole of this code apart from the delay without delay which is what i dont understand. hence why i am asking.
216  Using Arduino / Project Guidance / Re: heating control on: June 08, 2012, 04:05:19 pm
i have no idea all i have dun is looked at blink with out delay and tried splicing it in to my code what does not work.
dont no how else to make this work?
217  Using Arduino / Project Guidance / Re: heating control on: June 08, 2012, 03:29:14 pm
hi there

but i wont get the delay if i remove the first and third line will I?

i can change the name of fandelay to somthing else dont no what?
218  Using Arduino / Project Guidance / Re: heating control on: June 08, 2012, 02:38:20 pm
???
219  Using Arduino / Project Guidance / Re: heating control on: June 01, 2012, 04:42:07 pm
Quote
I was referring to that specific part of the code, explaining how redundant it is.
 
o sorry how as can i write this?

220  Using Arduino / Project Guidance / Re: heating control on: June 01, 2012, 04:16:39 pm
Quote
What exactly are you trying to accomplish with this part?
im trying just to do the delay without delay at the moment

Quote
 
Also, the "check if it's been long enough" code will only run if your button is HIGH. Is that your intention? In other words, fan won't go low unless it's been long enough AND heatbutton is HIGH.

my intention is to delay the fan when turning off so when the heat button goes from high to low it will delay.

but i do want to include as i said earlier that the time delay is dependent on the time the heat button has been high upto a set time.
221  Using Arduino / Project Guidance / Re: heating control on: June 01, 2012, 03:35:09 pm
ok i have had a bit off a play with this (again lol)  this seem to work but did miss the delay a couple of times but this is just on a test rig at mo so mite be ok then installed what do you think?

this is just delay with out delay at mo

Code:


const int heatbutton     = 2 ;
const int ignition_fan_2 = 10;
const int saleswitch     = 4 ;
const int solenoid       = 12;
const int photo_pressure = 3 ;
const int lockoutled     = 8 ;
const int heatbutton_feed= 5 ;
const int fan            = 9 ;
const int relay230_24    = 11;
const int ionisation_in  = 7 ;
int ionisation           = 5 ;   
bool DoneInitialization = false;       
int fandelay = LOW;
long previousMillis = 0;
long interval = 30000;
void setup()
{
  pinMode(heatbutton,       INPUT );   
  pinMode(ignition_fan_2,   OUTPUT);
  pinMode(saleswitch,       INPUT );
  pinMode(solenoid,         OUTPUT);
  pinMode(photo_pressure,   INPUT );
  pinMode(lockoutled,       OUTPUT);
  pinMode(heatbutton_feed,  OUTPUT);
  pinMode(fan,              OUTPUT);
  pinMode(relay230_24,      OUTPUT);
  pinMode(ionisation_in,    INPUT );
  //-------------------------------------------
  digitalWrite(heatbutton_feed, HIGH);
}

void loop() {
  int val = analogRead(ionisation);
  //--------------------------------------------------------------------

  if (digitalRead(heatbutton)==        HIGH) {
    delay(10);    //debounce
    if (!DoneInitialization)
    {                                                 
      if (digitalRead(ionisation_in)==   HIGH) {           // if ionisation swith HIGH
        if (val >900) {                                       
          digitalWrite(lockoutled,            HIGH);
         delay(10);
          digitalWrite(heatbutton_feed,       LOW);
          return;
        }
      }   
      else {
        if (digitalRead(photo_pressure)==     HIGH) {         // if photo swith HIGH
        delay(10);
          digitalWrite(lockoutled,            HIGH);
         delay(10);         
          digitalWrite(heatbutton_feed,       LOW);
         return;
       }
      }
      digitalWrite(fan,                    HIGH);
      delay(3000);       
     
    //---------------------------------------------------------------------
    if (digitalRead(saleswitch)==HIGH) {           // sale switch if HIGH
    digitalWrite(relay230_24,    HIGH);        // 230V out put to ignition
    digitalWrite(ignition_fan_2, HIGH);
    delay(1000);
      digitalWrite(solenoid,     HIGH);
    }
    DoneInitialization=true;                           // Initialization is done, don't run it again until button has been low
    }
    //---------------------------------------------------------------------
    if (digitalRead(saleswitch)==   LOW) {          // sale switch if LOW
      digitalWrite(lockoutled,      HIGH);
      digitalWrite(solenoid,        LOW);
      digitalWrite(fan,             LOW);
       delay(10);
      digitalWrite(heatbutton_feed, LOW);
    }
    //---------------------------------------------------------------------
    delay(3000);
    if (digitalRead(ionisation_in)== HIGH) {
      if (val <900)                         {            // ionisation if LOW
        digitalWrite(lockoutled,      HIGH);
        delay(10);
        digitalWrite(heatbutton_feed, LOW);
      }
    }

    if (digitalRead(photo_pressure)==LOW)  {          // photo if LOW
      delay(10);
      digitalWrite(lockoutled,       HIGH);
      delay(10);
      digitalWrite(heatbutton_feed,  LOW);
    }
    //---------------------------------------------------------------------
    else {
      digitalWrite(ignition_fan_2, LOW);
    }
  }
    //---------------------------------------------------------------------
    else {                                          // switching off
    digitalWrite(solenoid,       LOW);
    digitalWrite(ignition_fan_2, LOW);
    DoneInitialization=false;                    // resetting the count
    delay(500);
    digitalWrite(relay230_24,    LOW);
          unsigned long currentMillis = millis();
   if(currentMillis - previousMillis > interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;
  if (fandelay == LOW)
    digitalWrite(fan, LOW);
      digitalWrite(fan, fandelay);
  }
    }
  //---------------------------------------------------------------------
}

222  Using Arduino / Project Guidance / Re: heating control on: June 01, 2012, 02:05:16 pm
hi thanks for your reply
i have looked at blink without delay and cannot get to grips with it
223  Using Arduino / Project Guidance / heating control on: June 01, 2012, 12:45:27 pm
hi there
on this heating project i'm doing when the control is turned off the fan will run for 30 secs  but one problem i have is it will not start back up until the 30 secs are up what is not good?
and what i would like to do aswel i would like to have the delay variable so if the heater has been running for 20secs the over run with be 20 secs but max over run to be 30secs?

i had come across this for the variable over run but could not intergrate this into my code and make it still work and it does not have a max over run to
Quote

const int switchPin = 2;
const int led = 13;

long startTime;
long duration;

void setup()
{
  pinMode(switchPin,        INPUT);
  digitalWrite(switchPin,   HIGH);
  pinMode(led,            OUTPUT);
}

void loop()
{
  if(digitalRead(switchPin) ==     HIGH)
  {
    digitalWrite(led,              HIGH);
  }

  if(digitalRead(switchPin) ==     HIGH)
  {
    startTime = millis();
    while(digitalRead(switchPin) ==HIGH)
      ;
    long duration = millis() - startTime;
    delay(duration);
    digitalWrite(led,             LOW);
  }
}



this is my code
where the yellow glow saying  //   THIS IS WHERE MY DELAY IS  this is where my delay is at mo

Quote

const int heatbutton     = 2 ;
const int ignition_fan_2 = 10;
const int saleswitch     = 4 ;
const int solenoid       = 12;
const int photo_pressure = 3 ;
const int lockoutled     = 8 ;
const int heatbutton_feed= 5 ;
const int fan            = 9 ;
const int relay230_24    = 11;
const int ionisation_in  = 7 ;
int ionisation           = 5 ;   
bool DoneInitialization = false;       

void setup()
{
  pinMode(heatbutton,       INPUT );   
  pinMode(ignition_fan_2,   OUTPUT);
  pinMode(saleswitch,       INPUT );
  pinMode(solenoid,         OUTPUT);
  pinMode(photo_pressure,   INPUT );
  pinMode(lockoutled,       OUTPUT);
  pinMode(heatbutton_feed,  OUTPUT);
  pinMode(fan,              OUTPUT);
  pinMode(relay230_24,      OUTPUT);
  pinMode(ionisation_in,    INPUT );
  //-------------------------------------------
  digitalWrite(heatbutton_feed, HIGH);
}

void loop() {
  int val = analogRead(ionisation);
  //--------------------------------------------------------------------

  if (digitalRead(heatbutton)==        HIGH) {
    delay(10);    //debounce
    if (!DoneInitialization)
    {                                                 
      if (digitalRead(ionisation_in)==   HIGH) {           // if ionisation swith HIGH
        if (val >900) {                                       
          digitalWrite(lockoutled,            HIGH);
          delay(10);
          digitalWrite(heatbutton_feed,       LOW);
          return;
        }
      }   
      else {
        if (digitalRead(photo_pressure)==     HIGH) {         // if photo swith HIGH
          delay(10);
          digitalWrite(lockoutled,            HIGH);
          delay(10);         
          digitalWrite(heatbutton_feed,       LOW);
          return;
        }
      }
      digitalWrite(fan,                    HIGH);
      delay(3000);       

      //---------------------------------------------------------------------
      if (digitalRead(saleswitch)==HIGH) {           // sale switch if HIGH
        digitalWrite(relay230_24,    HIGH);        // 230V out put to ignition
        digitalWrite(ignition_fan_2, HIGH);
        delay(1000);
        digitalWrite(solenoid,     HIGH);
      }
      DoneInitialization=true;                           // Initialization is done, don't run it again until button has been low
    }
    //---------------------------------------------------------------------
    if (digitalRead(saleswitch)==   LOW) {          // sale switch if LOW
      digitalWrite(lockoutled,      HIGH);
      digitalWrite(solenoid,        LOW);
      digitalWrite(fan,             LOW);
      delay(10);
      digitalWrite(heatbutton_feed, LOW);
    }
    //---------------------------------------------------------------------
    delay(3000);
    if (digitalRead(ionisation_in)== HIGH) {
      if (val <900)                         {            // ionisation if LOW
        digitalWrite(lockoutled,      HIGH);
        delay(10);
        digitalWrite(heatbutton_feed, LOW);
      }
    }

    if (digitalRead(photo_pressure)==LOW)  {          // photo if LOW
      delay(10);
      digitalWrite(lockoutled,       HIGH);
      delay(10);
      digitalWrite(heatbutton_feed,  LOW);
    }
    //---------------------------------------------------------------------
    else {
      digitalWrite(ignition_fan_2, LOW);
    }
  }
  //---------------------------------------------------------------------
  else {                                          // switching off
    digitalWrite(solenoid,       LOW);
    digitalWrite(ignition_fan_2, LOW);
    DoneInitialization=false;                    // resetting the count
    delay(500);
    digitalWrite(relay230_24,    LOW);
    delay(30000);                            //   THIS IS WHERE MY DELAY IS
    digitalWrite(fan,            LOW);       //   THIS IS WHERE MY DELAY IS
  }
  //---------------------------------------------------------------------

}





224  Using Arduino / Project Guidance / Re: timing within a loop on: May 20, 2012, 08:07:15 am
thanks wildbill for that. that side of it is working perfectly now.

with this next issue ive got it wrapped round my head now and im not understanding it?
225  Using Arduino / Project Guidance / Re: timing within a loop on: May 14, 2012, 10:14:08 am
Quote



Looks like.

Having said that

Code:

if(count == 1) count =0;       // resetting the count

Why check count? You can unconditionally set it zero (either it was already zero, or it's one and you want it to be zero)

Also, given that count can only take two values, shouldn't it be a boolean?


honestly i havent got a clue show me what you mean


Quote

I don't understand, was there a question?

yes sorry finding it hard to explain basically when the switch is turned off theres to be a delay before the LED goes off but the delay depends on how long the input was high for so if the button was on for 10s the light will stop on after the button goes low for 10s
but the delay rime can only go upto 30s
i hope ive worded that a bit better

thanks all for your help
Pages: 1 ... 13 14 [15] 16 17 ... 20