User Tools

Site Tools


arduino:arduino_crash_course:program_structure

Program structure

Main loop

Arduino programs are called sketches. The source code for a sketch is stored in a text file that has a ino file extension.

Arduino sketches all have the same basic structure, consisting of a setup function and a loop function.

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).
}

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 body of the loop function will happen over and over as fast as the Arduino can manage until you halt the program (e.g., by removing the power, pushing the reset button, or loading a new program).

Blinking an LED is the microcontroller equivalent to a “Hello world” program in general programming. Here is how to blink an LED in Arduino:

BlinkMe.ino
/*
  BlinkMe
  Turn an LED on and off once per second.
 */
 
void setup() {                
  pinMode(13, OUTPUT);       // make pin 13 an 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() {                
  pinMode(ledPin, OUTPUT);      // make ledPin an 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
}

One of the advantages of using a named value for the pin number is that if we want 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() {                
  pinMode(ledPin, OUTPUT);      // make ledPin an 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/arduino_crash_course/program_structure.txt · Last modified: 2017/12/06 01:01 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki