From 01b895415d0c5b7916bb65bc585b6fc97f7e74be Mon Sep 17 00:00:00 2001 From: Utsav Kataria Date: Thu, 28 Mar 2024 06:26:36 +0000 Subject: [PATCH] Delete TruehemeV0.0.3.ino --- TruehemeV0.0.3.ino | 542 --------------------------------------------- 1 file changed, 542 deletions(-) delete mode 100644 TruehemeV0.0.3.ino diff --git a/TruehemeV0.0.3.ino b/TruehemeV0.0.3.ino deleted file mode 100644 index b1f66c6..0000000 --- a/TruehemeV0.0.3.ino +++ /dev/null @@ -1,542 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////TRUEHEME CODE V0.0.3/////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#include "ADS1X15.h" -#include -#include - -int LED_sequence[] = {1,2,3,4}; -int LED_dac[] = {1640,1680,2104,2088}; -String Device_ID = "SNS HCV-000-3010 SNE"; //Device ID -String Firmware_version_Auto=__FILE__; -String Firmware_version = "TruehemeV0.0.3"; -int LED_unstable_samples[] = {20,20,20,20}; -int LED_sample_size[] = {50,50,50,50}; -int LED_DS_threshold[] = {22000,22000,22000,22000}; -int LED_settling_time[] = {10000,10000,10000,10000}; -int extra_delay_per_LED =10000; -int LED_reading_delay[] = {0,0,0,0}; -int DAC_Sweep_start_limit[] = {1000,1000,1000,1000}; -int DAC_Sweep_end_limit[] = {4000,4000,4000,4000}; -int DacSweep_gain_combinations[] = {0,0,0,0}; - -int incr=8; //DAC sweep increment -int del=500; //DAC delay -int appmode=1; -int moving_average_activation=0; -int raw_ADC_print=1; -int limit_printer=1; -long limit_average_storage=0; - -int Blank_gain_combinations[] = {0,0,0,0}; -int Sample_gain_combinationsG1[] = {0,0,0,0}; -int Sample_gain_combinationsG2[] = {1,1,1,1}; -int Sample_gain_combinationsG3[] = {2,2,2,2}; -int Sample_gain_combinationsG4[] = {4,4,4,4}; -int Sample_gain_combinationsG5[] = {8,8,8,8}; - -///////////////////////////////////////////DO NOT CHANGE ANY VALUES BELOW ////////////////////////////////////////////////////////////////////////////////////////////// -const int PIN_CS_DAC1 = 10; -const int PIN_CS_DAC2 = 9; -const int GAIN_1 = 0x1; -const int GAIN_2 = 0x0; - -const int PD1G1 = 6; -const int PD1G2 = 8; -const int PD2G1 = 9; -const int PD2G2 = 7; - -const int LEDR = A0; -const int LEDB = A2; -const int LEDG = A1; - -ADS1115 ADS(0x48); -///////////////////////////////////////////DO NOT CHANGE ANY VALUES ABOVE ////////////////////////////////////////////////////////////////////////////////////////////// -const char compile_date[] = __DATE__ " " __TIME__; -int loopcounter = 0; -unsigned long long intensity_storage = 0; -int temp_counter = 0; - -float avg_storage = 0; -float avg_green = 0; -float avg_blue = 0; -float old_green = 0; -float old_blue = 0; - -int split_counter = 0; -int intensity_display = 1; -int plotter = 0; - -int moving_average_array[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -int sorting_array[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -int moving_average = 0; -int j = 0; -int temp_sort = 0; -int skip = 0; - -float average_readings = 0; -float avg_blank[]={0,0,0,0}; -float avg_sample[]={0,0,0,0}; - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void setup() -{ - Serial.begin(9600); - pinMode(PIN_CS_DAC1, OUTPUT); - pinMode(PIN_CS_DAC2, OUTPUT); - pinMode(PD1G1, OUTPUT); - pinMode(PD1G2, OUTPUT); - pinMode(PD2G1, OUTPUT); - pinMode(PD2G2, OUTPUT); - pinMode(LEDR, OUTPUT); - pinMode(LEDG, OUTPUT); - pinMode(LEDB, OUTPUT); - digitalWrite(LEDR, LOW); - digitalWrite(LEDG, HIGH); - digitalWrite(LEDB, HIGH); - SPI.begin(); - SPI.setClockDivider(SPI_CLOCK_DIV2); - ADS.begin(); - if(appmode==0) - { - Serial.print("Initial DAC Settings: "); - for (int i =0; i<4;i++) - { - Serial.print("\t");Serial.print(LED_dac[i]); - } - Serial.println(); - } - if(appmode==0) - { - Serial.print("Process: Setup End; Timestamp: ");Serial.println(millis()); - } -} -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void all_LEDs_turnoff() -{ - setOutput(GAIN_1, 0, 1); //LED 1 - setOutput(GAIN_1, 0, 2); //LED 2 - setOutput(GAIN_1, 0, 3); //LED 3 - setOutput(GAIN_1, 0, 4); //LED 4 -} -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void secondary_gain_select(int gain_combo) -{ - bool gain_choice1=bitRead(gain_combo, 0); - bool gain_choice2=bitRead(gain_combo, 1); - bool gain_choice3=bitRead(gain_combo, 2); - bool gain_choice4=bitRead(gain_combo, 3); - digitalWrite(PD1G1, gain_choice1); - digitalWrite(PD1G2, gain_choice2); - digitalWrite(PD2G1, gain_choice3); - digitalWrite(PD2G2, gain_choice4); - if(appmode==0) - { - Serial.print("Gains Used\t G1:");Serial.print(gain_choice1);Serial.print("\t G2:");Serial.print(gain_choice2);Serial.print("\t G3:");Serial.print(gain_choice3);Serial.print("\t G4:");Serial.println(gain_choice4); - } -} -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//void setOutput(byte channel, byte gain, byte shutdown, unsigned int val, int DACselect) -void setOutput(byte gain, unsigned int val, int LEDselect) -{ - byte channel=0; - byte shutdown=1; - if(LEDselect%2==0) - { - channel=1; - } - else - { - channel=0; - } - byte lowByte = val & 0xff; - byte highByte = ((val >> 8) & 0xff) | channel << 7 | gain << 5 | shutdown << 4; - if (LEDselect <= 2) - { - PORTB &= 0xfb; - SPI.transfer(highByte); - SPI.transfer(lowByte); - PORTB |= 0x4; - } - else - { - PORTB &= 0xfd; - SPI.transfer(highByte); - SPI.transfer(lowByte); - PORTB |= 0x2; - } -} -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -int setDAC_LED() -{ - int LED_flags[]={0,0,0,0}; - int flags_combined=0; - if(appmode==0) - { - Serial.println("#DAC Sweep Start"); - } - all_LEDs_turnoff(); - delay(1000); - ////////////////////////////////////////FIRST FORLOOP TO DISCARD STARTS///////////////////////////////////////////////// - for (int i=3000;i<4096;i+=incr) - { - setOutput(GAIN_1, i, 1); - delay(del); - int16_t val_0 = ADS.readADC(0); - if((val_0>24000)) - { - break; - } - } - all_LEDs_turnoff(); - delay(1000); - ////////////////////////////////////////FIRST FORLOOP TO DISCARD ENDS///////////////////////////////////////////////// - //for (int j=0;jLED_DS_threshold[j])&&(LED_flags[j]==0)) - { - LED_dac[j]=i; - LED_flags[j]=1; - break; - } - } - all_LEDs_turnoff(); - if (appmode==0) - { - Serial.print("LED ");Serial.print(j+1);Serial.print(" DACsweep Completed");Serial.print("\t");Serial.print("NEW DAC VALUE : ");Serial.println(LED_dac[j]); - } - delay(1000); - } - all_LEDs_turnoff(); - flags_combined=(LED_flags[3]*1)+(LED_flags[2]*10)+(LED_flags[1]*100)+(LED_flags[0]*1000); - if(appmode==0) - { - Serial.println("#DAC Sweep End"); - } - return flags_combined; -} -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -float detector(int unstable_samples, int number_of_readings, int detector_select, int gain_combo, int settling_time, int reading_delay) -{ - if(appmode==0) - { - Serial.print("Process: Detector Start for any one LED; Timestamp: ");Serial.println(millis()); - } - secondary_gain_select(gain_combo); - memset (moving_average_array, 0, 10); - temp_counter = 0; - skip = 0; - intensity_storage = 0; - int16_t detector_val = 0; - if (moving_average_activation==1) - { - for (int i = 0; i < unstable_samples + number_of_readings; i += 1) - { - int16_t val_0 = ADS.readADC(0); - int16_t val_1 = ADS.readADC(1); - if (detector_select == 1) - { - detector_val = val_0; - } - else - { - detector_val = val_1; - } - moving_average_array[i % 10] = detector_val; - for (int j = 0; j < 10; j++) - { - sorting_array[j] = moving_average_array[j]; - } - if (i >= unstable_samples) - { - for (int j = 0; j < 6; j++) - { - for (int k = 0; k < (9 - j); k++) - { - if (sorting_array[k] > sorting_array[k + 1]) - { - temp_sort = sorting_array[k]; - sorting_array[k] = sorting_array[k + 1]; - sorting_array[k + 1] = temp_sort; - } - } - } - moving_average = (sorting_array[4] / 2) + (sorting_array[5] / 2); - if ((detector_val > (moving_average * 0.9)) and (detector_val < (moving_average * 1.1))) - { - intensity_storage += detector_val; - temp_counter++; - } - else - { - skip++; - } - } - } - } - else - { - int start_time=millis(); - int current_time=millis(); - int lower_limit=0; - int upper_limit=0; - limit_average_storage=0; - while((current_time-start_time)