ガイガーカウンタ GC10(3)放射線量データロガー
ガイガーカウンター GC10をSDカードシールドを載せたArduinoにつないで,放射線量を10分おきに24時間記録(2020/03/17 17:30~2020/03/18 17:50)してみました@岐阜市。
RTCモジュールDS3231も乗っけて,時刻・CPM値・μSv値の3つをSDカードに書き込むことにします。
スケッチはこちら
/*
* GC10+SDカードシールド付Arduino+RTCモジュール で放射線量データロガー
*/#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include <RtcDS3231.h>
RtcDS3231<TwoWire>
Rtc(Wire);
const int chipSelect = 4;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.");
Wire.begin();
Rtc.Begin() ;
// DS3231の日時を「それなりの値」に設定する場合に、以下の2行をコメントアウト
// RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__) ;
// Rtc.SetDateTime(compiled) ;
}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分ごとに記録
RtcDateTime dt = Rtc.GetDateTime() ;
sprintf(buff, " %02u:%02u:%02u", dt.Hour(), dt.Minute(), dt.Second()) ;
dataString += String(buff);
dataString += ",";
dataString += String(cpm);
dataString += ",";
dataString += String(cpm.toFloat()/165); //gms=165として,μSvに換算
File dataFile = SD.open("datalog.csv", FILE_WRITE);
if (dataFile) {
dataFile.println(dataString);
dataFile.close();
Serial.println(dataString);
}
}
}
SDカードに記録された datalog.csv をExcelで開いてグラフを作るとこんな感じ↓ です。GC10 Monitor風にしてみました(^^)
| 固定リンク | 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)
コメント