please help i can not upload my sketch to arduino..

hi there

my self sawan, i have made a sketch for arduino but i am unable to upload it,

hardware description

arduino uno , two metal sensor , 4ch relay module but i only using three relays

please see below the sketch..

unsigned long timerStart, timerEnd = 5000;
bool sensorVal= true, previousSensorVal = true;

void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}

void loop()
{
sensorVal = digitalRead(2);
if (sensorVal != previousSensorVal)
{ // same as (sensorVal == HIGH)
previousSensorVal = sensorVal;
timerStart = millis();
}
if(sensorVal)
{if(millis() - timerStart > timerEnd)
digitalWrite(11, LOW);

digitalWrite(12, HIGH);

}
else
{if(millis() - timerStart > timerEnd)
digitalWrite(12, LOW);

digitalWrite(11, HIGH);
}
}

sensorVal = digitalRead(3);
if (sensorVal != previousSensorVal)
{ // same as (sensorVal == HIGH)
previousSensorVal = sensorVal;
timerStart = millis();
}
if(sensorVal)
{if(millis() - timerStart > timerEnd)
digitalWrite(13, LOW);

}
else
{if(millis() - timerStart > timerEnd)
digitalWrite(13, HIGH);

}
}

jaspalsinghh:
my self sawan, i have made a sketch for arduino but i am unable to upload it,

What error messages are you getting?
What version of the Arduino IDE are you using?
What PC operating system are you using?

...R

Arduino: 1.8.2 (Windows 7), Board: "Arduino/Genuino Uno"

sketch_jun06a:38: error: 'sensorVal' does not name a type

sensorVal = digitalRead(4);

^

sketch_jun06a:39: error: expected unqualified-id before 'if'

if (sensorVal != previousSensorVal)

^

sketch_jun06a:44: error: expected unqualified-id before 'if'

if(sensorVal)

^

sketch_jun06a:49: error: expected unqualified-id before 'else'

else

^

sketch_jun06a:54: error: expected declaration before '}' token

}

^

exit status 1
'sensorVal' does not name a type

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

You have an extra }

unsigned long timerStart, timerEnd = 5000;
bool sensorVal= true, previousSensorVal = true;

void setup() {
  pinMode(2, INPUT);
   pinMode(3, INPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop()
{
  sensorVal = digitalRead(2);
  if (sensorVal != previousSensorVal)
  {                               // same as (sensorVal == HIGH)
    previousSensorVal = sensorVal;
    timerStart = millis();
  }   
    if(sensorVal)
    {if(millis() - timerStart > timerEnd)
      digitalWrite(11, LOW);
      
        digitalWrite(12, HIGH);
        
    }
    else
    {if(millis() - timerStart > timerEnd)
      digitalWrite(12, LOW);
      
        digitalWrite(11, HIGH);
            }
} <<< here, so the code that follows is not part of loop()

      sensorVal = digitalRead(3);
  if (sensorVal != previousSensorVal)
  {                               // same as (sensorVal == HIGH)
    previousSensorVal = sensorVal;
    timerStart = millis();
  }   
    if(sensorVal)
    {if(millis() - timerStart > timerEnd)
      digitalWrite(13, LOW);

         }
    else
    {if(millis() - timerStart > timerEnd)
      digitalWrite(13, HIGH);
        
    }
}

SENSOR INPUT 2 WORK BUT 3 DOES NOT WORK , PIN 13 DID NOT RESPOND, PLS HELP

unsigned long timerStart, timerEnd = 5000;
bool sensorVal= true, previousSensorVal = true;

void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}

void loop()
{
sensorVal = digitalRead(2);
if (sensorVal != previousSensorVal)
{ // same as (sensorVal == HIGH)
previousSensorVal = sensorVal;
timerStart = millis();
}
if(sensorVal)
{if(millis() - timerStart > timerEnd)
digitalWrite(11, LOW);

digitalWrite(12, HIGH);

}
else
{if(millis() - timerStart > timerEnd)
digitalWrite(12, LOW);

digitalWrite(11, HIGH);
}

sensorVal = digitalRead(3);
if (sensorVal != previousSensorVal)
{ // same as (sensorVal == HIGH)
previousSensorVal = sensorVal;
timerStart = millis();
}
if(sensorVal)
{if(millis() - timerStart > timerEnd)
digitalWrite(13, LOW);

}
else
{if(millis() - timerStart > timerEnd)
digitalWrite(13, HIGH);

}
}

Try changing the sensorVal's, etc. associated with digitalRead(3)
to sensorVal1 & previousSensorVal1

Don't you want a."previous" value for each pin?
Don't you want to use code tags?
Don't you want to stop SHOUTING?

INPUT 2 WORK BUT 3 DOES NOT WORK PLEASE HELP.

INPUT 2 ENABLE PIN 11 AND 12 SIMULTANEOUSLY WITH 5 SEC DELAY

INPUT 3 DO NOT ENABLE PIN 13

unsigned long timerStart, timerEnd = 5000;
bool sensorVal= true, previousSensorVal = true;

void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}

void loop()
{
sensorVal = digitalRead(2);
if (sensorVal != previousSensorVal)
{ // same as (sensorVal == HIGH)
previousSensorVal = sensorVal;
timerStart = millis();
}
if(sensorVal)
{if(millis() - timerStart > timerEnd)
digitalWrite(11, LOW);

digitalWrite(12, HIGH);

}
else
{if(millis() - timerStart > timerEnd)
digitalWrite(12, LOW);

digitalWrite(11, HIGH);
}

sensorVal = digitalRead(3);
if (sensorVal != previousSensorVal)
{ // same as (sensorVal == HIGH)
previousSensorVal = sensorVal;
timerStart = millis();
}
if(sensorVal)
{if(millis() - timerStart > timerEnd)
digitalWrite(13, LOW);

}
else
{if(millis() - timerStart > timerEnd)
digitalWrite(13, HIGH);

}
}

You have two separate pins, each needs its own state variables:

Use an array for this sort of common code:

byte sensorPins[] = { 2, 3 };

bool sensorValue [2] ;
bool previousSensorValue [2];
unsigned long timerStart[2] ;
void loop()
{
  for (byte i = 0 ; i < 2 ; i++)
  {
    sensorValue[i] = digitalRead (sensorPin [i]) ;
    if (sensorValue[i] != previousSensorValue[i])
    {
      previousSensorValue[i] = sensorValue[i] ;
      timerStart [i] = millis();
    }
  }

  if (sensorValue[0])
  {
    if(millis() - timerStart[0] > timerEnd)
      digitalWrite(11, LOW);
     
    digitalWrite(12, HIGH);   
  }
  else
  {
    if(millis() - timerStart[0] > timerEnd)
      digitalWrite(12, LOW);
     
    digitalWrite(11, HIGH);
  }

  if (sensorValue[1])
  {
    if(millis() - timerStart[1] > timerEnd)
      digitalWrite(13, LOW);
  }
  else
  {
    if(millis() - timerStart[1] > timerEnd)
      digitalWrite(13, HIGH);
  }
}

Since the two sensors have a different number of output pins to control that wasn't
easy to common up so I didn't. Also you should flag when each timer is active with a
boolean as the timer for each sensor should only be active once after a change.

PS: indent your code properly if you want it to be readable, and no need TO SHOUT IN THE SUBJECT LINE

Why have you started a new thread on the same topic?
Why have you ignored the advice already given?
Why are you still not using code tags?
Why are you still SHOUTING?

jaspalsinghh:
sketch_jun06a:38: error: 'sensorVal' does not name a type

sensorVal = digitalRead(4);

For future reference this is a problem compiling the program and not a problem uploading it. The Arduino will not try uploading a program unless it can compile it without errors.

...R

please refer to the error at the end of the sketch whilke uploading

byte sensorPins[] = { 2, 3 };

