-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReceiver.ino
64 lines (57 loc) · 1.3 KB
/
Receiver.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
Author : Mohamad Nur Fitri bin Abd Halim
Title : Arduino Receiver LiFi Code
*/
const int selangmasa=10;
int a[7];
unsigned long mili =millis();
int huruf=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(1200);
}
void loop()
{
char ayat[100]={0};
int j=0;
if(digitalRead(0)==LOW)
{
for (int i=0;i<7;i++)
{
mili=millis();
while((digitalRead(0)!=LOW)&&(i!=7))
if (millis()-mili>3*selangmasa)
{
i=7;
Serial.println(" ") ;
//ni utk tunggu isyarat seterusnya
}
delay(2*selangmasa);
a[i]=!digitalRead(0);
delay(2*selangmasa);
// Serial.println(a[i]);
j++;
}
//delay(4*selangmasa); // nak skip enter
int m=decimal(a);
// Serial.println("nilai binari");
// Serial.println(m);
char l= char(m);
//Serial.println("Simbol");
Serial.print(l);
//Serial.println("Simbol tamat ");
}
}
/////////function definition untuk tukar array binary kepada integer
int decimal(int c[])
{
int i, j=0 , decimal=0, temp;
for(i=6;i>=0;i--)
{
temp=c[i];
for(int m=0;m<j;m++) temp=temp*2; //kuasakan sebanyak j kali, j ialah kedudukan digit dari kanan
decimal=decimal +temp;
j++;
}
return decimal;
}