/ Freq_Meter
Revision:
0:7f4ed364f7ea
Child:
1:5aacfef29ca8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Ohmmeter_Code.cpp	Wed Apr 01 19:16:59 2020 +0000
@@ -0,0 +1,114 @@
+/*
+
+
+*/
+//Case x:
+
+lcd.locate(0,0);
+lcd.printf("Resistance: "); //display on top line
+
+DigitalOut 100ohm(D6) = 0; //Transistor connected to 100ohm resistor set to short circuit
+DigitalOut 1kohm(D7) = 1; //All others set to open circuit      
+DigitalOut 10kohm(D8) = 1;
+DigitalOut 100kohm(D9) = 1;
+DigitalOut 1Mohm(D10) = 1;
+DigitalOut 10Mohm(D11) = 1;
+
+AnalogIn vo(A0);
+
+double vout = (3.3 * vo)/ 4095;
+
+double rest;
+
+double vt;
+
+rest = (vout * 100) / (3.3 - vout);
+
+switch (rest)
+{
+    case 550: 
+    vt = 0.0647875;
+    runknown = (vout * 100) / (3.3 - vt - vout);
+    if (runknown < 10){
+        lcd.printf("Out of Range");
+    }
+    else{
+        lcd.locate(0,1);
+        lcd.printf("%u Ω", runknown);
+        }
+        break;
+        
+    case 5500:
+    vt = 0.0189; 
+    100ohm = 1;
+    1kohm = 0;
+    vout = (3.3 * vo)/ 4095;
+    runknown = (vout * 1000) / (3.3 - vt - vout); 
+    lcd.locate(0,1);
+    if (runknown < 1000){
+        lcd.printf("%u Ω", runknown);
+    }
+    else {
+        runknown = runknown / 1000;
+        lcd.printf("%.2f kΩ", runknown);
+        break;
+        
+    case 55000:
+    vt = 0.0075148;
+    100ohm = 1;
+    10kohm = 0;
+    vout = (3.3 * vo)/ 4095; 
+    runknown = (vout * 10000) / (3.3 - vt - vout);
+    lcd.locate(0,1);
+    runknown = runknown / 1000;
+    lcd.printf("%.2f kΩ", runknown);
+        break;
+        
+    case 550000: 
+    vt = 0.00612;
+    100ohm = 1;
+    100kohm = 0;
+    vout = (3.3 * vo)/ 4095;
+    runknown = (vout * 100000) / (3.3 - vt - vout);
+    
+    lcd.locate(0,1);
+    
+    if (runknown < 1000000){
+        runknown = runknown / 1000;
+        lcd.printf("%.2f kΩ", runknown);
+        }
+    else {
+        runknown = runknown / 1000000;
+        lcd.printf("%.2f MΩ", runknown);
+        break;
+        
+    case 5500000: 
+    vt = 0.0059684;
+    100ohm = 1;
+    1Mohm = 0;
+    vout = (3.3 * vo)/ 4095;
+    runknown = (vout * 1000000) / (3.3 - vt - vout);
+    
+    lcd.locate(0,1);
+    runknown = runknown / 1000000;
+    lcd.printf("%.2f MΩ", runknown);
+        break;
+        
+    case 10000000:
+    vt = 0.0059526; 
+    100ohm = 1;
+    10Mohm = 0;
+    vout = (3.3 * vo)/ 4095;
+    runknown = (vout * 10000000) / (3.3 - vt - vout);
+    
+    lcd.locate(0,1);
+    runknown = runknown / 1000000;
+    lcd.printf("%.2f MΩ", runknown);
+        break;
+        
+    default:
+    lcd.locate(0,1);
+    lcd.printf("Out of Range");
+    break;
+    
+}    
\ No newline at end of file