Odysseus:
void setup()
{
pinMode(12, OUTPUT); //Setting all of them as outputs
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
}
void allOFF()
{
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
}
void digitZero()
{
digitalWrite(6, HIGH);
}
void loop()
{
allOFF;
delay(3000);
digitZero;
delay(3000);
}
I tried this, again to no avail. What am I doing wrong???
When you calling a function you wrote, call them like
allOFF();
digitZero();
And remember, digitZero, wouldn't be only digitalWrite(6, HIGH), but all the segments that makes the Zero.
If you happen to use ShiftRegisters, this is how the code would look...
const int latchPin = 5; // Pin connected to Pin 12 of 74HC595 (Latch)
const int dataPin = 6; // Pin connected to Pin 14 of 74HC595 (Data)
const int clockPin = 7; // Pin connected to Pin 11 of 74HC595 (Clock)
// Describe each digit in terms of display segments
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
const byte numbers[16] = {
0b11111100,
0b01100000,
0b11011010,
0b11110010,
0b01100110,
0b10110110,
0b10111110,
0b11100000,
0b11111110,
0b11100110,
0b11101110,
0b00111110,
0b10011100,
0b01111010,
0b10011110,
0b10001110
};
void setup() {
//set pins to output so you can control the shift register
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
// count from 0 to 255 and display the number
// on the LEDs
for (int numberToDisplay = 0; numberToDisplay < 16; numberToDisplay++) {
// take the latchPin low so
// the LEDs don't change while you're sending in bits:
digitalWrite(latchPin, LOW);
// shift out the bits:
// shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay);
shiftOut(dataPin, clockPin, LSBFIRST, numbers[numberToDisplay]);
//take the latch pin high so the LEDs will light up:
digitalWrite(latchPin, HIGH);
// pause before next value:
delay(1000);
}
}
And you can also practice using "SWITCH CASE"
Make only 1 function, and you send the value when you call it...
turnDigit(5);
and when you write the funcion, you receive that value and use it in a switch-case to see what combo of leds you have to turn on.
Try to find some library, for sure there is something already wrote by someone.
const int latchPin = 8; // Pin connected to Pin 12 of 74HC595 (Latch)
const int dataPin = 11; // Pin connected to Pin 14 of 74HC595 (Data)
const int clockPin = 12; // Pin connected to Pin 11 of 74HC595 (Clock)
void setup() {
//set pins to output so you can control the shift register
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
// count from 0 to 255 and display the number
// on the LEDs
for (int i = 0; i < 10; i++) {
displayNumber(i);
delay(1000);
}
displayNumber(0);
delay(1000);
for (int i = 9; i > 0; i--) {
displayNumber(i);
delay(1000);
}
}
void displayNumber(int value) {
switch (value) {
case 0:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b11111100);
digitalWrite(latchPin, HIGH);
break;
case 1:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b01100000);
digitalWrite(latchPin, HIGH);
break;
case 2:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b11011010);
digitalWrite(latchPin, HIGH);
break;
case 3:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b11110010);
digitalWrite(latchPin, HIGH);
break;
case 4:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b01100110);
digitalWrite(latchPin, HIGH);
break;
case 5:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b10110110);
digitalWrite(latchPin, HIGH);
break;
case 6:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b10111110);
digitalWrite(latchPin, HIGH);
break;
case 7:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b11100000);
digitalWrite(latchPin, HIGH);
break;
case 8:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b11111110);
digitalWrite(latchPin, HIGH);
break;
case 9:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b11100110);
digitalWrite(latchPin, HIGH);
break;
case '.':
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b00000001);
digitalWrite(latchPin, HIGH);
break;
case 'OFF':
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b00000000);
digitalWrite(latchPin, HIGH);
break;
default:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0b00000000);
digitalWrite(latchPin, HIGH);
break;
}
}