Difference between revisions of "Lesson 3--Microduino "Button Controlled LED""
Line 1: | Line 1: | ||
− | {{Language| | + | {{Language|第三课--按钮控制的LED开关}} |
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- |
Revision as of 05:29, 16 February 2014
Language: | English • 中文 |
---|
ContentsObjectiveThe first two experiments showed you how to use software to control the LED directly. If we add a button, to control the LED light, then realize the combination of hardware and software. Actually that two experiment use Microduino I/O port as the output to control the LED, if want to use the button, how to monitor the input signal of the button? Today we will take button as an example to show how to use the Microduino as the input.
Equipment
Button
If use this wrap button making PCB, if bad wiring, it has two pairs of pins available always conduction as a conductor wiring.
Experimental schematicUsing external pulldown resistor, when didn't press, it is low "0", press for high.
Program
const int buttonPin = 2; // Define button input pin
const int ledPin = 13; //Define LED pin
int buttonState = 0; //Initialize the button value
void setup() {
pinMode(ledPin, OUTPUT); //Set the LED pin as output
pinMode(buttonPin, INPUT); //Set button pin as intpu
}
void loop(){
buttonState = digitalRead(buttonPin);//Read the value from the buttonPin
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH); //If the button input signal is high, the LED will light (LED connect method is that anode connects control pin, cathode connects GND)
}
else {
digitalWrite(ledPin, LOW); //LED goes out
}
}
const int buttonPin = 2; // Define button input pin
const int ledPin = 13;
int buttonState = 0;
boolean led; //Define LED as boolean(true or false)
void setup() {
pinMode(ledPin, OUTPUT);
// pinMode(buttonPin, INPUT); //Set the button pin as input
pinMode(buttonPin, INPUT_PULLUP);//Set button pin as interanl pull-up input
}
void loop(){
buttonState = digitalRead(buttonPin);
if (buttonState ==HIGH) //Use the external pull-down, because the initial state is low, only the press is high, the press was flipped, or not it will blink.
{
delay(200); //Short time delay, stabilization
// delay(1000); //Long time press
// if (buttonState == LOW) //Check still is low
led=!led; //LED state flip
}
digitalWrite(ledPin, led);
} This experiment should be noted the button anti-shake, you can adjust the delay time, or at both ends of the input signal plus a 104 capacitor, then voltage signal does not mutant. The detailed button anti-shake information, please refer to:http://www.geek-workshop.com/thread-74-1-1.html digitalRead()usageRead a Pin's value and return HIGH or LOW. Result
Video |