information and advice possibly a helping hand

first i must say thank you for all who will view this and thank you for all that will help me with this!! first i must say im a very very noob at arduino but i am learning from this thread. i have electrical experience so thats not an issue. my project is a bga reballer using arduino. basically i would like to have a screen telling me everything with push buttons. for on off start the heating process showing temperature changes leds connecting to the ssr show them turning on off. led showing power on led showing temperature has reach set point. i know im in to a heck of a code. but im willing to learn. any help would be appreciated. i have basically figured out the simple parts of arduino (like naming ports comments and so on. but figured that not to asking for help is a stupid way to learn exspecially if i dont want to spend alot of money fring things lol

What have you done so far on your project?
What are you having trouble with?
Have you gone through all the examples that come with the IDE?
Do you realize that some times it is better to have an indicator monitoring the actual device rather than a software controlled one?

at this point i have just gotten done testing the ssr with the blink code latter tonight i am going to mount the four elements into the case of my project. forgive me if i posted this prematurely. i always believe that asking while in the point of a build is better then one already built so as to not have to do a tare down. i was figuring i would like to monitor it via my pc and the lcd that came with the arduino kit. i must say thank you larry d for answering you help a lot of people on here so i must bow my head to you

What is a "bga reballer" Sounds painful :slight_smile:

This simple demo showing a PC controlling and Arduino may be of interest.

...R

Robin2:
What is a "bga reballer" Sounds painful :slight_smile:

Sounds like a vasectomy reversal for minorities with specific preferences.

Most here would suggest you split your problem into different elements/sections.
When you have one element working continue to the next.
Also, larger projects may be better accomplished using a state machine which i will attach a skeleton of one in the my next post. You can take out or and to it as needed.
Also there is a stickey on this site showing how to do multile things at once which you should master.
Nick Gammon has helped alot here in his coverage on different programming techniques.

See also:
http://forum.arduino.cc/index.php?topic=261445.0 By Robin2
Demonstration code for several things at the same time - Project Guidance - Arduino Forum

//State machine skeleton

const unsigned long TaskAppleWait  = 50UL;   //Runs Task every 50ms 
const unsigned long TaskOrangeWait = 100UL;  //Runs Task every 100ms
const unsigned long TaskPearWait   = 500UL;  //Runs Task every 1/2Sec
const unsigned long TaskKiwiWait   = 1000UL; //Runs Task every 1Sec
//add more as needed

unsigned long TimeApple;                     //Times up, run TaskApple
unsigned long TimeOrange;                    //Times up, run TaskOrange
unsigned long TimePear;                      //Times up, run TaskPear
unsigned long TimeKiwi;                      //Times up, run TaskKiwi
//add more as needed

unsigned long currentmillis; 

//other variables

//define the available states that we can have for this sketch
enum States{
  stateApple, stateOrange, statePear, stateKiwi};
  //add more states as needed
States mState = stateApple;             //we start out in this machine state 


//========================================================== 
void setup()
{
  Serial.begin(9600);
  
  currentmillis = millis();
  TimeApple  = currentmillis;            //initailize all times 
  TimeOrange = currentmillis;            //
  TimePear   = currentmillis;            //
  TimeKiwi   = currentmillis;            //

  pinMode(13,OUTPUT);                    //
  pinMode(12,OUTPUT);                    //
  pinMode(11,OUTPUT);                    //
  pinMode(10,OUTPUT);                    //
  
  mState = stateApple;                   //we start out in this machine state 

} //        >>>>>>>>>>>>>> END OF setup() <<<<<<<<<<<<<<<<<


void loop()
{
  // keep this at this location
  currentmillis = millis();  


  //*********** Other loop stuff goes here ************ 



  //************** State Machine section ************** 
  switch (mState)
  {
    //***************************
  case stateApple:

    //is it time to run this section of code?
    if (CheckTime(TimeApple, TaskAppleWait)) 
    {
      TaskApple();
    }
    
    //example below, how to change the machine state
    //mState = stateOrange; 
    //TimeOrange = currentmillis; 

    break;

    //***************************
  case stateOrange:
    //is it time to run this section of code?
    if (CheckTime(TimeOrange, TaskOrangeWait)) 
    {
      TaskOrange();
    }

    break;

    //***************************
  case statePear:

    //is it time to run this section of code?
    if (CheckTime(TimePear, TaskPearWait)) 
    {
      TaskPear();
    }

    break;

    //***************************
  case stateKiwi:

    //is it time to run this section of code?
    if (CheckTime(TimeKiwi, TaskKiwiWait)) 
    {
      TaskKiwi();
    }

    break;

    //***************************
  default: 
    // statements
    break;

    //***************************
  }   // end of switch/case


} //        >>>>>>>>>>>>>> END OF loop() <<<<<<<<<<<<<<<<<



//                    F U N C T I O N S
//========================================================== 

//Delay time expired function
boolean CheckTime(unsigned long &lastMillis, unsigned long wait) {

  //has the time expired? 
  if (currentmillis - lastMillis >= wait) 
  {
    lastMillis += wait;  //get ready for the next timing cycle

    return true;
  }

  return false;

} //END of CheckTime()


//==================
void TaskApple()
{
  //example code
  digitalWrite(13,!digitalRead(13));   //Toggle pin 13
  //Other stuff

} //END of TaskApple()

//==================
void TaskOrange()
{
  //example code
  digitalWrite(12,!digitalRead(12));   //Toggle pin 12
  //Other stuff

} //END of TaskOrange()

//==================
void TaskPear()
{
  //example code
  digitalWrite(11,!digitalRead(11));   //Toggle pin 11
  //Other stuff

} //END of TaskPear()

//==================
void TaskKiwi()
{
  //example code
  digitalWrite(10,!digitalRead(10));   //Toggle pin 10
  //Other stuff
  
} //END of TaskKiwi()

//==================




//======================================================================
//                             END OF CODE
//======================================================================

Sounds like a vasectomy reversal for minorities with specific preferences.

:relaxed:

That makes thing easier the bottom elements need to reach a temp of 250c monitored by thermal couples at a ramp rate a 3c sec one led should be on off to show ramping those will show progress of ssr working another led shows the system has power and is working another led show show bottom has reach set point and is stable. I have three ssr thats three ssr leds one for power one for stable temp. A botton press to start system but not start the process . Botton to start process and one to just interupe the process. The top heater will be infered bulb. Any sugestions lary

I have not done this.
Maybe Google for others who have done the same.

example:

light0070702:
That makes thing easier the bottom elements

Did you read Reply #3

Are you not going to tell us what your project is?

...R

Looks like Edmar has done all the work for you at the above link i gave.

Yes edmar has done great things with this the only thing missy is im gping to be using push buttons. And my last post was done before i seen the replys i do appoligize for that edmar desighn alot of my specs are off that the bottom heater i and top heater i want controlled by the ardriuno i dont know if that makes sense larry thank you for you one post for doing mutiple processes with the ardiuno im reading it tonight will post back when done reading it and may i post your name in my credits when done with the project

Lots of people here are willing to help you and others.
It's best you give the forum credit.

Sorry about the typo in my post

LarryD:
Looks like Edmar has done all the work for you at the above link i gave.

I hadn't seen that link but I have looked at it now and I am none the wiser.

What is BGA?

...R

See link in #7

Once im home ill tell you what the machine is used for

Okay basically a reball machine uses bottom and top heat to melt soider in a ball grid array so the chip can be removed safely with out causing stress to nearby components and the chip the most popular that most people hear about is ps3 or xbox 360 red ring. That the most simple example there are other uses for this machine just saying one specific example

Ah right, now I understand. Do you, perchance, have a reflow oven? I'm thinking that maybe you could put the whole board in the oven with a some kind of mechanism that will lift at the appropriate part of the cycle.

It may seem like overkill but if the whole board is in the oven, it should minimise stress to nearby components.