From f2db27cfcd4c6a649e7ac797a21e20366eeec57d Mon Sep 17 00:00:00 2001 From: Utsav Kataria Date: Thu, 28 Mar 2024 06:26:44 +0000 Subject: [PATCH] Delete HPOS-V0.ino --- HPOS-V0.ino | 616 ---------------------------------------------------- 1 file changed, 616 deletions(-) delete mode 100644 HPOS-V0.ino diff --git a/HPOS-V0.ino b/HPOS-V0.ino deleted file mode 100644 index 3d53c0d..0000000 --- a/HPOS-V0.ino +++ /dev/null @@ -1,616 +0,0 @@ -#include "ADS1X15.h" -#include -#include -//BLOOD -//DEV_7 -//int LED1_dac = 406; -//int LED2_dac = 160; -//int LED3_dac = 218; -//int LED4_dac = 248; - -//DEV_8 -//int LED1_dac = 340; -//int LED2_dac = 144; -//int LED3_dac = 502; -//int LED4_dac = 190; - -//DEV_7 -int LED1_dac = 3096; -int LED2_dac = 1900; -int LED3_dac = 3532; -int LED4_dac = 3980; - -int LED1_unstable_samples = 20; -int LED2_unstable_samples = 20; -int LED3_unstable_samples = 20; -int LED4_unstable_samples = 20; -int LED1_sample_size = 50; -int LED2_sample_size = 50; -int LED3_sample_size = 50; -int LED4_sample_size = 50; - -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); - -int loopcounter = 0; -unsigned long long intensity_storage = 0; -int temp_counter = 0; - -//long long data_storage=0; -float avg_storage = 0; -float avg_green = 0; -float avg_blue = 0; -float old_green = 0; -float old_blue = 0; -int flag = 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 unstable_samples = 20; -int number_of_readings = 50; -int skip = 0; - -float average_readings = 0; -float avg_LED1B = 0; -float avg_LED2B = 0; -float avg_LED3B = 0; -float avg_LED4B = 0; -float avg_LED1S = 0; -float avg_LED2S = 0; -float avg_LED3S = 0; -float avg_LED4S = 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(); -} - -void setOutput(byte channel, byte gain, byte shutdown, unsigned int val, int DACselect) -{ - byte lowByte = val & 0xff; - byte highByte = ((val >> 8) & 0xff) | channel << 7 | gain << 5 | shutdown << 4; - if (DACselect == 1) - { - PORTB &= 0xfb; - SPI.transfer(highByte); - SPI.transfer(lowByte); - PORTB |= 0x4; - } - else - { - PORTB &= 0xfd; - SPI.transfer(highByte); - SPI.transfer(lowByte); - PORTB |= 0x2; - } -} - -float detector(int unstable_samples, int number_of_readings, int detector_select, int PD1G1_gain_set, int PD1G2_gain_set, int PD2G1_gain_set, int PD2G2_gain_set) -{ - if (PD1G1_gain_set == 0) - { - digitalWrite(PD1G1, LOW); - } - else - { - digitalWrite(PD1G1, HIGH); - } - if (PD1G2_gain_set == 0) - { - digitalWrite(PD1G2, LOW); - } - else - { - digitalWrite(PD1G2, HIGH); - } - if (PD2G1_gain_set == 0) - { - digitalWrite(PD2G1, LOW); - } - else - { - digitalWrite(PD2G1, HIGH); - } - if (PD2G2_gain_set == 0) - { - digitalWrite(PD2G2, LOW); - } - else - { - digitalWrite(PD2G2, HIGH); - } - memset (moving_average_array, 0, 10); - temp_counter = 0; - skip = 0; - intensity_storage = 0; - int16_t detector_val = 0; - 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); - int16_t val_2 = ADS.readADC(2); - int16_t val_3 = ADS.readADC(3); - 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++; - } - } - if (intensity_display == 1) - { - } - } - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - average_readings = intensity_storage / temp_counter; - return average_readings; -} - -void loop() -{ - ADS.setGain(0); - loopcounter = 0; - avg_storage = 0; - split_counter = 0; - if (Serial.available()) { - char data = Serial.read(); - - if (data == 'B') { - - startTask1(); - } - - else if (data == 'S') { - startTask2(); - } - - else if (data == 'P') { //Check if the received character is 1 - Serial.print("RESULT"); Serial.println(" "); Serial.print("LB1 "); Serial.println(avg_LED1B); Serial.print("LB2 "); Serial.println(avg_LED2B); - Serial.print("LB3 "); Serial.println(avg_LED3B); Serial.print("LB4 "); Serial.println(avg_LED4B); - Serial.print("LS1 "); Serial.println(avg_LED1S); Serial.print("LS2 "); Serial.println(avg_LED2S); Serial.print("LS3 "); Serial.println(avg_LED3S); - Serial.print("LS4 "); Serial.println(avg_LED4S); Serial.println("REND"); - - delay(100); - } - - else if (data == 'D') { //Check if the received character is 1 - startTask3(); - } - - else if (data == 'C') { //Check if the received character is 1 - startTask4(); - } - - else if (data == 'I') { //Check if the received character is 1 - Serial.println("SNS HCV-000-3008 SNE"); - } - } -} - - - - -void startTask1() { - Serial.println("#BS"); - digitalWrite(LEDB, HIGH); - digitalWrite(LEDR, HIGH); - digitalWrite(LEDG, LOW); - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - delay(100); - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - //Serial.println("LED1 is ON"); - setOutput(0, GAIN_1, 1, LED1_dac, 1); - delay(100); - avg_LED1B = detector(LED1_unstable_samples, LED1_sample_size, 1, 0, 0, 0, 0); - //Serial.print("Average LED1 intensity :"); Serial.println(avg_LED1); - delay(1000); - - - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - setOutput(1, GAIN_1, 1, LED2_dac, 1); - delay(100); - avg_LED2B = detector(LED2_unstable_samples, LED2_sample_size, 1, 0, 0, 0, 0); - //Serial.print("Average LED2 intensity :"); Serial.println(avg_LED2); - delay(1000); - - - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - - setOutput(0, GAIN_1, 1, LED3_dac, 2); - delay(100); - avg_LED3B = detector(LED3_unstable_samples, LED3_sample_size, 1, 1, 0, 0, 0); - //Serial.print("Average LED3 intensity :"); Serial.println(avg_LED3); - delay(1000); - - - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - setOutput(1, GAIN_1, 1, LED4_dac, 2); - delay(100); - avg_LED4B = detector(LED4_unstable_samples, LED4_sample_size, 1, 0, 0, 0, 0); - //Serial.print("Average LED4 intensity :"); Serial.println(avg_LED4); - - delay(100); - - // Serial.print("LED1B : "); Serial.print(avg_LED1B); Serial.print("\t"); Serial.print("LED2B : "); Serial.print(avg_LED2B); Serial.print("\t"); Serial.print("LED3B : "); Serial.print(avg_LED3B); Serial.print("\t"); Serial.print("LED4B : "); Serial.println(avg_LED4B); - digitalWrite(LEDG, HIGH); - digitalWrite(LEDB, LOW); - digitalWrite(LEDR, HIGH); - Serial.println("#BC"); -} - - - -void startTask2() { - Serial.println("#SS"); - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - delay(100); - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - digitalWrite(LEDB, HIGH); - digitalWrite(LEDG, LOW); - digitalWrite(LEDR, HIGH); - // digitalWrite(LED1, HIGH); - // digitalWrite(LED2, LOW); - // digitalWrite(LED3, LOW); - // digitalWrite(LED4, LOW); - //Serial.println("LED1 is ON"); - setOutput(0, GAIN_1, 1, LED1_dac, 1); - delay(100); - avg_LED1S = detector(LED1_unstable_samples, LED1_sample_size, 1, 0, 0, 0, 0); - // Serial.print("Average LED1 intensity :"); Serial.println(avg_LED1); - delay(1000); - - - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - setOutput(1, GAIN_1, 1, LED2_dac, 1); - delay(100); - avg_LED2S = detector(LED2_unstable_samples, LED2_sample_size, 1, 0, 0, 0, 0); - //Serial.print("Average LED2 intensity :"); Serial.println(avg_LED2); - delay(1000); - - - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, LED3_dac, 2); - delay(100); - avg_LED3S = detector(LED3_unstable_samples, LED3_sample_size, 1, 1, 0, 0, 0); - // Serial.print("Average LED3 intensity :"); Serial.println(avg_LED3); - delay(1000); - - - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - // digitalWrite(LED1, LOW); - // digitalWrite(LED2, LOW); - // digitalWrite(LED3, LOW); - // digitalWrite(LED4, HIGH); - //Serial.println("LED4 is ON"); - setOutput(1, GAIN_1, 1, LED4_dac, 2); - delay(100); - avg_LED4S = detector(LED4_unstable_samples, LED4_sample_size, 1, 0, 0, 0, 0); - //Serial.print("Average LED4 intensity :"); Serial.println(avg_LED4); - - delay(100); - - //Serial.print("LED1S : "); Serial.print(avg_LED1S); Serial.print("\t"); Serial.print("LED2S : "); Serial.print(avg_LED2S); Serial.print("\t"); Serial.print("LED3S : "); Serial.print(avg_LED3S); Serial.print("\t"); Serial.print("LED4S : "); Serial.println(avg_LED4S); - digitalWrite(LEDG, HIGH); - digitalWrite(LEDR, LOW); - digitalWrite(LEDB, HIGH); - Serial.println("#SC"); -} - -void startTask3() { - - ADS.setGain(0); - loopcounter = 0; - avg_storage = 0; - split_counter = 0; - - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - Serial.println("LED1 is ON"); - delay(1000); - for (int i = 100; i < 1200; i += 300) - { - setOutput(0, GAIN_1, 1, i, 1); - delay(50); - int16_t val_0 = ADS.readADC(0); - Serial.print(val_0); Serial.print("__"); Serial.println(i); - - } - //setOutput(0, GAIN_1, 1, LED1_dac, 1); - //delay(100); - //avg_LED1=detector(LED1_unstable_samples, LED1_sample_size, 1, 0, 0, 0, 0); - //Serial.print("Average LED1 intensity :");Serial.println(avg_LED1); - delay(1000); - - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - Serial.println("LED2 is ON"); - delay(1000); - for (int i = 100; i < 1200; i += 300) - { - setOutput(1, GAIN_1, 1, i, 1); - delay(50); - int16_t val_0 = ADS.readADC(0); - Serial.print(val_0); Serial.print("__"); Serial.println(i); - - } - //setOutput(1, GAIN_1, 1, LED2_dac, 1); - //delay(100); - //avg_LED2=detector(LED2_unstable_samples, LED2_sample_size, 1, 0, 0, 0, 0); - //Serial.print("Average LED2 intensity :");Serial.println(avg_LED2); - delay(1000); - - - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - Serial.println("LED3 is ON"); - delay(1000); - for (int i = 100; i < 1200; i += 300) - { - setOutput(0, GAIN_1, 1, i, 2); - delay(50); - int16_t val_0 = ADS.readADC(0); - Serial.print(val_0); Serial.print("__"); Serial.println(i); - - } - //setOutput(0, GAIN_1, 1, LED3_dac, 2); - //delay(100); - //avg_LED3=detector(LED3_unstable_samples, LED3_sample_size, 1, 0, 0, 0, 0); - //Serial.print("Average LED3 intensity :");Serial.println(avg_LED3); - delay(1000); - - - - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - Serial.println("LED4 is ON"); - delay(1000); - for (int i = 100; i < 1200; i += 300) - { - setOutput(1, GAIN_1, 1, i, 2); - delay(50); - int16_t val_0 = ADS.readADC(0); - Serial.print(val_0); Serial.print("__"); Serial.println(i); - - } - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); -} -void startTask4() { - - ADS.setGain(0); - loopcounter = 0; - avg_storage = 0; - split_counter = 0; - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - delay(100); - flag = 0; - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - delay(1000); - Serial.println("LED1 is ON"); - for (int i = 0; i < 500; i += 2) - { - setOutput(0, GAIN_1, 1, i, 1); - delay(500); - int16_t val_0 = ADS.readADC(0); - Serial.print(val_0); Serial.print("__"); Serial.println(i); - if ((val_0 > 22000) && (flag == 0)) - { - LED1_dac = i; - flag = 1; - } - } - setOutput(0, GAIN_1, 1, LED1_dac, 1); -// delay(100); -// avg_LED1=detector(LED1_unstable_samples, LED1_sample_size, 1, 1, 0, 0, 0); -// Serial.print("Average LED1 intensity :");Serial.println(avg_LED1); -// delay(1000); - - - flag = 0; - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - delay(1000); - Serial.println("LED2 is ON"); - for (int i = 0; i < 500; i += 2) - { - setOutput(1, GAIN_1, 1, i, 1); - delay(500); - int16_t val_0 = ADS.readADC(0); - Serial.print(val_0); Serial.print("__"); Serial.println(i); - if ((val_0 > 22000) && (flag == 0)) - { - LED2_dac = i; - flag = 1; - } - } - //setOutput(1, GAIN_1, 1, LED2_dac, 1); - //delay(100); - //avg_LED2=detector(LED2_unstable_samples, LED2_sample_size, 1, 0, 0, 0, 0); - //Serial.print("Average LED2 intensity :");Serial.println(avg_LED2); - delay(1000); - - - flag = 0; - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - delay(1000); - Serial.println("LED3 is ON"); - digitalWrite(PD1G1, HIGH); - for (int i = 100; i < 700; i += 2) - { - setOutput(0, GAIN_1, 1, i, 2); - delay(500); - int16_t val_0 = ADS.readADC(0); - Serial.print(val_0); Serial.print("__"); Serial.println(i); - if ((val_0 > 22000) && (flag == 0)) - { - LED3_dac = i; - flag = 1; - } - } - setOutput(0, GAIN_1, 1, LED3_dac, 2); - delay(100); -// avg_LED3=detector(LED3_unstable_samples, LED3_sample_size, 1, 1, 0, 0, 0); -// Serial.print("Average LED3 intensity :");Serial.println(avg_LED3); - delay(1000); - digitalWrite(PD1G1, LOW); - - - flag = 0; - setOutput(1, GAIN_1, 1, 0, 1); - setOutput(0, GAIN_1, 1, 0, 1); - setOutput(1, GAIN_1, 1, 0, 2); - setOutput(0, GAIN_1, 1, 0, 2); - delay(1000); - Serial.println("LED4 is ON"); - for (int i = 0; i < 500; i += 2) - { - setOutput(1, GAIN_1, 1, i, 2); - delay(500); - int16_t val_0 = ADS.readADC(0); - Serial.print(val_0); Serial.print("__"); Serial.println(i); - if ((val_0 > 22000) && (flag == 0)) - { - LED4_dac = i; - flag = 1; - } - } - // setOutput(1, GAIN_1, 1, LED4_dac, 2); - //delay(100); - //avg_LED4=detector(LED4_unstable_samples, LED4_sample_size, 1, 0, 0, 0, 0); - //Serial.print("Average LED4 intensity :");Serial.println(avg_LED4); - - delay(1000); - Serial.print("LED1 DAC :"); Serial.print(LED1_dac); Serial.print("\t"); Serial.print("LED2 DAC :"); Serial.print(LED2_dac); Serial.print("\t"); Serial.print("LED3 DAC :"); Serial.print(LED3_dac); Serial.print("\t"); Serial.print("LED4 DAC :"); Serial.println(LED4_dac); - delay(5000); -}