Hey all, little project i've been working on today. The code is pasted bellow. (Its pretty self explanitory).
(Im using an arduino UNO with this project.)
// Arduino MultiMeter. (This serves no real purpose, its just a bit of fun).
// Coded By Alex Richman.
// (I havn't commented on any of the code, but i've explained the wiring bellow.
// should you want to try it out).
// Wiring Explanation:
// LED Display:
// The LED display is simply 10 LEDs in a line. The Display(); Function
// Controls Them. So if the voltage mesured was 5000 MilliVolts It Would Light
// 5 LEDs. (Its Rounded, So 4499 is 4 LEDs, and 4500 is 5).
// The pins for the LEDs are:
// LED 1: DigitalPin 2.
// LED 2: DigitalPin 3.
// LED 3: DigitalPin 4.
// LED 4: DigitalPin 5.
// LED 5: DigitalPin 6.
// LED 6: DigitalPin 7.
// LED 7: DigitalPin 8.
// LED 8: DigitalPin 9.
// LED 9: DigitalPin 10.
// LED 10: DigitalPin 11.
// Other pins used:
// DigitalPin 12: Buzzer Power.
// DigitalPin 13: General light to show the board is on.
// AnalogPin 3: Input for continuity test.
// AnalogPin 4: Input for 6-10 volt read. (Important Note Bellow).
// AnalogPin 5: Input for 0-5 volt read.
// Notes:
// The 6-10 volt read consists of a voltage devider (I Used 2x 4.7k) so that
// a 6-10 volt input is reduced to 0-5. (So the board dosn't fry).
// The continuity tester is just a open connection from +5 to AnalogPin 3.
// (The user closes the connected with whatever they are testing).
int inByte;
int sIn;
int showByte;
int disByte;
int var;
int var1;
int var2;
int var3;
int var4;
int var5;
int var6;
int var7;
int var8;
int var9;
int var10;
int disVar;
int avgvar;
int LoadNumber = 0;
int i;
int raw = 0;
int Vin = 5;
float Vout = 0;
float R1 = 10;
float R2 = 0;
float buffer = 0;
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(A3, INPUT);
analogWrite(A5, HIGH);
digitalWrite(13, HIGH);
}
void loop() {
Main();
}
void Menu5() {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(A0, LOW);
digitalWrite(A1, LOW);
SerialClear();
inByte = 0;
showByte = 0;
var = 0;
var1 = 0;
var2 = 0;
var3 = 0;
var4 = 0;
var5 = 0;
var6 = 0;
var7 = 0;
var8 = 0;
var9 = 0;
var10 = 0;
disVar =0;
avgvar = 0;
sIn = 0;
Serial.println("Arduino MultiMeter.");
Serial.println("Coded By Alex Richman.");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println("Put Test Voltage + To Pins 1-5, And - To Ground.");
Serial.println(" ");
Serial.println("Enter A To Take A Voltage Reading.");
Serial.println("Enter B To Take An Average Voltage Reading Over 10 Seconds.");
Serial.println("Enter C To Take An Active Voltage Reading.");
Serial.println("Enter M To Return To The Main Menu.");
Load5();
}
void Load5() {
LoadNumber = LoadNumber + 1;
inByte = 0;
showByte = 0;
var = 0;
var1 = 0;
var2 = 0;
var3 = 0;
var4 = 0;
var5 = 0;
var6 = 0;
var7 = 0;
var8 = 0;
var9 = 0;
var10 = 0;
disVar =0;
sIn = 0;
avgvar = 0;
sIn = Serial.read();
if (sIn == 'A') {
Read5();
}
if (sIn == 'B') {
Avg5();
}
if (sIn == 'C') {
SerialClear();
Active5();
}
if (sIn == 'M') {
Main();
}
if (LoadNumber == 1) {
LoadDis1();
}
if (LoadNumber == 2) {
LoadDis2();
}
if (LoadNumber == 3) {
LoadDis3();
}
if (LoadNumber > 3) {
LoadNumber = 0;
}
Load5();
}
void Read5() {
SerialClear();
inByte = analogRead(A5);
var = map (inByte, 0, 1023, 0, 5000);
showByte = var;
Serial.println("MilliVolts:");
Display();
Serial.println(showByte, DEC);
showByte = showByte / 1000;
Serial.println("Volts:");
Serial.print(showByte, DEC);
Serial.print(".");
showByte = showByte * 1000;
var = var - showByte;
Serial.print(var, DEC);
Serial.println(" ");
Serial.println("-");
Serial.println(" ");
Serial.println("Enter T To Return To The Menu.");
if (Serial.available() > 0) {
while (Serial.read() != 'T');
}
SerialClear(); Menu5();
}
void SerialClear() {
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
}