Paso 4: Programación de la placa Arduino
Añadir el siguiente código a la placa Arduino, Monte la pantalla LCD.
Nota: Estamos usando un "escudo de eBay LCD teclado" con pines definidos como lcd (8, 9, 4, 5, 6, 7).
Si usas otro LCD, puede que necesite ajustar los números de pin de conexión de LCD en el código.
Este es el código que utilizamos:
#include < LiquidCrystal.h > / / incluye biblioteca necesaria
int INPIN = 2; entrada pulsos en el pin 2
int buttonPin = A0; botón de entrada en el pin A0
LiquidCrystal lcd (8, 9, 4, 5, 6, 7); conexiones para LCD
int OUTPIN = 3; salida pulsos en el pin 3
numint volátiles int largo = 0; contador de pulsos de entrada
int safevalue = 500; valor inicial del número de pulsos considerados seguro
void intservice(void) / / esto es llamado para cada flanco ascendente entrada
{
numint ++;
}
void setup() {}
pinMode (buttonPin, entrada);
pinMode (INPIN, entrada);
pinMode (OUTPIN, salida);
digitalWrite (OUTPIN, alto);
digitalWrite (INPIN, LOW);
attachInterrupt (0, intservice, RISING); colocar la rutina de interrupción
LCD.Begin(8,2);
LCD.Clear();
Serial.Begin(9600);
}
void loop() {}
int valor;
lcd.setCursor (0, 0);
LCD.Print(numint); LCD.Print("CPS"); LCD.Print(""); Imprimir número de pulsos en cuentas por second(cps)
lcd.setCursor(0,1);
valor = analogRead(buttonPin); variable de entrada pulsador
Si (120 < valor & & valor < 150 & & (safevalue > = 0 & & safevalue < 1000)) {safevalue = safevalue + 100; goto acabar;} //upon presionando el botón de arriba, safevalue aumenta por 100 mientras que inferior a 1000
Si (270 < valor & & valor < 320 & & (safevalue > 0 & & safevalue < = 1000)) {safevalue = safevalue-100;} al presionar el botón de abajo, safevalue disminuye por 100 mientras que inferior a 1000
Si (120 < valor & & valor < 150 & & (safevalue > = 1000 & & safevalue < 10000)) {safevalue = safevalue + 500;} al presionar el botón de arriba, safevalue aumenta en 500, mientras que más de 1000 hasta 10000
Si (270 < valor & & valor < 320 & & (safevalue > 1000 & & safevalue < = 10000)) {safevalue = safevalue-500;} al presionar el botón de abajo, safevalue disminuye por 500 y superiores a 1000
final:
LCD.Print(safevalue); LCD.Print(""); safevalue actual de impresiones
numint = 0; contador de cero
Delay(1000);
Si (numint > safevalue) {digitalWrite (OUTPIN, LOW); / / el zumbador emite un pitido si el número de impulsos es mayor que el permitido
Delay(10);
digitalWrite (OUTPIN, alto);
}
Else {digitalWrite (OUTPIN, alto);}
Serial.println(numint); contador de impulsos impresos en serie
}
Estos programas de código Arduino para contar los rayos gamma (u otras cosas enérgico que al menos algunos 20keV las descargas a la vez en el cristal) detectaron por el detector de centelleo, en cuentas por segundo (cps). También enviará una señal a la alarma (que conectará en el paso siguiente) si el valor es superior a un nivel seleccionado cps "seguro". Puede cambiar el valor predefinido de seguro pulsando el botón arriba/abajo en el teclado LCD. Eventos también pueden ser monitoreados un un ordenador a través de un monitor serial cuando la placa Arduino está conectada a la PC mediante un cable USB.
Nota: Utilizaremos un cable USB para alimentar el Arduino. Si usted quiere hacer todo portátil, siga estas instrucciones para alimentar el Arduino de una batería, o simplemente comprar un soldado en línea.