Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Two digit, seven segment LED sketch. - cc - Brian Schulteis - UnaClocker
- // 8 pin multiplexed LED display
- // First 4 bits HIGH to trigger, Second 4 bits LOW to trigger
- // Using 74HC595 shift register
- // Intended for use with ATTiny85
- int dataPin = 0;
- int clockPin = 1;
- int latchPin = 2;
- int temperatureADC = 3;
- int currentNumber = 0;
- long timeTemp = millis();
- byte segmentLight[15] = {
- 240, 113, 120, 116, 114, 184, 180, 178, 209, 216, 212, 210, 232, 228, 226};
- // 14 segments possible, 0 = all off
- void setup() {
- pinMode(latchPin, OUTPUT);
- pinMode(clockPin, OUTPUT);
- pinMode(dataPin, OUTPUT);
- pinMode(temperatureADC, INPUT);
- }
- void showSegment(int segment) {
- digitalWrite(latchPin, LOW);
- shiftOut(dataPin, clockPin, MSBFIRST, segmentLight[segment]);
- digitalWrite(latchPin, HIGH);
- }
- void displayRightDigit(int Right) {
- switch (Right) {
- case 0:
- showSegment(8);
- showSegment(9);
- showSegment(10);
- showSegment(12);
- showSegment(13);
- showSegment(14);
- break;
- case 1:
- showSegment(10);
- showSegment(13);
- break;
- case 2:
- showSegment(9);
- showSegment(10);
- showSegment(11);
- showSegment(12);
- showSegment(14);
- break;
- case 3:
- showSegment(9);
- showSegment(10);
- showSegment(11);
- showSegment(13);
- showSegment(14);
- break;
- case 4:
- showSegment(8);
- showSegment(10);
- showSegment(11);
- showSegment(13);
- break;
- case 5:
- showSegment(8);
- showSegment(9);
- showSegment(11);
- showSegment(13);
- showSegment(14);
- break;
- case 6:
- showSegment(8);
- showSegment(9);
- showSegment(11);
- showSegment(12);
- showSegment(13);
- showSegment(14);
- break;
- case 7:
- showSegment(9);
- showSegment(10);
- showSegment(13);
- break;
- case 8:
- showSegment(8);
- showSegment(9);
- showSegment(10);
- showSegment(11);
- showSegment(12);
- showSegment(13);
- showSegment(14);
- break;
- case 9:
- showSegment(8);
- showSegment(9);
- showSegment(10);
- showSegment(11);
- showSegment(13);
- break;
- }
- }
- void displayLeftDigit(int Left) {
- switch (Left) {
- case 0:
- showSegment(1);
- showSegment(2);
- showSegment(3);
- showSegment(5);
- showSegment(6);
- showSegment(7);
- break;
- case 1:
- showSegment(3);
- showSegment(6);
- break;
- case 2:
- showSegment(2);
- showSegment(3);
- showSegment(4);
- showSegment(5);
- showSegment(7);
- break;
- case 3:
- showSegment(2);
- showSegment(3);
- showSegment(4);
- showSegment(6);
- showSegment(7);
- break;
- case 4:
- showSegment(1);
- showSegment(3);
- showSegment(4);
- showSegment(6);
- break;
- case 5:
- showSegment(1);
- showSegment(2);
- showSegment(4);
- showSegment(6);
- showSegment(7);
- break;
- case 6:
- showSegment(1);
- showSegment(2);
- showSegment(4);
- showSegment(5);
- showSegment(6);
- showSegment(7);
- break;
- case 7:
- showSegment(2);
- showSegment(3);
- showSegment(6);
- break;
- case 8:
- showSegment(1);
- showSegment(2);
- showSegment(3);
- showSegment(4);
- showSegment(5);
- showSegment(6);
- showSegment(7);
- break;
- case 9:
- showSegment(1);
- showSegment(2);
- showSegment(3);
- showSegment(4);
- showSegment(6);
- break;
- }
- }
- void loop() {
- while ((millis()-timeTemp) < 250) {
- if (currentNumber > 9) {
- displayLeftDigit(currentNumber/10);
- displayRightDigit(currentNumber % 10);
- }
- else {
- displayRightDigit(currentNumber);
- }
- }
- currentNumber++;
- timeTemp=millis();
- if (currentNumber > 99 ) currentNumber=0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement