概 述

Arduino是一款开源的控制板,非常适合爱好电子制作的朋友制作互动作品,但对于一些不熟悉电子技术的人,要在Arduino上添加电路是一个比较麻烦是事,所以我们设计了一个传感器扩展板,能使大部分传感器轻松地和Arduino控制板连接。

特色描述

1.扩展14个数字 IO口(12个舵机接口)及电源;

2.6个模拟IO口及电源;

3.1个数字端口外接电源接线柱,外部供电和内部供电自动切换;

4.数字端口外部供电和板载电源自动切换;

5.1个外接电源输入接线柱和1个输入插针;

6.RS485接口;

7.复位按钮;

8.xbee/Bluetooh Bee蓝牙无线数传接口;

9.APC220/Bluetooh V3蓝牙无线数传接口;

10.IIC/I2C/TWI接口;

11.3.3V输出端口;

12.SD卡模块接口;

技术规格

1.模块电源:+5V

2.舵机电源:+5V

3.输出电源:+3.3V

4.模块尺寸:57x54mm

引脚定义

<File:DFRduino> IO Expansion V5_1.jpg

数字传感器的使用

数字传感器需要使用数字传感器连接线接插到数字口 D0-D13,绿色为信号,红色为电源正,黑色为电源地。

<File:DFRduino> IO Expansion V5_2.jpg

<File:DFRduino> IO Expansion V5_3.jpg

<File:DFRduino> IO Expansion V5_4.jpg

Arduino数字大按钮实验代码:

int ledPin = 13;                // choose the pin for the LED
int inputPin = 2;               // choose the input pin (for a pushbutton) 按键接到数字2
int val = 0;                    // variable for reading the pin status
void setup()
{
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare pushbutton as input
}
void loop()
{
  val = digitalRead(inputPin);  // read input value
  if(val == HIGH)
  {
     // check if the input is HIGH
     digitalWrite(ledPin, LOW);  // turn LED OFF
  }
  else
  {
     digitalWrite(ledPin, HIGH); // turn LED ON
  }
}

模拟传感器的使用

模拟传感器需要使用模拟传感器连接线接插到模拟口A0-A5,红色为电源正,黑色为电源地 ,蓝色为信号。

<File:DFRduino> IO Expansion V5_5.jpg

<File:DFRduino> IO Expansion V5_6.jpg

<File:DFRduino> IO Expansion V5_7.jpg

Arduino模拟环境光实验代码:

void setup()
{
  Serial.begin(9600); // 9600 bps
}
void loop()
{
  int val;
  val=analogRead(0);
  Serial.println(val ,DEC);
  delay(100);
}

根据光线强弱的变化,读取到的值也会随其变化。打开串口助手可以看到检测结果。

IIC接口的使用

<File:DFRduino> IO Expansion V5_8.jpg

Arduino IICLCD实验代码:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
  lcd.init();                      // initialize the lcd
  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Hello, world!");
}
void loop()
{
}

舵机的使用

舵机有3根线,棕色为地,红色为电源正,橙色为信号线,但不同牌子的舵机,线的颜色可能不同,请大家注意。

<File:DFRduino> IO Expansion V5_9.jpg

舵机属于大电流器件,在使用时需要单独供电,Arduino上的5V供电仅提供800mA电流,不能维持舵机的需要。当数字口用于驱动舵机时,由于舵机电流较大,这时就需要外部电源供电,从数字口外部供电接口接入,电压必须大于5V将自动断开Arduino控制器的5V。舵机供电电压需要符合所使用的舵机额定电压。

使用Arduino 0017-0018可以让Arduino控制器的Pin2-13端口控制12个舵机。如上图连接。

演示代码:

#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
void setup()
{
   servo1.attach(8);               //定义舵机1控制口为Pin8
   servo2.attach(9);              //定义舵机2控制口为Pin9
   servo3.attach(10);              //定义舵机3控制口为Pin10
   Serial.begin(19200);           //设置波特率
    Serial.print("Ready");
}
void loop()
{
   static int v = 0;
   if ( Serial.available())
   {
      char ch = Serial.read();       //读取串口数据
       switch(ch)
      {
        case '0'...'9':
          v = v * 10 + ch - '0';  //字符换算成10进制
           break;
        case 'a':             //如果数据后带a,则表示是servo1的数据,比如串口发送85a
          servo1.write(v);
          v = 0;
          break;
        case 'b':             //如果数据后带b,则表示是servo2的数据,比如串口发送90b
          servo2.write(v);
          v = 0;
          break;
        case 'c':             //如果数据后带c ,则表示是servo3的数据,比如串口发送180c
          servo3.write(v);
          v = 0;
          break;
      }
   }
}

程序功能:通过IDE中的串口助手,发送舵机度数控制舵机转动的角度,比如发送字符85a表示舵机1转动85度,发送字符180c表示舵机3转动180度。

<File:nextredirectltr.png>购买 Xbee传感器扩展板V5 含RS485无线数传蓝牙接口 (SKU:DFR0088)