Compare commits

...

6 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
xaloc 19da330918 fix include in .cpp 2020-03-13 13:31:07 +01:00
xaloc 4725b19411 fix names and spell in .h 2020-03-13 13:30:24 +01:00
xaloc e8b0eefa1c fix file names 2020-03-13 13:29:19 +01:00
5 changed files with 115 additions and 37 deletions
-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
+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
+35 -21
View File
@@ -1,5 +1,5 @@
#include "Arduino.h"
#include "SegDisp.h"
#include "segNums.h"
SegDisp::SegDisp(int pins[8])
{
@@ -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);
}
}
+5 -3
View File
@@ -1,7 +1,7 @@
#ifndef 7segNums_h
#define 7segNums_h
#ifndef segNums_h
#define segNums_h
#include "Ardunio.h"
#include "Arduino.h"
class SegDisp
{
@@ -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];