资料介绍
描述
介绍
在一些项目中,有必要监测照明水平、温度、环境 pH 值、湿度和其他数量等变量。
在这个过程中,经常需要在空间/环境的不同点监测一定数量的样本。我们可以举例说明房间的照明。
根据灯具的布局,房间内某些地方的照明可能会有所不同。所以我们可以有几个亮度值。
考虑到这一点,需要开发一个系统,能够收集数据并将其存储在存储卡上。其目的是在每个分析点执行多个样本并将数据存储在SD 卡上。
为此,我们将使用Arduino和SD 卡来获取数据并存储在存储卡中。
现在,我们将介绍整个项目结构。
该项目
通过图 1 所示的电路,可以看到用于构建项目的所有设备。
通过电路,我们使用了三个LED 。每个LED代表系统的特定状态。下文将根据每个LED呈现每个功能:
- 红色 LED:用于指示内存SD 卡及其连接存在问题;
- 绿色 LED:用于指示数据采集过程完成;
- 黄色 LED:用于指示数据收集过程。
该系统的工作非常简单!在进行无效设置之前,系统会初始化SD 卡,如果未连接,系统将激活红色LED以指示设备中的SD 卡故障。用户需要连接 SD 卡并重置系统。红色 LED 如图 2 所示。
SD卡验证通过后,系统会进行初始化,一直按下按钮,系统会采集模拟A0引脚的10个值并存储在SD卡中。
此时,黄色LED将向用户发出系统正在收集数据的信息,如图 3 所示。
收集数据后,黄色LED将关闭,绿色 LED 将激活以指示过程完成,如图 4 所示。
此时,系统等待关闭或用户再次按下按钮,将存储十个以上的值。
下文将介绍用于创建此项目的所有代码。
编程的逻辑
下面给出了所有代码,但将解释代码的每个部分。在第一部分,包括所有库,项目中使用的所有引脚将定义并创建项目的所有变量。
#include
#include
File myFile;
#define RedLED 6
#define GreenLED 7
#define YellowLED 8
#define button 9
#define AnalogPin A0
int pinoSS = 10; // Pin 53 para Mega / Pin 10 para UNO
unsigned long int tempo_atual = 0; //Variable used to store the current time of code execution
unsigned long ultimo_tempo = 0; //Variable used to store the last value stored in the variable tempo_atual
int DigitalValue = 0;
byte samples = 0, value = 0; //Sample is a variable to count until 10 and value is used count the number of times that user store 10 samples
bool ButtonControl = 0, control = 0;
在设置功能中,所有使用的引脚都根据每个连接设备的功能配置为输出和输入。此后,系统将尝试初始化SD 卡。如果出现任何问题,红色LED将被激活。
void setup()
{
Serial.begin(9600); // Define BaundRate
pinMode(RedLED, OUTPUT);
pinMode(GreenLED, OUTPUT);
pinMode(YellowLED, OUTPUT);
pinMode(pinoSS, OUTPUT); // Pin pinoSS like a output
if (SD.begin())
{ // Inicializa o SD Card
Serial.println("SD Card pronto para uso."); // Imprime na tela
}
else
{
Serial.println("Falha na inicialização do SD Card.");
digitalWrite(RedLED, HIGH);
return;
}
}
因此,在循环功能中,将读取按钮的引脚。如果按下按钮,则第一个条件为真。
if(pino == 1 && control == 0 && ButtonControl == 0)
将打开文本文件 silicioslab.txt。并且会打印出消息“Sample:”,后面跟着值,表示十个样本的读数序列数。
在第一个条件下观察变量 ButtonControl 将收到值 1。该变量将用于使系统进入第二个条件。
if((ButtonControl == 1) && (tempo_atual - ultimo_tempo >= 1000) && samples < 10 && control == 1)
第二个条件将被执行,数字值将被读取并保存在SD 卡上。它将被读取 10 个值。
当读数值等于 10 时,第二个条件为假。
此时,第三个条件为真,绿色LED将被激活,文件将被关闭。
void loop()
{
bool pino = digitalRead(button);
//Condicao para detectar quando o botao e pressionado
if(pino == 1 && control == 0 && ButtonControl == 0)
{
myFile = SD.open("silicioslab.txt", FILE_WRITE); // Create/Open File the txt
delay(500);
ButtonControl = 1;
value++;
myFile.print("sample: ");
myFile.println(value);
samples = 0;
}
tempo_atual = millis();
if((ButtonControl == 1) && (tempo_atual - ultimo_tempo >= 1000) && samples < 10 && control == 1)
{
DigitalValue = analogRead(AnalogPin);
myFile.println(DigitalValue);
control = 0;
ultimo_tempo = tempo_atual;//Store the actual time
samples++;
digitalWrite(YellowLED, HIGH);
}
if(samples >= 10)
{
digitalWrite(YellowLED, LOW);
myFile.close();
ButtonControl = 0;
digitalWrite(GreenLED, HIGH);
}
control = control ^ 1;
}
此后,系统等待用户再次按下按钮。如果该按钮被按下,将再次进行新的块经常读取。
因此,该系统简单,可以在多个项目中实施,用于监测和收集数据进行分析。
我们在 Hackster 上发表的最后一篇文章
在上一篇文章中,我们介绍了如何在代码执行期间实时检测DS18B20 温度传感器中的故障。看图5的结果,通过以下链接访问:访问上一篇!
致谢
- Arduino串口数据采集
- 使用Arduino访问2个SD卡 2次下载
- 如何使用FPGA实现图像数据采集卡及其驱动设计 19次下载
- 数据采集卡HK_USB6202-SD的使用手册免费下载 18次下载
- 如何使用Arduino和LabVIEW进行多路数据采集系统的设计
- 研华数据采集/控制卡+LabVIEW ——便捷的量测与控制系统解决方案 61次下载
- 基于WINCE的多路数据采集处理播放及SD卡存储的实验系统 14次下载
- 数据采集卡概述 0次下载
- 虚拟仪器数据采集卡的驱动 125次下载
- 基于MSP430和SD卡的低功耗压力采集系统
- 基于MSP430和SD卡的低功耗压力采集系统
- 基于CVI的多通道数据采集系统
- 基于ARM的高速数据采集卡
- USB接口的数据采集卡原理图(电路图)
- 基于PCI总线的高速数据采集卡系统设计与实现
- SAR型ADC GAD7699可用于真空环境下多通道数据采集卡 579次阅读
- 如何利用Arduino UNO和SD卡制作音乐播放器 7319次阅读
- 基于单一的数据采集设备的测控系统 2554次阅读
- 可编程精密数据采集系统TC534的性能特点及实现数据采集卡的设计 851次阅读
- 基于PCI9820数据采集卡实现对GP2015输出中频GPS的数据进行采集 1437次阅读
- 沁恒股份多接口数据采集网络传输和存储介绍 1523次阅读
- 基于USB接口的数据采集系统总体结构解析 2635次阅读
- 基于PC的数据采集系统设计 5235次阅读
- 基于FPGA +AD7609的数据采集系统的实现和设计 1.2w次阅读
- 基于ARM的智能电网数据采集器设计 3816次阅读
- 数据采集方法有哪些 5.2w次阅读
- spi读取sd卡数据例程 8823次阅读
- 基于DSP和SD卡的生理信号数据采集系统设计 3558次阅读
- 基于TLC549的数据采集系统设计 6493次阅读
- 基于SOPC的数据采集与处理系统设计 1433次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多