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.
Ohmmeter_Code.cpp
- Committer:
- thomasosullivan
- Date:
- 2020-04-01
- Revision:
- 1:5aacfef29ca8
- Parent:
- 0:7f4ed364f7ea
- Child:
- 2:6077294f7007
File content as of revision 1:5aacfef29ca8:
/* hello */ //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; }