“Lesson 3--Microduino "Button Controlled LED"”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
Experimental schematic
 
(未显示同一用户的1个中间版本)
第6行: 第6行:
 
The first two lessons showed you how to use software to control the LED directly. If we add a button  
 
The first two lessons showed you how to use software to control the LED directly. If we add a button  
 
to control the LED light, then we can combine the use of both hardware and software.
 
to control the LED light, then we can combine the use of both hardware and software.
Previously, we used Microduino I/O port as the output to control the LED. So if want to use a button,
+
Previously, we used Microduino I/O port as the output to control the LED. So if we want to use a button,
how would we monitor the input signal of the button?
+
how would we monitor when it is pressed?
In this lesson, we will use a button as an example to show how to use Microduino as the input.
+
In this lesson, we will use a button as an example to show how to use Microduino as an input.
 
 
  
 
==Equipment==
 
==Equipment==
第29行: 第28行:
 
[[File:button connection.jpg|600px|center|thumb]]
 
[[File:button connection.jpg|600px|center|thumb]]
  
==Experimental Schematic==
+
==Experiment Schematic==
 
[[File:button schematic.jpg|600px|center|thumb]]
 
[[File:button schematic.jpg|600px|center|thumb]]
Using external pulldown method, when unpressed, it is "LOW". When pressed, it is high.
+
Using the external pulldown method, when the button is unpressed, the input to D2 is "LOW". When pressed, it is "HIGH".
  
 
==Program==
 
==Program==
*LED display button value
+
*LED is on while button is pressed down
  
 
<source lang="cpp">
 
<source lang="cpp">
第65行: 第64行:
 
   pinMode(ledPin, OUTPUT);       
 
   pinMode(ledPin, OUTPUT);       
 
   // pinMode(buttonPin, INPUT); //Set the button pin as input     
 
   // pinMode(buttonPin, INPUT); //Set the button pin as input     
   pinMode(buttonPin, INPUT_PULLUP);//Set button pin as internal pull-up input     
+
   pinMode(buttonPin, INPUT);//Set button pin as input     
 
}
 
}
 
void loop(){
 
void loop(){
第80行: 第79行:
 
</source>
 
</source>
  
===digitalRead()usage===
+
===digitalRead() usage===
 
Read a pin's value and return HIGH or LOW.
 
Read a pin's value and return HIGH or LOW.
  
 
==Result==
 
==Result==
*Program 1:LED display input button value. High value will light the LED.
+
*Program 1:LED is on while button is pressed down.
*Program 2:Each time you press the button, LED voltage will flip.
+
*Program 2:Each time you press the button, the LED will turn on/off.
 
==Video==
 
==Video==
 
|}
 
|}

2015年7月14日 (二) 19:01的最新版本

Language English

Objective

The first two lessons showed you how to use software to control the LED directly. If we add a button to control the LED light, then we can combine the use of both hardware and software. Previously, we used Microduino I/O port as the output to control the LED. So if we want to use a button, how would we monitor when it is pressed? In this lesson, we will use a button as an example to show how to use Microduino as an input.

Equipment

  • Microduino-Core
  • Microduino-FT232R
  • Other hardware equipment
    • 1x Box of breadboard jumper wires
    • 1x Breadboard
    • 1x LED (Light-Emitting Diode)
    • 1x 220ohm resistor
    • 1x Button
    • 1x USB Data cable

Button

  • Button principle
Button.jpg
  • Button connection
Button connection.jpg

Experiment Schematic

Button schematic.jpg

Using the external pulldown method, when the button is unpressed, the input to D2 is "LOW". When pressed, it is "HIGH".

Program

  • LED is on while button is pressed down
const int buttonPin = 2;     // Define button input pin
const int ledPin =  11;     //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 input    
}
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 up
  } 
  else {
    digitalWrite(ledPin, LOW); //LED goes out
  }
}
  • LED voltage flip
const int buttonPin = 2;     // Define button input pin
const int ledPin =  11;     

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);//Set button pin as input    
}
void loop(){
  buttonState = digitalRead(buttonPin);
  if (buttonState ==HIGH)
  {  
    delay(200);                   //Short time delay for stabilization
    // delay(1000);               //Long time press
    // if (buttonState == LOW)    //Check still is low
    led=!led;                     //LED state flip
  } 
  digitalWrite(ledPin, led);  
}

digitalRead() usage

Read a pin's value and return HIGH or LOW.

Result

  • Program 1:LED is on while button is pressed down.
  • Program 2:Each time you press the button, the LED will turn on/off.

Video