So I'm trying to make a day counter, but the specifics of that can follow later. What I'm struggling with right now is seven segment displays. I have four of them (common anode) and I've hooked them up to a couple of multiplexers but when trying to power a single segment, more than one is lighting up and I have no idea why.
This is the very basic code I've written to try and get something out of the setup. Am I understanding how to use these demultiplexers correctly?
// --2-- --10-
// 1| |3 9| |11
// |--0--| |--8--|
// 4| |6 12| |14
// --5-- 7 --13- 15
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(12, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
//Segment0
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(3, LOW);
digitalWrite(2, LOW);
digitalWrite(12, HIGH);
//Segment1
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(3, LOW);
digitalWrite(2, HIGH);
digitalWrite(12, HIGH);
//Segment2
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
digitalWrite(12, HIGH);
//Segment3
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
digitalWrite(2, HIGH);
digitalWrite(12, LOW);
//Segment4
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
digitalWrite(3, LOW);
digitalWrite(2, LOW);
digitalWrite(12, HIGH);
//Segment5
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
digitalWrite(3, LOW);
digitalWrite(2, HIGH);
digitalWrite(12, HIGH);
//Segment6
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
digitalWrite(13, HIGH);
//Segment7
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
digitalWrite(3, HIGH);
digitalWrite(2, HIGH);
digitalWrite(13, HIGH);
//Segment8
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
digitalWrite(3, LOW);
digitalWrite(2, LOW);
digitalWrite(13, HIGH);
//Segment9
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
digitalWrite(3, LOW);
digitalWrite(2, HIGH);
digitalWrite(13, HIGH);
//Segment10
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
digitalWrite(13, HIGH);
//Segment11
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
digitalWrite(2, HIGH);
digitalWrite(13, HIGH);
//Segment12
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(3, LOW);
digitalWrite(2, LOW);
digitalWrite(13, HIGH);
//Segment13
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(3, LOW);
digitalWrite(2, HIGH);
digitalWrite(13, HIGH);
//Segment14
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
digitalWrite(13, HIGH);
//Segment15
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(3, HIGH);
digitalWrite(2, HIGH);
digitalWrite(13, HIGH);
}