Étape 4: Programmation de la carte Arduino
Télécharger le code ci-dessous sur la carte Arduino, monter l’écran LCD.
Remarque : Nous utilisons un « bouclier d’eBay LCD clavier » avec brochage défini comme lcd (8, 9, 4, 5, 6, 7).
Si vous utilisez un autre LCD, vous devrez peut-être ajuster les numéros de broches de connexion LCD dans le code.
C’est le code que nous avons utilisé :
#include < LiquidCrystal.h > / / inclut la bibliothèque nécessaire
int INPIN = 2 ; impulsions d’entrée sur broche 2
int buttonPin = A0 ; bouton d’entrée sur broche A0
Innovente lcd (8, 9, 4, 5, 6, 7) ; connexions pour LCD
int OUTPIN = 3 ; impulsions de sortie sur la broche 3
volatils long int numint = 0 ; compteur d’impulsions d’entrée
int safevalue = 500 ; valeur initiale du nombre d’impulsions considérée comme sûre
void intservice(void) / / Ceci est appelé à chaque front montant d’entrée
{
Numint ++ ;
}
void setup() {}
pinMode (buttonPin, entrée) ;
pinMode (entrée, INPIN) ;
pinMode (OUTPIN, sortie) ;
digitalWrite (OUTPIN, élevé) ;
digitalWrite (INPIN, basse) ;
attachInterrupt (0, intservice, RISING) ; Fixez la routine d’interruption
LCD.Begin(8,2) ;
LCD.Clear() ;
Serial.Begin(9600) ;
}
void loop() {}
avalue int ;
lcd.setCursor (0, 0) ;
LCD.Print(Numint) ; LCD.Print("CPS") ; LCD.Print("") ; imprimer le nombre d’impulsions en impulsions par second(cps)
lcd.setCursor(0,1) ;
Avalue = analogRead(buttonPin) ; variable d’entrée du bouton
Si (120 < avalue & & avalue < 150 & & (safevalue > = 0 & & safevalue < 1000)) {safevalue = safevalue + 100 ; goto fini;} //upon en appuyant sur le bouton haut, safevalue augmente de 100 tout en inférieurs à 1000
Si (270 < avalue & & avalue < 320 & & (safevalue > 0 & & safevalue < = 1000)) {safevalue = safevalue-100;} en pressant la touche vers le bas, safevalue diminue de 100 tout en inférieurs à 1000
Si (120 < avalue & & avalue < 150 & & (safevalue > = 1000 & & safevalue < 10000)) {safevalue = safevalue + 500;} en pressant le bouton haut, safevalue augmente de 500 alors que c’est supérieur à 1000, jusqu'à 10000
Si (270 < avalue & & avalue < 320 & & (safevalue > 1000 & & safevalue < = 10000)) {safevalue = safevalue-500;} en pressant la touche vers le bas, safevalue diminue de 500 alors que c’est supérieur à 1000
finition :
LCD.Print(safevalue) ; LCD.Print("") ; imprime safevalue actuel
Numint = 0 ; zéro compteur
Delay(1000) ;
Si (numint > safevalue) {digitalWrite (OUTPIN, LOW); / / avertisseur émet un signal sonore si le comptage d’impulsions est plus élevé que ne l’autorise
Delay(10) ;
digitalWrite (OUTPIN, élevé) ;
}
else {digitalWrite (OUTPIN, HIGH);}
Serial.println(Numint) ; comptage d’impulsions impression à serial
}
Ce code des programmes l’Arduino pour compter les rayons gamma (ou autres trucs énergique qui exporte au moins quelques 20keV à la fois dans le cristal) détectés par le détecteur à scintillation, en impulsions par seconde (cps). Il envoie aussi un signal à la sonnerie (qui nous reliera à l’étape suivante) si la valeur est supérieure à un niveau sélectionné cps « sûrs ». Vous pouvez modifier la valeur sûre réglée en appuyant sur le bouton haut/bas sur le bouclier de clavier LCD. Événements également possible de contrôler un ordinateur via un moniteur série lorsque la carte Arduino est connectée au PC via un câble USB.
Remarque : Nous allons utiliser un câble USB pour alimenter l’Arduino. Si vous voulez rendre le tout portable, suivez ces instructions pour alimenter l’Arduino par une batterie, ou tout simplement acheter un soudé en ligne.