本帖最后由 奈何col 于 2014-1-21 23:15 编辑
2.5.1.1 流水灯实验
[mw_shl_code=cpp,true]/*
OpenJumper LED Module
流水灯效果
www.openjumper.com
*/
void setup()
{
//初始化I/O口
for(int i=2;i<8;i++)
pinMode(i,OUTPUT);
}
void loop()
{
//从引脚2到引脚7,逐个点亮LED,等待1秒再熄灭LED
for(int i=2;i<7;i++)
{
digitalWrite(i,HIGH);
delay(1000);
digitalWrite(i,LOW);
}
//从引脚7到引脚2,逐个点亮LED,等待1秒再熄灭LED
for(int i=7;i>2;i--)
{
digitalWrite(i,HIGH);
delay(1000);
digitalWrite(i,LOW);
}
}
[/mw_shl_code]
2.5.1.2按键控制LED
[mw_shl_code=cpp,true]/*
OpenJumper Button Module
www.openjumper.com
*/
int buttonPin = 2;
int ledPin = 13;
int buttonState = 0;
void setup()
{
//初始化I/O口
pinMode(buttonPin,INPUT_PULLUP);
pinMode(ledPin,OUTPUT);
}
void loop()
{
buttonState = digitalRead(buttonPin);
//按住按键时,点亮LED;放开按键后,熄灭LED。
if(buttonState==HIGH)
{
digitalWrite(ledPin,LOW);
}
else
{
digitalWrite(ledPin,HIGH);
}
}
[/mw_shl_code]
2.5.1.3 新的按键控制方式
[mw_shl_code=cpp,true]/*
OpenJumper Button Module
按键控制LED
www.openjumper.com
*/
int buttonPin = 2;
int ledPin = 13;
boolean ledState=false; // 记录LED状态
boolean buttonState=true; // 记录按键状态
void setup()
{
//初始化I/O口
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin,OUTPUT);
}
void loop()
{
//等待按键按下
while(digitalRead(buttonPin)==HIGH){}
//当按键按下时,点亮或熄灭LED
if(ledState==true)
{
digitalWrite(ledPin,LOW);
ledState=!ledState;
}
else
{
digitalWrite(ledPin,HIGH);
ledState=!ledState;
}
delay(500);
}
[/mw_shl_code]
2.5.2 项目:人体感应灯(数字传感器与继电器模块)
[mw_shl_code=cpp,true]/*
OpenJumper Example
Pyroelectric Infrared Sensor And Relay
人体感应灯
http://www.openjumper.com/
*/
int PIRpin=2;
int RELAYpin=3;
void setup() {
Serial.begin(9600);
pinMode(PIRpin,INPUT);
pinMode(RELAYpin,OUTPUT);
}
void loop() {
// 等待传感器检测到人
while(!digitalRead(PIRpin)){}
// 将灯打开10秒,然后关闭
Serial.println("turn on");
digitalWrite(RELAYpin,HIGH);
delay(10000);
digitalWrite(RELAYpin,LOW);
Serial.println("turn off");
}
[/mw_shl_code]
2.5.3.2 使用电位器控制呼吸灯的呼吸频率
[mw_shl_code=cpp,true]/*
OpenJumper LEDModule
www.openjumper.com
*/
int ledPin = 9; //9号引脚控制LED
int pot=A0; //A0引脚读取电位器输出电压
void setup(){}
void loop(){
//LED逐渐变亮
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5)
{
analogWrite(ledPin, fadeValue);
//读取电位器输出电压,除以5时为了缩短延时时间
int time=analogRead(pot)/5;
delay(time); //将time用于延时
}
//LED逐渐变暗
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5)
{
analogWrite(ledPin, fadeValue);
delay(analogRead(pot)/5); //读取电位器输出电压,并用于延时
}
}
[/mw_shl_code]
2.5.3.3 实验:通过光敏电阻检测环境光亮度
[mw_shl_code=cpp,true]/*
OpenJumper light sensor
www.openjumper.com
*/
void setup()
{
// 初始化串口
Serial.begin(9600);
}
void loop()
{
// 读出当前光线强度,并输出到串口显示
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(1000);
}
[/mw_shl_code]
2.5.4 项目:电子温度计
[mw_shl_code=cpp,true]/*
OpenJumper LM35 Module
www.openjumper.com
*/
int LM35 = A0;
void setup()
{
// 初始化串口通信
Serial.begin(9600);
}
void loop()
{
// 读取传感器模拟值,并计算出当前温度
float temp = (5.0 * analogRead(LM35) * 100.0) / 1024;
// 将温度输出至串口显示
Serial.print("temperature " );
Serial.print(temp);
Serial.println("C");
delay(1000);
}
[/mw_shl_code]
2.6 与计算机交流——串口的使用
[mw_shl_code=cpp,true]
int counter=0; // 计数器
void setup() {
//初始化串口
Serial.begin(9600);
}
void loop() {
//每loop循环一次,计数器变量加1
counter = counter+1;
// 输出变量
Serial.print(counter);
// 输出字符
Serial.print(‘:’);
// 输出字符串;
Serial.println("Hellow World");
delay(1000);
}
[/mw_shl_code]
|