https://www.banggood.com/Assembled-DIY- ... rehouse=CN
La idea es montarlo en una caja con un LCD, arduino y demás accesorios.
Así es como ha quedado:
https://youtu.be/ELFS8ULrKrA
Este es el programa:
#include <LiquidCrystal.h> //LCD Library
volatile unsigned long C0 = 0; //contador clics
unsigned int C[5] = {0, 0, 0, 0, 0}; //array subcontadores
float minutos;
float cpm;
float media; //CPS
byte i = 0;
unsigned long willis; //millis en ese momento
LiquidCrystal lcd(12, 11, 6, 5, 4, 3);
void setup() {
pinMode(2, INPUT); //pin 2 = interrupción 0
pinMode(7, INPUT); //bajo = CPS alto = CPM
attachInterrupt(0, pulso, FALLING); //0 = pin 2
lcd.begin(20, 4);
}
void loop() {
willis = millis();
while (digitalRead(7) == HIGH) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CPM = ");
minutos = (millis() - willis) / 60000.0;
cpm = C0 / minutos;
lcd.print(cpm);
lcd.setCursor(0, 1);
lcd.print(cpm / 168.42);
lcd.print(" uSv/h");
lcd.setCursor(0, 2);
lcd.print(cpm / 1.68 , 1);
lcd.print(" urem/h");
lcd.setCursor(0, 3);
lcd.print("Tiempo = ");
lcd.print(minutos, 0);
lcd.print(" minutos");
delay(500);
}
while (digitalRead(7) == LOW) {
C0 = 0;
delay (1000);
C = C0;
media = (C[0] + C[1] + C[2] + C[3] + C[4]) / 5.0;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CPS = ");
lcd.print(media, 1);
lcd.setCursor(0, 1);
lcd.print(media / 2.81);
lcd.print(" uSv/h");
lcd.setCursor(0, 2);
lcd.print(media / 0.028 , 1);
lcd.print(" urem/h");
lcd.setCursor(0, 3);
lcd.print("Media 5 segundos");
i++;
if (i == 5) i = 0;
}
i = 0;
C[1] = 0; C[2] = 0; C[3] = 0; C[4] = 0;
}
void pulso() {
C0 ++;
}