ガイガーカウンタ GC10(5)放射線量データロガー(2)
たくさん持ってるArduinoのシールドを整理してたらRTC DS1307の付いたSDカードシールドを発見しました。そういえば,以前 この中華製パチもんシールドを買った記憶があるわ。んで,このシールド向けにGC10用放射線量データロガーを組み直してみました。
// ガイガーカウンタGC10+DS1307,SD Cardシールド+Arduino で放射線量データロガー
#include <SPI.h>
#include <SD.h>
#include "RTClib.h" //https://github.com/adafruit/RTClib
RTC_DS1307 rtc;
const int chipSelect = 10;void setup() {
Serial.begin(9600);
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
while (1);
}
Serial.println("card initialized.");
rtc.begin() ;
//following line sets the RTC to the date & time this sketch was compiled
//rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}void loop() {
String cpm = "" ;
String dataString = "";
char buff[12] ;
if (Serial.available()) {
cpm="";
cpm = Serial.readStringUntil('\r');
Serial.flush();
cpm.trim(); // 改行コードを取り除く
delay(1000);
}
if (int(millis()/1000%600) == 0){ //10分(600秒)ごとに記録
DateTime now = rtc.now();
sprintf(buff, "%04u/%02u/%02u", now.year(), now.month(), now.day()) ;
dataString += String(buff);
dataString += ",";
sprintf(buff, "%02u:%02u:%02u", now.hour(), now.minute(), now.second()) ;
dataString += String(buff);
dataString += ",";
dataString += String(cpm);
dataString += ",";
dataString += String(cpm.toFloat()/165); //gms=165として,μSv/hに換算
File dataFile = SD.open("datalog.csv", FILE_WRITE);
if (dataFile) {
dataFile.println(dataString);
dataFile.close();
Serial.println(dataString);
}
}
}
| 固定リンク | 0
「Arduino」カテゴリの記事
- ATtiny402 + LM35DZ で温度計(2024.09.21)
- aitendo「ESP-32でいいの」っぽい謎ボードでLチカ(2024.04.17)
- ATtiny202 で Hello World!(2024.03.25)
- CH32V003+I2C接続のLCDでHello World !(2023.12.29)
- CH32V003F4P6 開発ボードでLチカ(2023.12.20)
「高校物理」カテゴリの記事
- 回転式誘導起電機(2025.04.07)
- ウィムズハースト起電機 を作ってみた(2025.04.03)
- 豆電球の明るさで探る「音波の定常波」(2025.02.22)
- 豆電球の明るさで共振周波数を探る(2025.01.05)
コメント