http://https://www.dosyaupload.com/1..._Code_Test.zip
Code:
/*
Hattusa Pi Detector software
*/
#include <Wire.h> // Wire kütüphanesini ekliyoruz.
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C kütüphanesini ekliyoruz.
#include <Adafruit_ADS1X15.h>
#include <EEPROM.h> /* EEPROM fonksiyonları için kütüphane dahil edilmelidir. */
LiquidCrystal_I2C lcd(0x20, 20, 4); // 16 karakter, 2 satır LCD için bağlantı adresi:0x20
Adafruit_ADS1015 ads; /* Use this for the 12-bit version */
#define Pulse 8
#define T0 3
#define T1 2
#define FerroSound 5
#define NonFerroSound 9
#define Enter 11
#define Up 12
#define Down 13
bool BluetoothConnection = false, PressOk = false;
uint8_t PulsePower, T0Delay, T1Delay, MenuSet, TsrHold, pTsrHold, EnterCounter, PressTime = 50;
uint8_t EnterSelect, UpSelect, DownSelect;
float Batery, pBatery;
long PressCount;
void setup() {
pinMode(Pulse, OUTPUT);
pinMode(T0, OUTPUT);
pinMode(T1, OUTPUT);
pinMode(FerroSound, OUTPUT);
pinMode(NonFerroSound, OUTPUT);
pinMode(Enter, INPUT);
pinMode(Up, INPUT);
pinMode(Down, INPUT);
digitalWrite(Pulse, HIGH);
BluetoothConnection = EEPROM.read(1);
if (BluetoothConnection) Serial.begin(115200); //start connection if bluetooth will be used
PulsePower = EEPROM.read(2);
if (PulsePower == 255) PulsePower = 150;
T0Delay = EEPROM.read(3);
if (T0Delay == 255) T0Delay = 50;
T1Delay = EEPROM.read(4);
if (T1Delay == 255) T1Delay = 25;
TsrHold = EEPROM.read(5);
if (TsrHold == 255) TsrHold = 50;
Interrupt3Set();
lcd.init();
lcd.backlight();
bool flipflop = false;
for (int x = 0; x < 16; x++) { //We wait for a while for the coil to energize and the signal to form, the opening menu has been added
flipflop = !flipflop;
if (flipflop) {
lcd.setCursor(0, 0);
lcd.print("HATTUSA OPENING!");
} else {
lcd.setCursor(0, 0);
lcd.print(" ");
}
lcd.setCursor(x, 1);
lcd.print(">");
Batery = BattMeasure();
delay(100);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("TSR:");
lcd.print(TsrHold);
}
void loop() {
Batery = BattMeasure();
if (Batery != pBatery) {
lcd.setCursor(10, 0);
lcd.print(Batery);
lcd.print("V ");
pBatery = Batery;
}
if (TsrHold != pTsrHold) {
lcd.setCursor(0, 0);
lcd.print("TSR:");
lcd.print(TsrHold);
pTsrHold = TsrHold;
}
/* Main Menu Functions */
ButtonControl();
if (PressOk) {
if (millis() - PressCount > 500) {
lcd.setCursor(0, 1);
lcd.print(" ");
PressOk = false;
}
}
}
void ButtonControl() {
EnterSelect = digitalRead(Enter);
UpSelect = digitalRead(Up);
DownSelect = digitalRead(Down);
/** Enter Button Function **/
if (EnterSelect == 0) {
EnterCounter = 0;
while (EnterSelect == 0) {
EnterCounter++;
EnterSelect = digitalRead(Enter);
delay(100);
}
if (EnterCounter < PressTime) {
lcd.setCursor(0, 1);
lcd.print(" G R O U N D ");
PressCount = millis();
PressOk = true;
} else {
MenuSet++;
if (MenuSet > 3) MenuSet = 0;
}
}
/* Up Button Funciton */
if (UpSelect == 0) {
if (MenuSet == 0) {
TsrHold++;
if (TsrHold > 99) TsrHold = 99;
EEPROM.write(5, TsrHold);
}
if (MenuSet == 1) {
//to be written
}
if (MenuSet == 2) {
//to be written
}
if (MenuSet == 3) {
//to be written
}
delay(200);
}
/* Down Button Funciton */
if (DownSelect == 0) {
if (MenuSet == 0) {
TsrHold--;
if (TsrHold < 1) TsrHold = 1;
EEPROM.write(5, TsrHold);
}
if (MenuSet == 1) {
//to be written
}
if (MenuSet == 2) {
//to be written
}
if (MenuSet == 3) {
//to be written
}
delay(200);
}
}
float BattMeasure() {
float bat;
int adc = analogRead(A0);
return bat = (adc * (5.0 / 1023.0)) / 0.2326; //10k /(33k +10k) =>0.2326
}
/* timer2 interrup setting */
void Interrupt3Set() { // 1000 Hz (16000000/((124+1)*128))
noInterrupts();
TCCR2A = 0;
TCCR2B = 0;
TCNT2 = 0;
OCR2A = 124;
TCCR2A |= (1 << WGM21);
TCCR2B |= (1 << CS22) | (1 << CS20);
TIMSK2 |= (1 << OCIE2A);
interrupts();
}
/* timer2 interrup function */
ISR(TIMER2_COMPA_vect) {
digitalWrite(Pulse, LOW);
delayMicroseconds(PulsePower);
digitalWrite(Pulse, HIGH);
delayMicroseconds(T0Delay);
digitalWrite(T0, HIGH);
delayMicroseconds(5);
digitalWrite(T0, LOW);
delayMicroseconds(T1Delay);
digitalWrite(T1, HIGH);
delayMicroseconds(5);
digitalWrite(T1, LOW);
}
[URL="http://https://www.dosyaupload.com/1r4hm/Hattusa_Code_Test.zip"][/URL]


Leave a comment: