Digital Voltmeter with 7 segment display


code: [select]

/*
read me

use information @ own risk, hold no responsibility , indirect or dicrect damage arduino, hardware , software of pc, electronic devices if choose use information.

this meter can measure 5v

this meter cannot measure negative voltage , make sure connect probes battery in correct way (red probe(a0) positive side of battery , black probe(gnd) negative side of battery)

*/
int a=13;
int b=12;
int c=11;
int d=10;
int e=9;
int f=8;
int g=7;
int deci = 3;
int gnd1=6;
int gnd2=5;
int gnd3=4;
int inp=a0;

float reading;
int onedigit, tendigit, hundreddigit;

void mask(int num, int aa, int bb, int cc, int dd, int ee, int ff, int gg)
{
switch (num)
{
case 0 :
digitalwrite(aa, high);
digitalwrite(bb, high);
digitalwrite(cc, high);
digitalwrite(dd, high);
digitalwrite(ee, high);
digitalwrite(ff, high);
digitalwrite(gg, low);
break;

case 1 :
digitalwrite(aa, low);
digitalwrite(bb, high);
digitalwrite(cc, high);
digitalwrite(dd, low);
digitalwrite(ee, low);
digitalwrite(ff, low);
digitalwrite(gg, low);
break;

case 2 :
digitalwrite(aa, high);
digitalwrite(bb, high);
digitalwrite(cc, low);
digitalwrite(dd, high);
digitalwrite(ee, high);
digitalwrite(ff, low);
digitalwrite(gg, high);
break;

case 3 :
digitalwrite(aa, high);
digitalwrite(bb, high);
digitalwrite(cc, high);
digitalwrite(dd, high);
digitalwrite(ee, low);
digitalwrite(ff, low);
digitalwrite(gg, high);
break;

case 4 :
digitalwrite(aa, low);
digitalwrite(bb, high);
digitalwrite(cc, high);
digitalwrite(dd, low);
digitalwrite(ee, low);
digitalwrite(ff, high);
digitalwrite(gg, high);
break;

case 5 :
digitalwrite(aa, high);
digitalwrite(bb, low);
digitalwrite(cc, high);
digitalwrite(dd, high);
digitalwrite(ee, low);
digitalwrite(ff, high);
digitalwrite(gg, high);
break;

case 6 :
digitalwrite(aa, high);
digitalwrite(bb, low);
digitalwrite(cc, high);
digitalwrite(dd, high);
digitalwrite(ee, high);
digitalwrite(ff, high);
digitalwrite(gg, high);
break;

case 7 :
digitalwrite(aa, high);
digitalwrite(bb, high);
digitalwrite(cc, high);
digitalwrite(dd, low);
digitalwrite(ee, low);
digitalwrite(ff, low);
digitalwrite(gg, low);
break;

case 8 :
digitalwrite(aa, high);
digitalwrite(bb, high);
digitalwrite(cc, high);
digitalwrite(dd, high);
digitalwrite(ee, high);
digitalwrite(ff, high);
digitalwrite(gg, high);
break;

case 9 :
digitalwrite(aa, high);
digitalwrite(bb, high);
digitalwrite(cc, high);
digitalwrite(dd, high);
digitalwrite(ee, low);
digitalwrite(ff, high);
digitalwrite(gg, high);
break;

}
}

void setup()
{
 pinmode(a,output);
 pinmode(b,output);
 pinmode(c,output);
 pinmode(d,output);
 pinmode(e,output);
 pinmode(f,output);
 pinmode(g,output);
 pinmode(deci,output);
 pinmode(gnd1,output);
 pinmode(gnd2, output);
 pinmode(gnd3, output);
 pinmode(inp, input);
 digitalwrite(deci, high);
}
 
void loop ()
{
  float temponedigit;
  int i;
reading = (analogread(inp)*5.00/1023.00);
hundreddigit = int(reading) % 10;
tendigit = int ((reading-hundreddigit )*10) % 10;
temponedigit = int(reading * 10);
onedigit = int ((reading - float(temponedigit/10))* 100) %10;

for (i=0 ; i<20 ; i++) {
mask (onedigit, a, b, c, d, e, f, g);
digitalwrite(gnd3,low);
digitalwrite(gnd2, high);
digitalwrite(gnd1, high);
delay(5);
mask (tendigit, a, b, c, d, e, f ,g);
digitalwrite(gnd3,high);
digitalwrite(gnd2, low);
digitalwrite(gnd1, high);
delay(5);
mask (hundreddigit, a, b, c, d, e, f ,g);
digitalwrite(gnd3,high);
digitalwrite(gnd2, high);
digitalwrite(gnd1, low);
delay(5);

}

}


is there question here? if, move exhibits?
are supposed common cathode current limit resistor?
hope it's 100 ohm ever poor pin sinking current 7 leds not seeing more 40ma absolute max.

need words of intention.


Arduino Forum > Using Arduino > General Electronics > Digital Voltmeter with 7 segment display


arduino

Comments

Popular posts from this blog

opencv3, tbb and rasp pi 2 - Raspberry Pi Forums

small ethernet problem - Raspberry Pi Forums

Multithumb configuration params not working? - Joomla! Forum - community, help and support