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

int inPin = 7;      // the number of the input pin
int reading;        // the current reading from the input pin
int previous = LOW;    // the previous reading from the input pin
int count=0; //number of times button was pressed
const int LedPin = 13;
const int LedPin2 = 12;
const int LedPin3 = 11;
const int LedPin4 = 10;
const int LedPin5 = 9;
const int LedPinG1 = 6;
const int LedPinG2 = 5;
const int LedPinG3 = 4;
const int LedPinG4 = 3;

// the follow variables are long's because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long time = 0;      // the last time the output pin was toggled
long debounce = 200;   // the debounce time, increase if the output flickers

void setup()
{
  pinMode(inPin, INPUT);
  pinMode(LedPin, OUTPUT);
  pinMode(LedPin2, OUTPUT);
  pinMode(LedPin3, OUTPUT);
  pinMode(LedPin4, OUTPUT);
  pinMode(LedPin5, OUTPUT);
  pinMode(LedPinG1, OUTPUT);
  pinMode(LedPinG2, OUTPUT);
  pinMode(LedPinG3, OUTPUT);
  pinMode(LedPinG4, OUTPUT);
}

void loop()
{
  reading = digitalRead(inPin);

  // if we just pressed the button (i.e. the input went from LOW to HIGH),
  // and we've waited long enough since the last press to ignore any noise... 
  if (reading == HIGH && previous == LOW && millis() - time > debounce) {
    //increment count
    count++;

    // ... and remember when the last button press was
    time = millis();   
  }
  previous = reading;
if (count==0)
{
  digitalWrite(LedPin, LOW);
  digitalWrite(LedPin2, LOW);
  digitalWrite(LedPin3, LOW);
  digitalWrite(LedPin4, LOW);
  digitalWrite(LedPin5, LOW);
  digitalWrite(LedPinG1, LOW);
digitalWrite(LedPinG2, LOW);
digitalWrite(LedPinG3, LOW);
digitalWrite(LedPinG4, LOW);
}
if (count==1)
{
digitalWrite(LedPin, HIGH);
digitalWrite(LedPin2, HIGH);
digitalWrite(LedPin3, HIGH);
digitalWrite(LedPin4, HIGH);
digitalWrite(LedPin5, HIGH);
digitalWrite(LedPinG1, LOW);
digitalWrite(LedPinG2, LOW);
digitalWrite(LedPinG3, LOW);
digitalWrite(LedPinG4, LOW);
}
if (count==2)
{
  digitalWrite(LedPin, HIGH);
  digitalWrite(LedPin2, LOW);
  digitalWrite(LedPin3, HIGH);
  digitalWrite(LedPin4, HIGH);
  digitalWrite(LedPin5, HIGH);
  digitalWrite(LedPinG1, HIGH);
  digitalWrite(LedPinG2, LOW);
  digitalWrite(LedPinG3, LOW);
  digitalWrite(LedPinG4, LOW);
}
if (count==3)
{
  digitalWrite(LedPin, HIGH);
  digitalWrite(LedPin2, LOW);
  digitalWrite(LedPin3, LOW);
  digitalWrite(LedPin4, HIGH);
  digitalWrite(LedPin5, HIGH);
  digitalWrite(LedPinG1, HIGH);
digitalWrite(LedPinG2, HIGH);
digitalWrite(LedPinG3, LOW);
digitalWrite(LedPinG4, LOW);
 
}
if (count==4)
{
  digitalWrite(LedPin, HIGH);
  digitalWrite(LedPin2, LOW);
  digitalWrite(LedPin3, LOW);
  digitalWrite(LedPin4, LOW);
  digitalWrite(LedPin5, HIGH);
  digitalWrite(LedPinG1, HIGH);
digitalWrite(LedPinG2, HIGH);
digitalWrite(LedPinG3, HIGH);
digitalWrite(LedPinG4, LOW);
}
if (count==5)
  {
  digitalWrite(LedPin, HIGH);
  digitalWrite(LedPin2, LOW);
  digitalWrite(LedPin3, LOW);
  digitalWrite(LedPin4, LOW);
  digitalWrite(LedPin5, LOW);
  digitalWrite(LedPinG1, HIGH);
  digitalWrite(LedPinG2, HIGH);
digitalWrite(LedPinG3, HIGH);
digitalWrite(LedPinG4, HIGH);
    //whatever you want to do over here
    // ex [count=0; //reset count]
}
  if (count==6)
  {
    count=0;
  }
}


 
Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 216
Posts: 13664
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

PLease use the # button toplace [ code] and [ /code] tags around your code.

Can you tell us what the goal of your sketch is?

One tip: read about using array's, that could make your code much smaller - http://www.arduino.cc/en/Reference/Array

// partial code
Code:
// partial code, will not compile
const int LedPin[9] = {13,12,11,10,9,6,5,4,3};

void setup()
{
  pinMode(inPin, INPUT);
  for (int i = 0; i< 9; i++) pinMode(LedPin[i], OUTPUT);
}

void loop()
{
...
  if (count == n)
  {
    for (int i = 0; i< 2; i++) digitalWrite(LedPin[i], HIGH);
    for (int i = 2; i< 5; i++) digitalWrite(LedPin[i], LOW);
    for (int i = 5; i< 9; i++) digitalWrite(LedPin[i], HIGH);
  }
...
}
You could even use a 2 dimensional array to hold the values for all the pins for a certain value of count, and then you can do most of your code in one line:

Code:
for (int i=0; i<9; i++) digitalWrite(LedPin[i], value[count][i]);

Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 619
Posts: 33961
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

This is totally the wrong section.

Without asking a question it is hard to help.

Your only other previous post talked about a count down clock. However looking at the code, which I have seen several times from different people it looks like you are trying to get us to do your homework for you.
Logged

Pages: [1]   Go Up
Jump to: