本帖最后由 依然落叶飘零 于 2016-4-27 19:54 编辑
上面两章我们讲解两个经典的程序点亮一个LED灯和Hello World程序。这一章开始我们将讲解Arduino的软件编程控制硬件。本系列教程主要是Arduin的入门教程,讲解基本的接口编程。Arduino的很多教程都是通过面包板连接硬件威廉希尔官方网站
。我本人很不喜欢这种方式,连接一些简单的威廉希尔官方网站
还行,如果威廉希尔官方网站
复杂的时候就非常麻烦了。再接下来的教程中我将使用Accessory Shield扩展板作为示例讲解Arduino的数字IO,模拟IO,PWM,I2C,SPI等接口的编程。
[接口
- Arduino接口
方便接入各种带Arduino接口的主板 - XBee接口
方便接入各种XBee通信模块
[器件
- 0.96inch OLED
方便进行各种显示实验,分辨率128×64 - 多彩 LED
红绿蓝三基色LED,可以显示256×256×256种颜色 - 蜂鸣器
PWM连接,能演奏简单的音乐 - 10K可调电位器
- ADXL345
三轴加速度计,测量范围可达±16g - LM75BDP
温度传感器,分辨率可达0.125℃
| - 五向摇杆
上、下、左、右和按下,共5种状态 - XBee 状态指示灯
- 电源指示灯
- XBee EASYLINK按键
- Arduino和XBee复位按键
- DS3231
高精度实时时钟 - CR1220电池座
实时时钟供电 - P9813
RGB LED驱动芯片
[跳线
- 调试/通信配置跳线
当选择TXD与TX,RXD与RX相连时,可使用上位机软件通过Arduino主控板串口对XBee通信模块进行调试和配置
当选择TXD与RX,RXD与TX相连时,可通过Arduino主控板串口与XBee通信模块进行数据通信
|
打开Arduino IDE,编写如下程序并保存。
- #define KEY A4
- void setup() {
- pinMode(KEY,INPUT);
- digitalWrite(KEY,HIGH);
- Serial.begin(9600);
- }
-
- void loop() {
- if(digitalRead(KEY) == LOW){
- delay(10);
- if(digitalRead(KEY) == LOW)
- Serial.println("KEY PRESS!!!");
- while(digitalRead(KEY) == LOW){
- delay(10);
- }
- }
- }
把Accessory Shield插上UNO PLUS开发板。编译并上传程序,打开串口监视器。等待一会儿,按下Accessory Shield中五向摇杆的中间按键,串口监视器会显示按键按下的信息。
程序分析:
程序开头定义按键接到A4管脚,setup()函数中设置管脚为输入模式,默认高电平,初始化串口,波特率为9600.
loop()函数中判断管脚是否为低电平,若为低电平测表示有按键被按下。delay(10);
延时10ms去抖动,防干扰。再次判断管脚状态。若为低则表示不是抖动,是按键按下。使用Serial.println("KEY PRESS!!!")语句显示信息。然后等待按键被释放。