Pages: 1 [2]   Go Down
Author Topic: New to Arduino  (Read 1041 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thank you for your help! I really appreciate it.

I want to run 42 Leds in 4 different rows. 1 - 12, 13 -24, 25 - 36, 37 - 42 and as a Led lights up I want to take a picture.
The thing is, that I want to control the shutter time in every row. 1 second, 1/2 second, 1/4 second and 1/10 second for example.

And the loop should run only once!

Thank you.

S
Logged

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 601
Posts: 48543
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
And the loop should run only once!
Loop will run millions of times. If you want code executed only once, don't put it in loop(). Put it in setup().

Quote
I want to run 42 Leds in 4 different rows.
LEDs don't run. Try using some terms that make sense.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have this code. This works fine.
But I am trying to control the camera shutter  of the camera for every row with a different length.

While one led lights up, the shutter should open and than be closed.

* _42fertig_rot.ino (0.52 KB - downloaded 13 times.)
Logged

East Anglia (UK)
Offline Offline
Faraday Member
**
Karma: 109
Posts: 4057
May all of your blinks be without delay()
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This is what you want:
Code:
  for (int thisPin1 = 1;  thisPin1 < 13; thisPin1++)
  {
     pinMode(thisPin1, OUTPUT);
  }
  for (int thisPin2 = 13; thisPin2 < 25; thisPin2++) 
  {
     pinMode(thisPin2, OUTPUT);
  }
  for (int thisPin3 = 24; thisPin3 < 38; thisPin3++) 
  {
     pinMode(thisPin3, OUTPUT);
  }
  for (int thisPin4 = 37; thisPin4 < 43; thisPin4++) 
  {
     pinMode(thisPin4, OUTPUT);
  }

Now, what is the loop() function supposed to do? The nested loops there are probably wrong, too.
or even
Code:
  for (int thisPin = 1;  thisPin < 43; thisPin++)
  {
     pinMode(thisPin, OUTPUT);
  }
which also avoids the overlaps in the limits of the for loops.   
What's the point of setting the mode of a pin twice ?  smiley-cool
Logged

Please do not send me PMs asking for help.  Post in the forum then everyone will benefit from seeing the questions and answers.

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 601
Posts: 48543
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Perhaps when you put each { and each } on new lines, where they belong, I'll look at that code.

Perhaps when you put the code to be executed once in setup() where it belongs, I'll look at the code.

Perhaps when you stop saying "this code doesn't work" and explain what is actually does, what you want it to do, and how those two are different, I'll look at the code.

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

One code works fine.

With this the 42 leds light up one after the other and the camera takes a picture.

Now I am trying to control the shutter at each row (4).

But I do not get it, as you see.

Thanks,

S




* sketch_feb12b.ino (1.44 KB - downloaded 9 times.)
Logged

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 601
Posts: 48543
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
But I do not get it, as you see.
Yes, I see.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes. Thats very obvious.

Now I got it. I guess.

The only problem I still could not solve is that the shutter of the camera does not close. Problaby something is wrong with the wires.

Anyway, thanks for your help.

S

* sketch_feb12c.ino (1.19 KB - downloaded 9 times.)
Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 290
Posts: 25761
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
The only problem I still could not solve is that the shutter of the camera does not close
The words "shutter" and "camera" appear nowhere in your code, so I'm afraid you'll have to sort that one yourself.
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

East Anglia (UK)
Offline Offline
Faraday Member
**
Karma: 109
Posts: 4057
May all of your blinks be without delay()
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If I understand what the OP has said so far he wants the LEDs attached to pins 1 to 42 to turn on one after the other with a delay between them.  There is some mechanism to cause a camera shutter to open and close each time every fourth LED turns on, but that mechanism does not form part of the sketch that has been posted.  Each time the shutter opens it should remain open for an ever increasing length of time.

superschnitzel  - have I described what you want to do correctly ?  Is the Arduino controlling the opening and closing of the shutter and, if so, how ?

Logged

Please do not send me PMs asking for help.  Post in the forum then everyone will benefit from seeing the questions and answers.

Global Moderator
Offline Offline
Brattain Member
*****
Karma: 474
Posts: 18696
Lua rocks!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

This is the latest version from above, formatted:

Code:
int timer = 2000;           
int i = 1;

void setup()
{   
  pinMode(51, OUTPUT);
  pinMode(52, OUTPUT);
  pinMode(53, OUTPUT);
  {   
    digitalWrite(52, HIGH);
    delay(5000);
    digitalWrite(52, LOW);
  }
  {   
    for (int thisPin1 = 1;  thisPin1 < 13; thisPin1++)
    {   
      pinMode(thisPin1, OUTPUT);
      digitalWrite(thisPin1, HIGH);
      digitalWrite(51, HIGH);
      delay(1000);
      digitalWrite(51, LOW);
      delay(timer);
      digitalWrite(thisPin1, LOW);
    }
    for (int thisPin2 = 13; thisPin2 < 25; thisPin2++) 
    {   
      pinMode(thisPin2, OUTPUT);
      digitalWrite(thisPin2, HIGH);
      digitalWrite(51, HIGH);
      delay(500);
      digitalWrite(51, LOW);
      delay(timer);
      digitalWrite(thisPin2, LOW);
    }
    for (int thisPin3 = 24; thisPin3 < 38; thisPin3++) 
    {   
      pinMode(thisPin3, OUTPUT);
      digitalWrite(thisPin3, HIGH);
      digitalWrite(51, HIGH);
      delay(250);
      digitalWrite(51, LOW);
      delay(timer);
      digitalWrite(thisPin3, LOW);


    }
    for (int thisPin4 = 37; thisPin4 < 43; thisPin4++) 
    {   
      pinMode(thisPin4, OUTPUT);
      digitalWrite(thisPin4, HIGH);
      digitalWrite(51, HIGH);
      delay(100);
      digitalWrite(51, LOW);
      delay(timer);
      digitalWrite(thisPin4, LOW);
    }
  }
}



void loop(){
}

This is just a jumble of numbers. Is pin 51 the shutter? If so, how about saying so?


Code:
const byte shutterPin = 51;

...

   for (int thisPin1 = 1;  thisPin1 < 13; thisPin1++)
    {   
      pinMode(thisPin1, OUTPUT);
      digitalWrite(thisPin1, HIGH);
      digitalWrite(shutterPin, HIGH);
      delay(1000);
      digitalWrite(shutterPin, LOW);
      delay(timer);
      digitalWrite(thisPin1, LOW);
    }


And what are 13, 25, 24, 38, 37, 43? Meaningful names will help you and help us.
Logged

Pages: 1 [2]   Go Up
Jump to: