This is an old revision of the document!
Table of Contents
Basic Interaction
Polling versus interrupts
There are two primary ways that a microcontroller (like the Arduino) can respond to changes in its inputs. One is by polling, the other is by interrupts.
With a polling setup, the mircocontoller constantly and repeatedly looks explicitly at all its input sources to see what state they are in and then it responds accordingly. In an interrupt scheme, the microcontroller does essentially nothing most of the time but comes to life and does something when an input source jostles it into action.
Of the two, polling is probably easier to get started with. Following is a simple example of using polling.
Switch controlled LED
This example uses polling to determine the state of a switch. If the switch is pressed, Arduino will turn an LED on. If it is not pressed, it will turn off.
/* LightSwitch Turn an LED on and off. */
connect the push button to digital pin 2 int pushButton = 2; connect the LED to pin 13 int ledPin = 13;
void setup() {
pinMode(pushButton, INPUT); // make the pushbutton's pin an input pinMode(ledPin, OUTPUT); // make LED's pin an output
}
void loop() {
// read the input pin: int buttonState = digitalRead(pushButton); if (buttonState > 0) //delay(1); // delay in between reads for stability (?)
}