Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: Ohmmeter_Code.cpp
- 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