Arduino
Arduino Project 1 – LED Binary Counter
I’ve always had an interest in electronics although haven’t been good at it. A couple of my work mates bought http://www.arduino.cc/ and I had to buy one too. This is my first very simple project, a LED binary counter.
The circuit is boring, each LED is plugged up to a different digital out.
The code is a little clever but still simple. Below is a function that converts a number to turn on one of 4 LEDS on. It works by dividing the number by 8,4,2, and 1 in that order. If it is divisible by that number then we turn that light on and deduct it from the original number.
<pre class="Plum_Code_Box"><code class="">void convertIntToBinary(int number) {
int divisible;
divisible = 8;</code>
if (number / 8) {
number = number - 8;
digitalWrite(LEDVAL8, HIGH);
} else {
digitalWrite(LEDVAL8, LOW);
}
if (number / 4) {
number = number - 4 ;
digitalWrite(LEDVAL4, HIGH);
} else {
digitalWrite(LEDVAL4, LOW);
}
if (number / 2) {
number = number - 2 ;
digitalWrite(LEDVAL2, HIGH);
} else {
digitalWrite(LEDVAL2, LOW);
}
if (number / 1) {
number = number - 1 ;
digitalWrite(LEDVAL1, HIGH);
} else {
digitalWrite(LEDVAL1, LOW);
}
//digitalWrite(number, HIGH);
}</code>
</pre>
The main part of the code links up the LEDs and increments our number between 0 and 16(the max we can do with 4 LEDs)
<pre class="Plum_Code_Box"><code class="">#define LEDVAL1 4
#define LEDVAL2 5
#define LEDVAL4 6
#define LEDVAL8 7</code>
int counter;
void setup() {
pinMode(LEDVAL1, OUTPUT);
pinMode(LEDVAL2, OUTPUT);
pinMode(LEDVAL4, OUTPUT);
pinMode(LEDVAL8, OUTPUT);
}
void loop() {
counter = counter + 1;
convertIntToBinary(counter);
if (counter == 16) {
counter = -1;
}
delay(1000);
}</code></pre>
The full code:
<pre class="Plum_Code_Box"><code class="">#define LEDVAL1 4
#define LEDVAL2 5
#define LEDVAL4 6
#define LEDVAL8 7</code>
int counter;
void setup() {
pinMode(LEDVAL1, OUTPUT);
pinMode(LEDVAL2, OUTPUT);
pinMode(LEDVAL4, OUTPUT);
pinMode(LEDVAL8, OUTPUT);
}
void loop() {
counter = counter + 1;
convertIntToBinary(counter);
if (counter == 16) {
counter = -1;
}
delay(1000);
}
void convertIntToBinary(int number) {
int divisible;
divisible = 8;
if (number / 8) {
number = number - 8;
digitalWrite(LEDVAL8, HIGH);
} else {
digitalWrite(LEDVAL8, LOW);
}
if (number / 4) {
number = number - 4 ;
digitalWrite(LEDVAL4, HIGH);
} else {
digitalWrite(LEDVAL4, LOW);
}
if (number / 2) {
number = number - 2 ;
digitalWrite(LEDVAL2, HIGH);
} else {
digitalWrite(LEDVAL2, LOW);
}
if (number / 1) {
number = number - 1 ;
digitalWrite(LEDVAL1, HIGH);
} else {
digitalWrite(LEDVAL1, LOW);
}
//digitalWrite(number, HIGH);
}</code>
Search
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Jan | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 | ||