hi, there. I'm new to Arduino. I'm using Arduino to get data from optical detector and then make a graph.
From the serial monitor, I get data from 0-1024. Actually, I don't know what does it stand for.
If I want to get actual value of the detector, what should I do? Something like 123uW.
After collecting data, I use Matlab to make the graph. Can I do real-time processing?
Here is my program. Thanks in advance.
int right = 5;
int left = 6;
int ledPin = 7;
int motorPin1 = 9;
int motorPin2 = 10;
int motorPin3 = 11;
int motorPin4 = 12;
boolean motorX[4]={true,true,true,true};
boolean val = false;
boolean R_or_L =false;
int R = false;
int L = false;
int count = 0;
int speed = 200;
void setup()
{
Serial.begin(9600);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(right, OUTPUT);
pinMode(left, INPUT);
}
void loop()
{
twoHIGT();
right_or_left();
motorGo(R_or_L);
delay(speed); //delyMicroseconds(speed*0.001);
}
void right_or_left() //switch
{
R = digitalRead(right);
L = digitalRead(left);
if((R==false)&&(L==false))
R_or_L = false;
else R_or_L = true;
}
void twoHIGT()
{
if((R==true)||(L==true)){
switch (count)
{
case 0:
motorX[0]=true;
motorX[1]=true;
motorX[2]=false;
motorX[3]=false;
break;
case 1:
motorX[0]=false;
motorX[1]=true;
motorX[2]=true;
motorX[3]=false;
break;
case 2:
motorX[0]=false;
motorX[1]=false;
motorX[2]=true;
motorX[3]=true;
break;
case 3:
motorX[0]=true;
motorX[1]=false;
motorX[2]=false;
motorX[3]=true;
break;
}
if(count==3) {
digitalWrite(ledPin,HIGH);
Serial.println(analogRead(A0));
delay (200);
digitalWrite (ledPin, LOW);
count=0;
}
else{
digitalWrite(ledPin, HIGH);
Serial.println(analogRead(A0));
delay (200);
digitalWrite(ledPin, LOW);
count++;
}
}
}
void motorGo(boolean RL)
{
if((RL==true)&&(R==true)){
digitalWrite(motorPin1, motorX[0]);
digitalWrite(motorPin2, motorX[1]);
digitalWrite(motorPin3, motorX[2]);
digitalWrite(motorPin4, motorX[3]);
}
if((RL==true)&&(L==true)){
digitalWrite(motorPin4, motorX[0]);
digitalWrite(motorPin3, motorX[1]);
digitalWrite(motorPin2, motorX[2]);
digitalWrite(motorPin1, motorX[3]);
}
}