User Tools

Site Tools


arduino:basic_interaction

This is an old revision of the document!


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.

In a polling setup, the mircocontoller explicitly examines all its input sources in its main loop to see what state each one is in and then it responds accordingly. In an interrupt scheme, the microcontroller does essentially nothing in its main loop and gets instructed to do 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.ino
/*
 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);
  // set LED state accordingly
  if (buttonState == HIGH)
    digitalWrite(ledPin, HIGH);   // turn the LED on
  else
    digitalWrite(ledPin, LOW);    // turn the LED off
 
  //delay(1);        // delay in between reads for stability (?)
}
LightSwitch2.ino
/*
 LightSwitch2
 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);
  digitalWrite(ledPin, buttonState);   // turn the LED on or off
  //delay(1);        // delay in between reads for stability (?)
}
LightSwitch3.ino
/*
 LightSwitch3
 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() {
  digitalWrite(ledPin, digitalRead(pushButton));   // read the input pin and turn the LED on or off
  //delay(1);        // delay in between reads for stability (?)
}
arduino/basic_interaction.1347513880.txt.gz · Last modified: 2012/09/13 05:24 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki