FireFly 2012: the robot code as an Arduino library 'hexapod' (v3.1): IK, SSC-32, IR, ultrasonic, GPS, 7-segment

From Electronics\Hexapod\Arduino library 2012.
This commit is contained in:
mangavalk committed 2012-07-23 17:52:23 +02:00
1 parent f0b272a1d3
commit 304367a769
21 files changed
+3043

No files matched your search

@@ -0,0 +1,84 @@
// 7Segment
#include "Arduino.h"
#include "Segment.h"
byte seven_seg_digits[][8] = {
{ 0,1,1,1,1,1,0,1 }, // = 0
{ 0,1,1,0,0,0,0,0 }, // = 1
{ 0,0,1,1,1,1,1,0 }, // = 2
{ 0,1,1,1,1,0,1,0 }, // = 3
{ 0,1,1,0,0,0,1,1 }, // = 4
{ 0,1,0,1,1,0,1,1 }, // = 5
{ 0,1,0,1,1,1,1,1 }, // = 6
{ 0,1,1,1,0,0,0,0 }, // = 7
{ 0,1,1,1,1,1,1,1 }, // = 8
{ 0,1,1,1,1,0,1,1 }, // = 9
{ 1,1,1,1,0,1,1,1 }, // = A
{ 1,1,0,0,1,1,1,1 }, // = B
{ 1,0,0,1,1,1,0,1 }, // = C
{ 1,1,0,0,1,1,1,1 }, // = D
{ 1,0,0,1,1,1,1,1 }, // = E
{ 1,0,0,1,0,1,1,1 }, // = F
{ 1,1,0,1,1,0,1,1 }, // = S
{ 0,0,0,0,0,0,0,0 }, // = NULL
{ 1,0,0,1,0,1,0,1 } // = R
};
Segment::Segment() {
for (int i=0; i<8; i++)
pinMode(6+i, OUTPUT);
}
/*void Segment::sevenSegWrite(byte digit) {
byte pin = 6;
for (byte segCount = 0; segCount < 8; ++segCount) {
digitalWrite(pin, !seven_seg_digits[digit][segCount]);
++pin;
}
}*/
void Segment::sevenSegWrite(char chr) {
byte pin = 6;
byte digit;
if(chr <= 9) digit = chr;
else if (chr <= 'f') digit = 10 + (chr -'a');
else if (chr == 's') digit = 16;
else if (chr == 'r') digit = 18;
else digit = Cls;
for (byte segCount = 0; segCount < 8; ++segCount) {
digitalWrite(pin, !seven_seg_digits[digit][segCount]);
++pin;
}
}
/*void Segment::BlinksevenSegWrite(byte digit) {
byte pin = 6;
for (byte segCount = 0; segCount < 8; ++segCount) {
digitalWrite(pin, !seven_seg_digits[digit][segCount]);
++pin;
}
delay(100);
sevenSegWrite((byte)17);
}*/
void Segment::BlinksevenSegWrite(char chr) {
byte pin = 6;
byte digit;
if(chr <= 9) digit = chr;
else if (chr <= 'f') digit = 10 + (chr -'a');
else if (chr == 's') digit = 16;
else digit = Cls;
for (byte segCount = 0; segCount < 8; ++segCount) {
digitalWrite(pin, !seven_seg_digits[digit][segCount]);
++pin;
}
delay(100);
sevenSegWrite(Cls);
}