Advertisement
ScienceGeyser

Auto Range OD Setup

Jun 29th, 2023 (edited)
967
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Auto Range OD Setup
  2. //
  3. #define R1_LED 2
  4. #define R2_LED 3
  5. #define SENSE_INPUT A0
  6. #define REF_V 5 // Default Reference Voltage for Uno R3
  7. #define READ_DELAY 250 // microseconds quiet time before analogRead
  8. int analogVal = 0;
  9. int gainVal = 1;
  10. float analogVoltage = 0;
  11.  
  12. void setup(){
  13.   Serial.begin(115200);
  14.   pinMode(LED_BUILTIN, OUTPUT);
  15.   pinMode(R1_LED, INPUT); // Puts pin in HI-Z mode
  16.   pinMode(R2_LED, INPUT); // Puts pin in HI-Z mode
  17. }
  18.  
  19. void loop(){
  20.   pinMode(R2_LED, INPUT); // Puts pin in HI-Z mode
  21.   pinMode(R1_LED, OUTPUT);// Puts pin in LOW state and turns on LED at low current
  22.   gainVal = 1;
  23.   delayMicroseconds(READ_DELAY);
  24.   analogVal=analogRead(SENSE_INPUT);
  25.   if(analogVal<100){
  26.     pinMode(R1_LED, INPUT); // Puts pin in HI-Z mode
  27.     pinMode(R2_LED, OUTPUT);// Puts pin in LOW state and turns on LED at high current
  28.     gainVal = 5;
  29.     delayMicroseconds(READ_DELAY);
  30.     analogVal=analogRead(SENSE_INPUT);
  31.   }
  32.   analogVoltage=analogVal*(REF_V/1023);
  33.   Serial.print(analogVal);
  34.   Serial.print(", ");
  35.   Serial.println(gainVal);
  36. }
  37.  
  38. bool cycleTime1(bool setVal, unsigned long valMicros){
  39.   if(setVal){ // initialize
  40.     // initialize
  41.     tStart = micros();
  42.     return false
  43.   }else{ // run
  44.     // run
  45.     if(micros()-valMicros>tStart){
  46.       return true;
  47.     }else{
  48.       return false;
  49.     }
  50.   }
  51. }
  52.  
  53. void exitation(bool state, int intensity){
  54.   switch(intensity){
  55.     case 1:
  56.     pinMode(R2_LED, INPUT); // Puts pin in HI-Z mode
  57.     pinMode(R1_LED, OUTPUT);// Puts pin in LOW state
  58.     digitalWrite(R1_LED, LOW);// Ensures LOW state on pin
  59.     break;
  60.     case 2:
  61.     pinMode(R1_LED, INPUT); // Puts pin in HI-Z mode
  62.     pinMode(R2_LED, OUTPUT);// Puts pin in LOW state
  63.     digitalWrite(R2_LED, LOW);// Ensures LOW state on pin
  64.     break;
  65.     case 3:
  66.     pinMode(R1_LED, OUTPUT);// Puts pin in LOW state
  67.     pinMode(R2_LED, OUTPUT);// Puts pin in LOW state
  68.     digitalWrite(R1_LED, LOW);// Ensures LOW state on pin
  69.     digitalWrite(R2_LED, LOW);// Ensures LOW state on pin
  70.     break;
  71.     default:
  72.     pinMode(R1_LED, INPUT); // Puts pin in HI-Z mode
  73.     pinMode(R2_LED, INPUT); // Puts pin in HI-Z mode
  74.     break;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement