Skip to content

Instantly share code, notes, and snippets.

@lxc-xx
Last active December 31, 2015 09:49
Show Gist options
  • Save lxc-xx/7969253 to your computer and use it in GitHub Desktop.
Save lxc-xx/7969253 to your computer and use it in GitHub Desktop.
Pedometer With Aruino
//IO output for LCD display
int _A=1;
int _B=2;
int _C=3;
int _D=4;
int _E=5;
int _F=6;
int _G=7;
int _DP=8;
/*
_B
▕▔▏ _C _A
▕▔▏ ====》 _D
▔▫ _E _G
_F _DP
*/
int NUM_SEG [ 16 ][ 7 ] = {
{ 1,1,1,0,1,1,1 },
{ 1,0,0,0,0,0,1 },
{ 1,1,0,1,1,1,0 },
{ 1,1,0,1,0,1,1 },
{ 1,0,1,1,0,0,1 },
{ 0,1,1,1,0,1,1 },
{ 0,1,1,1,1,1,1 },
{ 1,1,0,0,0,0,1 },
{ 1,1,1,1,1,1,1 },
{ 1,1,1,1,0,1,1 },
{ 1,1,1,1,1,0,1 },
{ 0,0,1,1,1,1,1 },
{ 0,1,1,0,1,1,0 },
{ 1,0,0,1,1,1,1 },
{ 0,1,1,1,1,1,0 },
{ 0,1,1,1,1,0,0 }
};
void lit( int segment )
{
digitalWrite (segment,LOW);
}
void quench ( int segment )
{
digitalWrite ( segment,HIGH );
}
void set_segment ( int segment , int sta )
{
if ( sta == 1 )
{
lit ( segment );
}
else
{
quench ( segment );
}
}
// display number :num ; if dp == 1 , display point . lasting milisecond :time.
void NumDisplay ( int num , int dp , int time)
{
time = time / 2;
for ( int t = 0 ; t < time ; t++ )
{
for ( int i = 0 ; i < 7 ; i++ )
{
set_segment ( i+1 , NUM_SEG [ num % 16 ][ i ] );
set_segment ( _DP , dp );
}
delay ( 1 );
}
}
void setup()
{
int i;
for(i=1;i<=8;i++)
pinMode(i,OUTPUT);//set 4-11 as output mode
}
void loop()
{
int num = 0;
int i = 0;
int old = 0;
int flag = 0;
while(1)
{
NumDisplay ( num , 0 , 500 );
old = i;
i=analogRead(5) / 100;
if ( i != old )
{
num ++;
}
/*
i=analogRead(5);/
if(i>200)
{
if( flag == 0 )
{
num++;//turn on led
flag = 1;
}
}
else
{
flag = 0;
}
*/
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment