步驟1:零件
以下是我用于零件的內(nèi)容。根據(jù)我的經(jīng)驗,如果您嘗試在學(xué)習(xí)過程中遵循說明并使用不同的部件,則要困難得多。
如果您不想購買Datalogger防護(hù)罩的可堆疊排針,則可以使用類似我修改方式的方式第2步中的Datalogger防護(hù)板,以便可以將其放置在面包板上。
Datalogger防護(hù)板
可堆疊的接頭引腳
LCD顯示
用于Arduino(Uno R3)的實驗套件
或
Arduino Uno
光電池
步驟2:修改數(shù)據(jù)記錄器
如果數(shù)據(jù)記錄器上具有可堆疊的標(biāo)頭引腳,則跳過此步驟。這些是SD卡工作所需的引腳。您可以將電線焊接到板上或按照我的圖片進(jìn)行操作。
3v,5v,Gnd,A4,A5、13、12、11、10。
步驟3:接線圖
這是我的數(shù)據(jù)記錄器的接線圖。就像使用可堆疊的插頭引腳一樣繪制。但是也記錄了數(shù)據(jù)記錄器使用的arduino引腳。
這是每個LCD引腳用于我的代碼工作的表。
LCD引腳對應(yīng)于它下面的Arduino引腳。
1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17 ,18,lcd
g,+ 5,pt,7,g,8,9,4,4,2,+ 5,G 5,arduino最后改變
步驟4 :庫
為使下一步工作,您需要在Arduino文件夾中添加一些庫。轉(zhuǎn)到超鏈接以獲取它們。好,只有一個庫尚未安裝。
LiquidCrystal-已安裝
SD-已安裝
Wire-已安裝
RTClib-這里
第5步:代碼
希望這是最后一步。該代碼應(yīng)讀取溫度傳感器和光電元件,然后在LCD上顯示值并將其保存到SD卡。如果出現(xiàn)問題,可能會在串行終端上顯示一些故障排除代碼。當(dāng)溫度更高時,背光應(yīng)變成紅色,當(dāng)房間更亮?xí)r,背光應(yīng)變成藍(lán)色,如果又熱又明亮,則應(yīng)變成紫色。寒冷和黑暗應(yīng)該是黑色。
代碼非常混亂,我留了很多行作為注釋,以防萬一我想回去添加它們。
將下面的代碼復(fù)制到草圖中以使用
//包括庫代碼:
#include
#包括
#include
#include“ RTClib.h”
const int chipSelect = 10;
//文件dataFile;
文件日志文件;
//用接口引腳的編號初始化庫
LiquidCrystal lcd(7,8,9,4,4,2,6);
//TMP36引腳變量
int temperaturePin = 0;//TMP36的Vout(感測)引腳連接到的模擬引腳的分辨率為10 mV/攝氏度(500 mV偏移),以使負(fù)溫度成為選項。
//PhotoResistor引腳
int lightPin = 1;//未將光敏電阻連接到光敏電阻的模擬引腳校準(zhǔn)為任何單位,因此這僅僅是光傳感器的原始傳感器值(相對光)
/ int lcdRed = 3;//LED連接到的引腳
int lcdBlue = 5;//LED的引腳連接到
RTC_DS1307 RTC;//定義實時時鐘對象
//====================================== ==================
void setup(){
//設(shè)置LCD的列和行數(shù):
lcd.begin(16 ,2);結(jié)果,Serial.begin(9600);//使用copmuter
開始串行連接//要查看結(jié)果,請打開串行監(jiān)視器
//文件欄下方的最后一個按鈕(看起來像是帶有antena
pinMode(lcdRed,INPUT)的框;//將led引腳設(shè)置為輸入
pinMode(lcdBlue,INPUT);//將led引腳設(shè)置為輸入
Wire.begin();
RTC.begin();
//----------------------------------------
if(!RTC.isrunning( )){
Serial.println(“ RTC未運行!”);
//以下行將RTC設(shè)置為該草圖的編譯日期和時間
RTC.adjust(DateTime(__ DATE__,__TIME__ ));
}
//-------------------------------
Serial.print( “正在初始化SD卡。..”);
//確保即使不使用默認(rèn)芯片選擇引腳也設(shè)置為
//輸出:
pinMode(SS,OUTPUT );
//查看卡是否存在并且可以初始化:
if(!SD.begin(chipSelect)){
Serial.println(“卡失敗或不存在” );
//不做任何其他操作:
while(1);
}
Serial.println(“ card initia lized。“);
//打開我們要登錄的文件!
//dataFile = SD.open(” datalog.txt“,F(xiàn)ILE_WRITE);
//如果(! dataFile){
//Serial.println(“錯誤打開datalog.txt”);
//由于我們無法寫入數(shù)據(jù),請耐心等待
//而(1);
//}
//-----------------
//創(chuàng)建一個新文件
char filename [] =“ LOGGER00.CSV”;
for(uint8_t i = 0; i 《100; i ++){
filename [6] = i/10 +‘0’;
filename [7] = i%10 +‘0’;
如果(!SD .exists(filename)){
//僅打開不存在的新文件
logfile = SD.open(filename,F(xiàn)ILE_WRITE);
break;//退出循環(huán)!
}
}
Serial.print(“登錄到:”);
Serial.println(文件名);
logfile.println(“ ,,, Willy ,Reen“);
logfile.println(”數(shù)據(jù)記錄文件“);
logfile.println(” Date,Temp(F),Light“);
}
//=== ================================================== ==== void loop(){《浮點溫度= getVoltage(temperaturePin);//從溫度傳感器獲取電壓讀數(shù)
temperature =((temperature-.5)* 100)* 1.8 + 32;//從每度10 mv轉(zhuǎn)換為500 mV偏移量
//轉(zhuǎn)換為度((揮發(fā)-500mV)乘以100)
//Serial.println(temperature);//打印結(jié)果
//delay(500);//等待第二個
//------------------------
int lightLevel = AnalogRead(lightPin);//讀取
lightLevel = map(lightLevel,0,900,0,150);//將值0到900調(diào)整為0到255
lightLevel = constrain(lightLevel,0,150);//確保該值介于0和255之間
//////
int tempLevel = AnalogRead(temperaturePin)* 100;//讀取
tempLevel = map(tempLevel,66,82,0,150);//將值0到900調(diào)整為0到255
tempLevel = constrain(tempLevel,0,150);//確保該值介于0和255之間
analogWrite(lcdBlue,lightLevel);//寫入值
analogWrite(lcdRed,tempLevel);//寫入值
//---------------------------------------- -------------------
String dataString =“”;
//日期時間的東西-------------- -----------------------------結(jié)果//---------------- ---------------------------------------結(jié)果//logfile.println( “” );
DateTime現(xiàn)在= RTC.now();
//日志時間
//logfile.print(now.unixtime());//自1970年1月1日以來的秒數(shù)
//logfile.print(“,”);
logfile.print(‘“’);
logfile.print(now.year(),DEC) ;
logfile.print(“/”);
logfile.print(now.month(),DEC);
logfile.print(“/”);
logfile.print(now。 day(),DEC);
logfile.print(“”);
logfile.print(now.hour(),DEC);
logfile.print(“:”);
日志文件.print(now.minute(),DEC);
logfile.print(“:”);
logfile.print(now.second(),DEC);
logfile.print(‘“’ );結(jié)果,logfile.print( “ ”);//搜索結(jié)果logfile.print(溫度);結(jié)果,logfile.print(“,”);結(jié)果,logfile.print(lightLevel) ;
delay(500);
//----------------
/*
//讀取傳感器并追加到字符串:
for(int AnalogPin = 0; AnalogPin 《2; AnalogPin ++){
int sensor = AnalogRead(analogPin);
dataString + = String(sensor);
if(analogPin 《1){
dataString + =“,”;
}
}
*/
//dataFile.println(dataString);
logfile.println(dataString);
//Serial.println (dataString);
//dataFile.flush();
logfile.flush();
//- -------------------------------------------------- -------
//將光標(biāo)設(shè)置為(0,0):
lcd.setCursor(0,0);
//從0到9打印:
//為(int thisChar = 0; thisChar 《10; thisChar ++){
lcd.print(溫度);
//lcd.print(myString);
lcd.setCursor(0,1);
lcd.print(lightLevel);
lcd.setCursor(8,0);
lcd.print(“ Temp”);//在LCD上顯示溫度
lcd.setCursor(8,1);
lcd.print(“ Light”);//在LCD上顯示光
delay(500);
//--------------------- LCD背光
//lightLevel = constrain(lightLevel,0,255);//確保
//值介于
//0和255
之間}
//---------------------------------------------- --------------
//將光標(biāo)設(shè)置為(16,1):
//lcd.setCursor(16,1);
//將顯示設(shè)置為自動滾動:
//lcd.autoscroll();
//從0到9打印:
//for(int thisChar = 0; thisChar 《10; thisChar ++ ){
//lcd.print(thisChar);
//delay(500);
//}
//關(guān)閉自動滾動功能
//lcd.noAutoscroll();
//清除下一個循環(huán)的屏幕:
//lcd.clear();
//}
//============= ========================================== 《=》浮點getVoltage (int pin){
return(analogRead(pin)* .004882814);//從0到1023的數(shù)字范圍轉(zhuǎn)換
//到0到5伏(每個1讀數(shù)等于?5毫伏
}
-
數(shù)據(jù)記錄儀
+關(guān)注
關(guān)注
0文章
135瀏覽量
13569
發(fā)布評論請先 登錄
當(dāng)CCLink IE遇上DeviceNet,數(shù)據(jù)記錄儀秒變\"卷王\"?
壓力數(shù)據(jù)記錄儀功能有哪些?點開看看就知道
TP700多路數(shù)據(jù)記錄儀的多種應(yīng)用
零風(fēng)險:云翎智能單北斗記錄儀如何助力巡檢數(shù)據(jù)成為法律鐵證?

從人工記錄到智能巡檢:云翎智能單北斗記錄儀如何重塑電力巡檢

濕度數(shù)據(jù)記錄儀是什么?一文為你解答
如何操作電子溫濕度記錄儀

數(shù)據(jù)記錄儀的計數(shù)原理和應(yīng)用場景

初次啟動沖擊記錄儀時具體該如何操作?別著急,答案就在視頻教程里!#數(shù)據(jù)記錄儀 #沖擊記錄儀 #沖擊監(jiān)測
如何連接溫度探頭到數(shù)據(jù)記錄儀
無線溫度記錄儀的設(shè)計思路和應(yīng)用方案

精準(zhǔn)記錄,高效分析:單北斗現(xiàn)場記錄儀在各行各業(yè)的應(yīng)用

行車記錄儀CCC認(rèn)證的必要性分析

干貨分享 數(shù)據(jù)記錄儀自動測量與記錄加速度:振動,顛簸,沖擊和定位

評論