This is an old revision of the document!
Table of Contents
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 body of 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). }
Blink an LED
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 }