极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: eagler8

【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)

[复制链接]
 楼主| 发表于 2019-8-26 19:58:10 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-26 20:26:13 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-26 20:54:22 | 显示全部楼层
  1. /*
  2. 【Arduino】108种传感器模块系列实验(99)
  3. 实验九十九: APDS-9960 GY-9960-3.3 RGB红外手势传感器 方向识别模块
  4. 1、工具-管理库-搜索“SparkFun_APDS-9960”库-安装
  5. 2、项目:串口显示测量的四组数据(未接入LCD)
  6. 3、实验接脚
  7. SDA = A4
  8. SCL  = A5
  9. GND = GND
  10. VCC = 3.3V
  11. */

  12. #include <Wire.h>
  13. #include <SparkFun_APDS9960.h>
  14. #include <LiquidCrystal.h>

  15. SparkFun_APDS9960 apds = SparkFun_APDS9960();
  16. uint16_t ambient_light = 0;
  17. uint16_t red_light = 0;
  18. uint16_t green_light = 0;
  19. uint16_t blue_light = 0;
  20. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

  21. void setup() {
  22.   
  23.   lcd.begin(16, 2);

  24.   Serial.begin(9600);
  25.   Serial.println();
  26.   Serial.println(F("--------------------------------"));
  27.   Serial.println(F("SparkFun APDS-9960 - ColorSensor"));
  28.   Serial.println(F("--------------------------------"));
  29.   
  30.   if ( apds.init() ) {
  31.     Serial.println(F("APDS-9960 initialization complete"));
  32.   } else {
  33.     Serial.println(F("Something went wrong during APDS-9960 init!"));
  34.   }
  35.   
  36.   if ( apds.enableLightSensor(false) ) {
  37.     Serial.println(F("Light sensor is now running"));
  38.   } else {
  39.     Serial.println(F("Something went wrong during light sensor init!"));
  40.   }
  41.   
  42.   delay(500);
  43. }

  44. void loop() {
  45.   
  46.   if (  !apds.readAmbientLight(ambient_light) ||
  47.         !apds.readRedLight(red_light) ||
  48.         !apds.readGreenLight(green_light) ||
  49.         !apds.readBlueLight(blue_light) ) {
  50.     Serial.println("Error reading light values");
  51.   } else {
  52.      
  53.     Serial.print("Ambient: ");
  54.     Serial.print(ambient_light);
  55.     lcd.setCursor(1, 0);
  56.      lcd.print(red_light);
  57.     Serial.print(" Red: ");
  58.     Serial.print(red_light);
  59.      lcd.setCursor(7, 0);
  60.       lcd.print(green_light);
  61.     Serial.print(" Green: ");
  62.     Serial.print(green_light);
  63.      lcd.setCursor(1, 1);
  64.      lcd.print(blue_light);
  65.     Serial.print(" Blue: ");
  66.     Serial.println(blue_light);
  67.   }
  68.   
  69.   delay(1000);
  70. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-26 21:00:50 | 显示全部楼层
初始化后距离台灯40CM的数据

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-26 21:16:25 | 显示全部楼层
不同手势,四组数据各不相同

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-26 21:27:42 | 显示全部楼层
  1. /*
  2. 【Arduino】108种传感器模块系列实验(99)
  3. 实验九十九: APDS-9960 GY-9960-3.3 RGB红外手势传感器 方向识别模块
  4. 1、工具-管理库-搜索“SparkFun_APDS-9960”库-安装
  5. 2、项目二:接入中断,串口显示7个不同的手势符号
  6. UP=向上
  7. DOWN=向下
  8. LEFT=向左
  9. RIGHT=向右
  10. NEAR=向近
  11. FAR=向远
  12. NONE=无动作
  13. 3、实验接脚
  14. INT = D2
  15. SDA = A4
  16. SCL  = A5
  17. GND = GND
  18. VCC = 3.3V
  19. */

  20. #include <Wire.h>
  21. #include <SparkFun_APDS9960.h>

  22. // Pins
  23. #define APDS9960_INT    2 // Needs to be an interrupt pin

  24. // Constants

  25. // Global Variables
  26. SparkFun_APDS9960 apds = SparkFun_APDS9960();
  27. int isr_flag = 0;

  28. void setup() {

  29.   // Initialize Serial port
  30.   Serial.begin(9600);
  31.   Serial.println();
  32.   Serial.println(F("--------------------------------"));
  33.   Serial.println(F("SparkFun APDS-9960 - GestureTest"));
  34.   Serial.println(F("--------------------------------"));

  35.   // Initialize interrupt service routine
  36.   attachInterrupt(0, interruptRoutine, FALLING);

  37.   // Initialize APDS-9960 (configure I2C and initial values)
  38.   if ( apds.init() ) {
  39.     Serial.println(F("APDS-9960 initialization complete"));
  40.   } else {
  41.     Serial.println(F("Something went wrong during APDS-9960 init!"));
  42.   }

  43.   // Start running the APDS-9960 gesture sensor engine
  44.   if ( apds.enableGestureSensor(true) ) {
  45.     Serial.println(F("Gesture sensor is now running"));
  46.   } else {
  47.     Serial.println(F("Something went wrong during gesture sensor init!"));
  48.   }
  49. }

  50. void loop() {
  51.   if( isr_flag == 1 ) {
  52.     detachInterrupt(0);
  53.     handleGesture();
  54.     isr_flag = 0;
  55.     attachInterrupt(0, interruptRoutine, FALLING);
  56.   }
  57. }

  58. void interruptRoutine() {
  59.   isr_flag = 1;
  60. }

  61. void handleGesture() {
  62.     if ( apds.isGestureAvailable() ) {
  63.     switch ( apds.readGesture() ) {
  64.       case DIR_UP:
  65.         Serial.println("UP");
  66.         break;
  67.       case DIR_DOWN:
  68.         Serial.println("DOWN");
  69.         break;
  70.       case DIR_LEFT:
  71.         Serial.println("LEFT");
  72.         break;
  73.       case DIR_RIGHT:
  74.         Serial.println("RIGHT");
  75.         break;
  76.       case DIR_NEAR:
  77.         Serial.println("NEAR");
  78.         break;
  79.       case DIR_FAR:
  80.         Serial.println("FAR");
  81.         break;
  82.       default:
  83.         Serial.println("NONE");
  84.     }
  85.   }
  86. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-26 21:29:24 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-26 22:00:06 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-26 22:01:52 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-26 22:03:18 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-27 10:03:40 | 显示全部楼层
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉。

实验一百: AT-09蓝牙4.0BLE 模块 串口引出 CC2541兼容HM-10模块


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-27 10:40:29 | 显示全部楼层


CC2541
是一款针对低能耗以及私有 2.4GHz 应用的功率优化的真正片载系统 (SoC) 解决方案。 它使得使用低总体物料清单成本建立强健网络节点成为可能。 CC2541 将领先 RF 收发器的出色性能和一个业界标准的增强型 8051 MCU、系统内可编程闪存存储器、8kB RAM 和很多其它功能强大的特性和外设组合在一起。 CC2541 非常适合应用于需要超低能耗的系统。 这由多种不同的运行模式指定。 运行模式间较短的转换时间进一步使低能耗变为可能  。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-27 11:10:16 | 显示全部楼层
如果CC2540上
的USB未启用并且CC2541上的I2C/额外I/O未启用,那么CC2541与CC2540在6mmx6mm方形扁平无引脚(QFN)40封装内引脚兼容。与CC2540相比,CC2541提供更低RF流耗。CC2541没有CC2540所具有的USB接口,并在TX模式中提供较低的最大输出功率CC2541还增加了1个HWI2C接口。CC2541与CC2533优化RF4CEIEEE802.15.4SoC引脚兼容。CC2541有2个不同的版本:分别具有128kB和256kB闪存的的CC2541F128/F256。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-27 11:14:41 | 显示全部楼层

CC2540/41特性
  (1)射频
  –2.4GHz蓝牙符合低能耗规范和私有的RF片载系统
  –支持250kbps,500kbps,1Mbps,2Mbps的制器内核数据速率–出色的链路预算,不使用外部前段而支持长距离应用–高达0dBm的可编程输出功率
  –出色的接收器灵敏度(1Mbps时为-94dBm),可选择性,和阻挡性能
  –适合于针对符合世界范围内的无线电频率调节系统:ETSIEN300328和EN3004402类(欧洲),FCCCFR4715部分(美国),和ARIBSTD-T66(日本)

  (2)布局
  –极少的外部组件–提供参考设计支持
  –6mm×6mm方形扁平无引脚(QFN)-40封装
  –与CC2540引脚兼容(当不使用USB或者I2C时)(ADC)

  (3)低功率
   –工作模式RX低至:17.9mA
     –工作模式TX(0dBm):18.2mA–功率模式1(4μs唤醒):270μs–功率模式2(睡眠定时器打开):1μs–功率模式3(外部中断):0.5μs

  (4)工作模式下TPS62730兼容低功率
  –RX低至:14.7mA(3V电源)–TX(0dBm):14.3mA(3V电源)

  (5)微控制器
  –具有代码预取功能的高性能和低功率8051微控制器内核
  –系统内可编程闪存,128或者256KB
  –在所有功率模式下具有保持功能的8KBRAM
  –支持硬件调试
  –扩展基带自动化,包括自动确认和地址解码
  –所有功率模式中对所有相关寄存器的保持

  (6)外设
  –功能强大的5通道直接内存访问(DMA)
  –通用定时器(1个16位,2个8位)
  –红外(IR)生成电路
  –具有捕捉功能的32kHz睡眠定时器
  –精确数字接收到的数字信号强度指示器(RSSI)支持
  –电池监视器和温度感应器
  –含8通道和可配置分辨率的12位模数转换器(ADC)
  –高级加密标准(AES)安全协处理器
  –2个功能强大的支持几个串行协议的通用异步接收发器(UART)
  –23个通用I/O引脚(21×4mA,2×20mA)
  –I2C接口
  –2个具有LED驱动功能的I/O引脚
  –安全装置定时器
  –集成的高性能比较器(7)开发工具
  –CC2541评估模块工具包(CC2541EMK)
  –CC2541小型开发工具包(CC2541DK-MINI)
  –SmartRF™软件
  –提供IAR嵌入式Workbench™

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-27 11:18:27 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 17:33 , Processed in 0.052600 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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