封装 DHT21 传感器驱动为库

将昨日的驱动改成了一个 Arduino 的库,可以更方便的使用

库为两个文件: dh21.h 和 dh21.cpp

在 E:\arduino-0022\libraries\ 下建立 DH21 目录,把这两个文件置于其中即可使用(由此可见 Arduino 的库创建和使用都很方便),重启 Arduino 开发环境后,可在 Sketch –> Import Library 下看到 DH21

使用示例如下:

#include <dh21.h>

/* the data line of DH21 is pluged in digital pin #12 */
DH21 dh21(12);

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  if(dh21.get_data() == -1)
    Serial.println("Read DH21 error");
   else
   {
     Serial.print("Temperature: ");
     Serial.print(dh21.temperature());
     Serial.print("C   ");
     Serial.print("Humidity: ");
     Serial.print(dh21.humidity());
     Serial.println("%");
   }

   /* read after 5 seconds */
   delay(5000);
}

Arduino I/O 之数字输入输出

Arduino 把 ATMEGA 8 位单片机的数字 I/O 端口汇总为 14 条,并编号为 0 ~ 13,下图的绿色编号即是:

数字 I/O 端口的信号,5V 的电压表示 ’1′,0V 电压表示 ’0′

因此在任意一个数字输出针脚与 GND (接地)之间串一个 LED,则当我们让该针脚输出 ’1′(高电平,5V)时,就能点亮 LED

如果接外部 5V 电源作为输入要注意串一个 1K 左右的电阻限流,防止大电流破坏电路

数字 I/O 端口是输入还是输出,Arduino 通过 pinMode() 这个函数来设置,比如设置 pin 12 为输出, pin 0 为输入(接受信号),则:

pinMode(12, OUTPUT);
pinMode(0, INPUT);

设置输出模式后就可以使用 digitalWrite() 函数往针脚上输出电平;同样输入模式使用 digitalRead() 读取对应针脚上的信号:

digitalWrite(12, HIGH);
digitalWrite(12, LOW);
digitalRead(0);

Arduino,Hello World

0. 购买 Arduino 核心板,taobao 上有,一般会随送一条 USB 线

1. 下载 Arduino 集成开发环境 www.arduino.cc/en/Main/Software

2. 下载下来是一个 85MB 左右的压缩包,直接解压到 E:\arduino-0022

3. USB 线方头连接板子,另一头插到 PC 上,系统会提示你安装 “FT232R USB UART” (USB 转串口)驱动,指定其搜索位置为 E:\arduino-0022\drivers\FTDI USB Drivers,安装完成后系统在端口里会多出一个 USB Serial Port 的设备

踏进 Arduino 互动媒体世界

Arduino 是一个能够让你的计算机更好地感知和控制外部世界的平台,它基于一个源码开放的微控制器电路板,并提供了相应的集成开发环境来进行软件的开发。

Arduino 的核心板的电路非常精简,仅有一个手掌的大小。

Arduino 能够被用来进行交互式对象的开发,例如从一组开关或者传感器中获得用户输入,控制一组输出。用Arduino开发的项目即能够单独运行,也能够同运行在计算机上的其他软件(如 Flash、Processing 或 Max/MSP)进行通信,从而共同完成相应的任务。

Arduino 特色:

开放源码的电路图、集成开发环境

可按需要裁简官方电路图,定制自己的微处理控制

可简单快速地与传感器、各种电子元件连接(红外,超声波,WiFi,蓝牙,Ethernet,光敏电阻……)

可快速与常用的互动媒体设计软件连接(如 Flash)

低成本(核心使用 ATMEGA8-16 单片机,价格在 RMB 20 以内)

利用 Arduino 可突破以往只能使用键盘、鼠标、CCD 等作为输入的互动媒体应用

Arduino 的官方网站位于:http://www.arduino.cc
Arduino 台湾:http://www.arduino.tw
Arduino 中文:http://blog.flamingoeda.com
Arduino 豆瓣:http://www.douban.com/group/arduino/