int aval1 =0;
int aval2 = 0;
int avalr = 0;
int refval = 0;
int pwm=0;
int bias=0;
int t=0;
char* str1[] = {"CHANNEL A", "CHANNEL B", "CHANNEL C"};
int lf = 0;
int rg = 0;
int st = 0;
void setup()
{
// Print a message to the LCD.
//lcd.print(str1[st]);
//lcd.print(analogRead(0));
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
digitalWrite(5,LOW);
digitalWrite(4,HIGH);
Serial.begin(9600);
bias = 40;
}
void loop()
{
st = 0;
aval1 = 0;
aval2 = 0;
digitalWrite(7,HIGH);
analogWrite(9,255);
analogWrite(10,255);
while (st < 10)
{
st++;
digitalWrite(7,HIGH);
delayMicroseconds(10);
aval1 = aval1+analogRead(0);
digitalWrite(7,LOW);
delayMicroseconds(10);
aval2 = aval2+analogRead(0);
}
//refval = analogRead(1);
refval = 20;
Serial.print(aval2-aval1);
avalr = aval2-aval1;
Serial.print("<");
Serial.print(avalr);
Serial.print(">");
if (abs(aval2-aval1)>refval)
{
digitalWrite(5,HIGH);
pwm = 50;
analogWrite(9,255);
analogWrite(10,pwm+bias);
}
else
{
digitalWrite(5,LOW);
pwm = 50;
analogWrite(9,pwm);
analogWrite(10,pwm+bias);
}
//lcd.clear();
//lcd.print(str1[0]);
//lcd.setCursor(1,1);
//lcd.print("Analog=");
//lcd.print(aval2-aval1);
//lcd.print(" : ");
//lcd.print(refval);
delay(500);
}
This is the code they sent me... It seems a little bit wrong because they defining 6 pins to output, but the schematic just shows 5 to connect to the digital ports... This code just gives me -2, -1, 0, 3... Whats wrong here? I can't figure out why this isn't working...
Then I coded this myself: (I think this is also wrong)
void setup() {
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
Serial.begin(9600);
}
void loop() {
int myInts[5];
int pin = 5;
for (int i = 0; i < 5; i++) {
digitalWrite(pin, LOW);
int var = analogRead(0);
myInts[i]=var;
pin++;
delay(100);
}
int i;
for (i = 0; i < 5; i = i + 1) {
if(myInts[i] == 843){
Serial.println("Weiss");
} else {
Serial.println("Schwarz");
}
}
Serial.println("---------------");
}