Pages: 1 2 [3]   Go Down
Author Topic: Need Help with LED Binary Counter  (Read 2289 times)
0 Members and 1 Guest are viewing this topic.
Toronto, Canada
Offline Offline
Edison Member
*
Karma: 2
Posts: 1234
"Keep it R.E.I.L. - "Research, Experiment, Investigate and Learn"
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@JediMasterAubie

If you want, I did a code for a binary counter. It count from 0 to 15, in binary. I did this code in July 2011.  I did not learn about bitRead at the time of the code was written.

Just change this :

Code:
const int led[4] = {9,10,11,12}; // 9 to 12 are the digital pins
// That is an array. Pin 9 is box number 0. pin 12 is box 3.
// An array is like an hotel  with room numbers. The box is the room number, and the inside of the room is the pin.    

And replace with your pins. Don't worry about the transistors in the comment at this time. I did use a transistor to switch the Leds. But for now, just use a limiting resistor and a Led connect to a digital pin at this time.  

Code:
/*

Version 1.0
Size : 1182 Bytes

This program will count 0 to 15 and display the result in binary.

TESTED and WORKING

The hardware is connected to a transistor to use as a switch.

Need : 4 Transistor : Common NPN ex: 2N3904
       4 1 K resistor : between the digital pin and the base of the transistor.
       4 LED : Any color
       4 330 ohms resistor : current limiting for the LED.
      
And try to power the LEDs circuit seperated. And don't forget to connect the gnd of the
circuit with the Arduino GND.

Created by Serge Desjardins  --->  Techone
           Toronto, ON   CANADA

Idea from "Bit Math Tutorial by CosineKitty" in Arduino Playground.
          
*/

const int led[4] = {9,10,11,12};

/* Set Output LEDs  --->  A B C D   MSD --- LSD
          Digital pin    12 11 10 9

   Common variables
*/

int pin;
int counting;


void setup()

/*
  Set the pin 12, 11 , 10 , 9  to OUTPUT
*/
{
   for (pin =0; pin < 4; pin++ )
   {
     pinMode (led[pin], OUTPUT);
   }  
}

void loop()

/*  
  Counting routine from 0 to 15 and wait for 1 second
*/
{
 for ( counting = 0; counting < 16; counting++)
 {
    LEDview();
    delay (1000); // The One second delay
 }
}

void LEDview()

/*
  The LED display subroutine. The trick is to brake down the 4 bit data
  ( 0 to 15 ---> 0000 to 1111, so I need HIGH or LOW ( 1 or 0 ) Humm ... boolean
 isolate the proper bit and shift the bit, so it equal in value 1 or 0,
 so I use the AND operator & ( to isolate ) and the SHIFT RIGHT >> ( to move at
the proper spot )

My idea came from "Bit Math Tutorial by CosineKitty" in the Arduino playground

From there, you can use a 7447 to count the data ( change 16 to 10 in the counter line ) or
other use if need parallel data, the only limitation is the digital lines do not come out at the same
time, but in this way, it is almost at the same time. Bear in mind the small delay after each digitalWrite
instruction.

*/
{
  digitalWrite (led[3], boolean ((counting & 8)>>3));
  digitalWrite (led[2], boolean ((counting & 4)>>2));
  digitalWrite (led[1], boolean ((counting & 2)>>1));
  digitalWrite (led[0], boolean (counting & 1));
}
Logged

Grand Blanc, MI, USA
Offline Offline
Faraday Member
**
Karma: 92
Posts: 3941
CODE is a mass noun and should not be used in the plural or with an indefinite article.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I think what we have discovered here may be sort of a high-tech version of those birthday candles that can't be blown out. Of course this could be a much more cruel trick to play on someone smiley-evil

They also make LEDs that flicker like a candle flame. I have a few, pretty cool.
Logged

MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

Toronto, Canada
Offline Offline
Edison Member
*
Karma: 2
Posts: 1234
"Keep it R.E.I.L. - "Research, Experiment, Investigate and Learn"
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Jack

I have one of those in my leds parts bin. I place one of them and I see it "blink" "blink".... I replace that led and things work fine.

And I always do a test code to see my hardware setup work. Even I do without Arduino before connecting to see if things work fine.
Logged

Pages: 1 2 [3]   Go Up
Jump to: