《Arduino程序设计基础》示例程序-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 126028|回复: 55

《Arduino程序设计基础》示例程序

  [复制链接]
发表于 2014-1-17 13:44 | 显示全部楼层 |阅读模式
arduino-book.jpg


因为代码比较多,论坛上贴出来太麻烦了,所以我把整理到了我blog上。各示例程序所使用到的类库下载,也提供了链接。
示例程序分为两部分,1至4章为基础部分,大家可以在以下网址查阅:
http://www.clz.me/arduino-book/examples/

5至10章为进阶部分,大家可以在以下网址查阅:
http://www.clz.me/arduino-book/examples-advanced/


还可以在github查看例程,或者打包下载例程:
https://github.com/coloz/Arduino-book

如有问题和建议,均可在本版提出


 楼主| 发表于 2014-1-17 14:01 | 显示全部楼层
本帖最后由 奈何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]

发表于 2014-1-21 09:40 | 显示全部楼层
  抢占位置,免得你们下载去了,没我的了。
发表于 2014-1-22 12:14 | 显示全部楼层
好例子,多看看实例
发表于 2014-1-23 08:41 | 显示全部楼层
不错的例子!
发表于 2014-1-24 10:14 | 显示全部楼层
楼主没有提供全书下载地址么?

点评

该书不提供下载,2月底各大电商平台会有售  详情 回复 发表于 2014-1-24 12:22
 楼主| 发表于 2014-1-24 12:22 | 显示全部楼层
机器人小西 发表于 2014-1-24 10:14
楼主没有提供全书下载地址么?

该书不提供下载,2月底各大电商平台会有售
发表于 2014-1-26 17:22 | 显示全部楼层
等待书的到来,配合书做做一些有趣的实验
发表于 2014-1-28 11:13 | 显示全部楼层
.。。
期待更好玩的。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-27 22:25 , Processed in 0.152592 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表