步驟1:零件
以下是我用于零件的內(nèi)容。根據(jù)我的經(jīng)驗(yàn),如果您嘗試在學(xué)習(xí)過程中遵循說明并使用不同的部件,則要困難得多。
如果您不想購買Datalogger防護(hù)罩的可堆疊排針,則可以使用類似我修改方式的方式第2步中的Datalogger防護(hù)板,以便可以將其放置在面包板上。
Datalogger防護(hù)板
可堆疊的接頭引腳
LCD顯示
用于Arduino(Uno R3)的實(shí)驗(yàn)套件
或
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引腳。
這是每個(gè)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)到超鏈接以獲取它們。好,只有一個(gè)庫尚未安裝。
LiquidCrystal-已安裝
SD-已安裝
Wire-已安裝
RTClib-這里
第5步:代碼

希望這是最后一步。該代碼應(yīng)讀取溫度傳感器和光電元件,然后在LCD上顯示值并將其保存到SD卡。如果出現(xiàn)問題,可能會(huì)在串行終端上顯示一些故障排除代碼。當(dāng)溫度更高時(shí),背光應(yīng)變成紅色,當(dāng)房間更亮?xí)r,背光應(yīng)變成藍(lán)色,如果又熱又明亮,則應(yīng)變成紫色。寒冷和黑暗應(yīng)該是黑色。
代碼非?;靵y,我留了很多行作為注釋,以防萬一我想回去添加它們。
將下面的代碼復(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ù)溫度成為選項(xiàng)。
//PhotoResistor引腳
int lightPin = 1;//未將光敏電阻連接到光敏電阻的模擬引腳校準(zhǔn)為任何單位,因此這僅僅是光傳感器的原始傳感器值(相對光)
/ int lcdRed = 3;//LED連接到的引腳
int lcdBlue = 5;//LED的引腳連接到
RTC_DS1307 RTC;//定義實(shí)時(shí)時(shí)鐘對象
//====================================== ==================
void setup(){
//設(shè)置LCD的列和行數(shù):
lcd.begin(16 ,2);結(jié)果,Serial.begin(9600);//使用copmuter
開始串行連接//要查看結(jié)果,請打開串行監(jiān)視器
//文件欄下方的最后一個(gè)按鈕(看起來像是帶有antena
pinMode(lcdRed,INPUT)的框;//將led引腳設(shè)置為輸入
pinMode(lcdBlue,INPUT);//將led引腳設(shè)置為輸入
Wire.begin();
RTC.begin();
//----------------------------------------
if(!RTC.isrunning( )){
Serial.println(“ RTC未運(yùn)行!”);
//以下行將RTC設(shè)置為該草圖的編譯日期和時(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(“錯(cuò)誤打開datalog.txt”);
//由于我們無法寫入數(shù)據(jù),請耐心等待
//而(1);
//}
//-----------------
//創(chuàng)建一個(gè)新文件
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(){《浮點(diǎn)溫度= 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);//等待第二個(gè)
//------------------------
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 =“”;
//日期時(shí)間的東西-------------- -----------------------------結(jié)果//---------------- ---------------------------------------結(jié)果//logfile.println( “” );
DateTime現(xiàn)在= RTC.now();
//日志時(shí)間
//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打?。?/p>
//為(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è)置為自動(dòng)滾動(dòng):
//lcd.autoscroll();
//從0到9打?。?/p>
//for(int thisChar = 0; thisChar 《10; thisChar ++ ){
//lcd.print(thisChar);
//delay(500);
//}
//關(guān)閉自動(dòng)滾動(dòng)功能
//lcd.noAutoscroll();
//清除下一個(gè)循環(huán)的屏幕:
//lcd.clear();
//}
//============= ========================================== 《=》浮點(diǎn)getVoltage (int pin){
return(analogRead(pin)* .004882814);//從0到1023的數(shù)字范圍轉(zhuǎn)換
//到0到5伏(每個(gè)1讀數(shù)等于?5毫伏
}
-
數(shù)據(jù)記錄儀
+關(guān)注
關(guān)注
0文章
138瀏覽量
13740
發(fā)布評論請先 登錄
行車記錄儀UKCA認(rèn)證申請
醫(yī)院專用數(shù)據(jù)記錄儀主要功能有哪些
醫(yī)院專用數(shù)據(jù)記錄儀產(chǎn)品有哪些?有何推薦?
車載 CAN-Bus 數(shù)據(jù)記錄儀
當(dāng)CCLink IE遇上DeviceNet,數(shù)據(jù)記錄儀秒變\"卷王\"?
壓力數(shù)據(jù)記錄儀功能有哪些?點(diǎn)開看看就知道
TP700多路數(shù)據(jù)記錄儀的多種應(yīng)用
從人工記錄到智能巡檢:云翎智能單北斗記錄儀如何重塑電力巡檢
濕度數(shù)據(jù)記錄儀是什么?一文為你解答
如何操作電子溫濕度記錄儀
數(shù)據(jù)記錄儀的計(jì)數(shù)原理和應(yīng)用場景
初次啟動(dòng)沖擊記錄儀時(shí)具體該如何操作?別著急,答案就在視頻教程里!#數(shù)據(jù)記錄儀 #沖擊記錄儀 #沖擊監(jiān)測
如何連接溫度探頭到數(shù)據(jù)記錄儀
無線溫度記錄儀的設(shè)計(jì)思路和應(yīng)用方案

數(shù)據(jù)記錄儀的制作圖解
評論