bool sensorValue [2] ;
bool previousSensorValue [2];
unsigned long timerStart[2] ;
void loop()
{
for (byte i = 0 ; i < 2 ; i++)
{
sensorValue = digitalRead (sensorPin ) ;
if (sensorValue != previousSensorValue*)*
* {*
previousSensorValue = sensorValue ;
_ timerStart = millis();
* }
}
if (sensorValue[0])
{
if(millis() - timerStart[0] > timerEnd)
digitalWrite(11, LOW);*_

* digitalWrite(12, HIGH); *
* }*
* else*
* {*
* if(millis() - timerStart[0] > timerEnd)*
* digitalWrite(12, LOW);*

* digitalWrite(11, HIGH);*
* }*
* if (sensorValue[1])*
* {*
* if(millis() - timerStart[1] > timerEnd)*
* digitalWrite(13, LOW);*
* }*
* else*
* {*
* if(millis() - timerStart[1] > timerEnd)*
* digitalWrite(13, HIGH);*
* }*
}
exit status 1
'sensorPin' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

need this before setup()

byte sensorPin = a number from 2 to 19;

or use this
sensorValue = digitalRead (sensorPins[0] ) ; // or [1]
if you are trying to read from D2 or D3.

jaspalsinghh:
please refer to the error at the end of the sketch whilke uploading

You don't seem to have read Reply #10

...R

dear sir ,

i have red through #10 but did not understood please help.

i think it would be better if i explain in simple language that whati actually i want from arduino uno.

i have got two metal sensor

and four channel relay module

the signal wire of both sensors has been put to d2 and d4 . (d2 sensor# 1 and d4 sensor# 2)

and i only using three relays out of four, has been put to d11 , d12 and d13 .

functionality as per below.

when metal comes in front of sensor #1 the d11 should high other wise(in case metal not there) d12 need to be high.

when metal comes in front of sensor#2 the d13 should high other wise it need to be stay on low.

thats what i really want...

thank you sir,

in simple i would like to add one more sensor to pin #4 with same functionality for pinmode13 output.

my current sketch is given below please edit it for me thank you.

unsigned long timerStart, timerEnd = 5000;
bool sensorVal= true, previousSensorVal = true;

void setup() {
pinMode(2, INPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
}

void loop()
{
sensorVal = digitalRead(2);
if (sensorVal != previousSensorVal)
{ // same as (sensorVal == HIGH)
previousSensorVal = sensorVal;
timerStart = millis();
}
if(sensorVal)
{if(millis() - timerStart > timerEnd)
digitalWrite(11, LOW);

digitalWrite(12, HIGH);
}
else
{if(millis() - timerStart > timerEnd)
digitalWrite(12, LOW);

digitalWrite(11, HIGH);
}
}

dear experts please help.

in simple i would like to add one more sensor to pin #4 with same functionality for pinmode13 output.

my current sketch is given below please edit it for me thank you.

unsigned long timerStart, timerEnd = 5000;
bool sensorVal= true, previousSensorVal = true;

void setup() {
pinMode(2, INPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
}

void loop()
{
sensorVal = digitalRead(2);
if (sensorVal != previousSensorVal)
{ // same as (sensorVal == HIGH)
previousSensorVal = sensorVal;
timerStart = millis();
}
if(sensorVal)
{if(millis() - timerStart > timerEnd)
digitalWrite(11, LOW);

digitalWrite(12, HIGH);
}
else
{if(millis() - timerStart > timerEnd)
digitalWrite(12, LOW);

digitalWrite(11, HIGH);
}
}

How many versions of this same sketch are you up to now?
And you're still not used code tags

unsigned long timerStart, timerEnd = 5000;
bool sensorVal= true, previousSensorVal = true;

void setup() {
  pinMode(4, INPUT);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
}

void loop()
{
  sensorVal = digitalRead(4);
  if (sensorVal != previousSensorVal)
  {                               // same as (sensorVal == HIGH)
    previousSensorVal = sensorVal;
    timerStart = millis();
  }   
    if(sensorVal)
    {if(millis() - timerStart > timerEnd)
      digitalWrite(13, LOW);
     
        digitalWrite(12, HIGH);
    }
    else
    {if(millis() - timerStart > timerEnd)
      digitalWrite(12, LOW);
     
        digitalWrite(13, HIGH);
    }
}

(deleted)

am sorry sir,

what does mean by code tags.

i want to use both sensor together.

likke you have removed pinmode11 from my program so how come the both sensor work out?