Compare commits

..

3 Commits

Author SHA1 Message Date
xaloc 6824ce9f3a add on off functions 2020-03-13 17:25:31 +01:00
xaloc 92a0591b48 standarize pins, update readme 2020-03-13 16:41:20 +01:00
xaloc 790917fcd4 fix keywords 2020-03-13 13:43:52 +01:00
5 changed files with 111 additions and 33 deletions
+61 -1
View File
@@ -1,3 +1,63 @@
# 7seg_numbers_arduino
This is a library for Arduino to display numbers on a 7 segment display.
This is a library for Arduino to display numbers on a 7 segment display. The library creates a display object, this object is initialized by passing an array of the pin numbers where each segment is connected. It is assumed that the pins array will have the following order: {pinA, pinB, pinC, pinD, pinE, pinF, pinG, pinDP}.
Once the object is created, to print a number use the function with the number's name. Here is an example that use the library to print all the numbers from 0 to 9 and then the DP.
```c++
#include <segNums.h>
int pins[8] = {2,3,4,5,6,7,8,9};
SegDisp disp(pins);
void setup(){
}
void loop(){
disp.zero(1);
delay(500);
disp.zero(0);
delay(500);
disp.one(1);
delay(500);
disp.one(0);
delay(500);
disp.two(1);
delay(500);
disp.two(0);
delay(500);
disp.three(1);
delay(500);
disp.three(0);
delay(500);
disp.four(1);
delay(500);
disp.four(0);
delay(500);
disp.five(1);
delay(500);
disp.five(0);
delay(500);
disp.six(1);
delay(500);
disp.six(0);
delay(500);
disp.seven(1);
delay(500);
disp.seven(0);
delay(500);
disp.eight(1);
delay(500);
disp.eight(0);
delay(500);
disp.nine(1);
delay(500);
disp.nine(0);
delay(500);
disp.dot(1);
delay(500);
disp.dot(0);
delay(500);
}
```
+14
View File
@@ -0,0 +1,14 @@
SegDisp KEYWORD1
zero KEYWORD2
one KEYWORD2
two KEYWORD2
three KEYWORD2
four KEYWORD2
five KEYWORD2
six KEYWORD2
seven KEYWORD2
eight KEYWORD2
nine KEYWORD2
dot KEYWORD2
on KEYWORD2
off KEYWORD2
+34 -20
View File
@@ -11,65 +11,65 @@ SegDisp::SegDisp(int pins[8])
void SegDisp::zero(int state)
{
int leds[6] = {0,1,2,4,5,6};
int leds[6] = {0,1,2,3,4,5};
for (int i = 0; i < 6; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
void SegDisp::one(int state)
{
int leds[2] = {2,6};
int leds[2] = {1,2};
for (int i = 0; i < 2; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
void SegDisp::two(int state)
{
int leds[5] = {0,1,3,5,6};
int leds[5] = {0,1,3,4,6};
for (int i = 0; i < 5; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
void SegDisp::three(int state)
{
int leds[5] = {1,2,3,5,6};
int leds[5] = {0,1,2,3,6};
for (int i = 0; i < 5; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
void SegDisp::four(int state)
{
int leds[4] = {2,3,4,6};
int leds[4] = {1,2,5,6};
for (int i = 0; i < 4; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
void SegDisp::five(int state)
{
int leds[5] = {1,2,3,4,5};
int leds[5] = {0,2,3,5,6};
for (int i = 0; i < 5; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
void SegDisp::six(int state)
{
int leds[6] = {0,1,2,3,4,5};
int leds[6] = {0,2,3,4,5,6};
for (int i = 0; i < 6; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
void SegDisp::seven(int state)
{
int leds[3] = {2,5,6};
int leds[3] = {0,1,2};
for (int i = 0; i < 3; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
@@ -77,15 +77,15 @@ void SegDisp::eight(int state)
{
int leds[7] = {0,1,2,3,4,5,6};
for (int i = 0; i < 7; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
void SegDisp::nine(int state)
{
int leds[6] = {1,2,3,4,5,6};
int leds[6] = {0,1,2,3,5,6};
for (int i = 0; i < 6; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
@@ -93,6 +93,20 @@ void SegDisp::dot(int state)
{
int leds[1] = {7};
for (int i = 0; i < 1; i++){
digitalWrite(_pins[led[i]], state);
digitalWrite(_pins[leds[i]], state);
}
}
void SegDisp::on()
{
for (int i=0; i<8; i++){
digitalWrite(_pins[i], 1);
}
}
void SegDisp::off()
{
for (int i=0; i<8; i++){
digitalWrite(_pins[i], 0);
}
}
+2
View File
@@ -18,6 +18,8 @@ class SegDisp
void eight(int state);
void nine(int state);
void dot(int state);
void on();
void off();
private:
int _pins[8];
-12
View File
@@ -1,12 +0,0 @@
SegDisp KEYWORD1
zero KEYWORD2
one KEYWORD2
two KEYWORD2
three KEYWORD2
four KEYWORD2
five KEYWORD2
six KEYWORD2
seven KEYWORD2
eight KEYWORD2
nine KEYWORD2
dot KEYWORD2