You are on page 1of 5

#include <SoftwareSerial.

h>
#include <Streaming.h>
#define DEBUG 1
int
bool
unsigned int
unsigned int
bool

lcdA=0,lcdB=0,lcdC=0,lcdD=0;
lcd1,lcd2,lcd3,lcd4,lcd5,lcd6,lcd7,lcd8,lcd9;
SAn, SBn, SCn, SDn;
SA[9], SB[9], SC[9], SD[9];
A[9], B[9], C[9], D[9];

//calculate weight
int getDigit(int d)
{
// d=0,1,2,3
int i = 2*d+0;
int j = 2*d+1;
if ( A[i]
if (!A[i]
if (!A[i]
if (!A[i]
if ( A[i]
if ( A[i]
if ( A[i]
if (!A[i]
if ( A[i]
if ( A[i]
return 0;

&& A[j] && !B[i] && B[j] && C[i] && C[j] && D[i]) return 0; //ok
&& !A[j] && !B[i] && B[j] && !C[i] && C[j] && !D[i]) return 1; //ok
&& A[j] && B[i] && B[j] && C[i] && !C[j] && D[i]) return 2; //ok
&& A[j] && B[i] && B[j] && !C[i] && C[j] && D[i]) return 3; //ok
&& !A[j] && B[i] && B[j] && !C[i] && C[j] && !D[i]) return 4; //ok
&& A[j] && B[i] && !B[j] && !C[i] && C[j] && D[i]) return 5; //ok
&& A[j] && B[i] && !B[j] && C[i] && C[j] && D[i]) return 6; //ok
&& A[j] && !B[i] && B[j] && !C[i] && C[j] && !D[i]) return 7; //ok
&& A[j] && B[i] && B[j] && C[i] && C[j] && D[i]) return 8; //ok
&& A[j] && B[i] && B[j] && !C[i] && C[j] && D[i]) return 9; //ok

}
void setup() {
Serial.begin(57600);
}

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

void loop() {
lcdA = analogRead(1);
lcdB = analogRead(2);
lcdC = analogRead(3);
lcdD = analogRead(4);
inisiasi

//define i as 0..8
SAn = SBn = SCn = SDn = 0;
for (int i=0; i<9; i++)
SA[i] = SB[i] = SC[i] = SD[i] = 0;
int i=0;
//run while backplanes are active
while (lcdA!=0 || lcdB!=0 || lcdC!=0 || lcdD!=0) {
lcdA
lcdB
lcdC
lcdD

=
=
=
=

analogRead(1);
analogRead(2);
analogRead(3);
analogRead(4);

lcd1
lcd2
lcd3
lcd4
lcd5
lcd6
lcd7
lcd8
lcd9

=
=
=
=
=
=
=
=
=

digitalRead(3);
digitalRead(4);
digitalRead(5);
digitalRead(6);
digitalRead(7);
digitalRead(8);
digitalRead(9);
digitalRead(10);
digitalRead(11);

if (lcdA==0)
{
SA[0] +=
SA[1] +=
SA[2] +=
SA[3] +=
open in browser PRO version

lcd1;
lcd2;
lcd3;
lcd4;

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

SA[3] +=
SA[4] +=
SA[5] +=
SA[6] +=
SA[7] +=
SA[8] +=
SAn++;
}
if (lcdB==0)
{
SB[0] +=
SB[1] +=
SB[2] +=
SB[3] +=
SB[4] +=
SB[5] +=
SB[6] +=
SB[7] +=
SB[8] +=
SBn++;
}
if (lcdC==0)
{
SC[0] +=
SC[1] +=
SC[2] +=
SC[3] +=
SC[4] +=
SC[5] +=
SC[6] +=
SC[7] +=
SC[8] +=
SCn++;
}
if (lcdD==0)
{
SD[0] +=
SD[1] +=
open in browser PRO version

lcd4;
lcd5;
lcd6;
lcd7;
lcd8;
lcd9;

lcd1;
lcd2;
lcd3;
lcd4;
lcd5;
lcd6;
lcd7;
lcd8;
lcd9;

lcd1;
lcd2;
lcd3;
lcd4;
lcd5;
lcd6;
lcd7;
lcd8;
lcd9;

lcd1;
lcd2;

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

SD[2] +=
SD[3] +=
SD[4] +=
SD[5] +=
SD[6] +=
SD[7] +=
SD[8] +=
SDn++;

lcd3;
lcd4;
lcd5;
lcd6;
lcd7;
lcd8;
lcd9;

}
i++;
if (lcdA==0 && lcdB==0 && lcdC==0 && lcdD==0 && lcd9==0 &&
(SA[0]+SA[1]+SA[2]+SA[3]+SA[4]+SA[5]+SA[6]+SA[7]+SA[8]>0)) {
for (int
{
A[i]
B[i]
C[i]
D[i]
}

i=0;i<9;i++)
=
=
=
=

(1.0
(1.0
(1.0
(1.0

*
*
*
*

SA[i]
SB[i]
SC[i]
SD[i]

/
/
/
/

#if DEBUG
Serial << "A ";
for (int i=0;i<9;i++)
Serial << " - ";
Serial << "B ";
for (int i=0;i<9;i++)
Serial << " - ";
Serial << "C ";
for (int i=0;i<9;i++)
Serial << " - ";
Serial << "D ";
for (int i=0;i<9;i++)
Serial.print("\n");
open in browser PRO version

SAn
SBn
SCn
SDn

>0.5);
>0.5);
>0.5);
>0.5);

Serial << (A[i]?"1":"0");


Serial << (B[i]?"1":"0");
Serial << (C[i]?"1":"0");
Serial << (D[i]?"1":"0");

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Serial.print("\n");
#endif
// decoding
float weight = 100.0*getDigit(0) + 10.0*getDigit(1) + 1.0*getDigit(2) + 0.1*getDigit(3);
#if DEBUG
Serial << "Weight is " << weight << " kg" << endl;
#endif
} //end of if
} //end of while
delay(200);
} //end of void loop

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

You might also like