User Tools

Site Tools


arduino:program_structure

This is an old revision of the document!


Program structure

Main loop

All Arduino programs (called “sketches”) have the same basic structure: a setup function and a loop function. Whatever you write in the body of the setup function will happen only once–when the program starts (e.g. after you power up the Arduino, press the reset button, or load a new program). Whatever you write in the loop function will happen over and over as fast as possible until you halt the program (e.g., by removing the power, pushing the reset button, or loading a new program).

program_structure.ino
void setup() {
  // Stuff in here gets run once when the program starts.
}
 
void loop() {
  // Stuff in here gets run over and over and over again (until you turn the power off).
}

Blinking an LED is the microcontroller equivalent to a “Hello world” program in general programming.

BlinkMe.ino
/*
  BlinkMe
  Turn an LED on and off once per second.
 */
 
void setup() {                
  // make pin 13 an output
  pinMode(13, OUTPUT);     
}
 
void loop() {
  digitalWrite(13, HIGH);    // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait one second (1000 milliseconds)
  digitalWrite(13, LOW);     // turn the LED off by making the voltage LOW
  delay(1000);               // wait one second
}

Here is the same example but using a variable to store the pin number.

BlinkMe2.ino
/*
  BlinkMe2
  Turn an LED on and off once per second (improved version).
 */
 
// use variable ledPin to store the pin number that drives the LED
int ledPin = 13;
 
void setup() {                
  // make ledPin an output
  pinMode(ledPin, OUTPUT);     
}
 
void loop() {
  digitalWrite(ledPin, HIGH);   // turn the LED on
  delay(1000);                  // wait one second
  digitalWrite(ledPin, LOW);    // turn the LED off
  delay(1000);                  // wait one second
}

Now if we need to change the pin number, we only need to change it in one place.

Here we use variables also to define delay times:

BlinkMe3.ino
/*
  BlinkMe3
  Turn an LED on and off once per second (another improved version).
 */
 
// use variable ledPin to store the pin number that drives the LED
int ledPin = 13;
// define the LED's on and off times in milliseconds
int onTime = 1000;
int offTime = 1000;
 
void setup() {                
  // make ledPin an output
  pinMode(ledPin, OUTPUT);     
}
 
void loop() {
  digitalWrite(ledPin, HIGH);   // turn the LED on
  delay(onTime);                // wait onTime mS
  digitalWrite(ledPin, LOW);    // turn the LED off
  delay(offTime);               // wait offTime mS
}
arduino/program_structure.1347516005.txt.gz · Last modified: 2012/09/13 06:00 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki