Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wprogram.h>
- #include <Wire.h>
- #include <DS1307.h>
- #include <OneWire.h>
- #include <DallasTemperature.h>
- // Data wire is plugged into port 2 on the Arduino
- #define ONE_WIRE_BUS 2
- // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
- OneWire oneWire(ONE_WIRE_BUS);
- int temp;
- // Pass our oneWire reference to Dallas Temperature.
- DallasTemperature sensors(&oneWire);
- int gettempDelay = 15000;
- long lasttemptime;
- // buffer for time & temp display;
- char timeBuffer[] = "1245";
- byte timeDec[4]; //время в байтах
- byte tempDec[2];// температура в байтах
- byte znak; //"sign"-in russian :))
- //Pin connected to ST_CP of 74HC595
- byte latchPin = 8;
- //Pin connected to SH_CP of 74HC595
- byte clockPin = 12;
- //Pin connected to DS of 74HC595
- byte dataPin = 11;
- int counter = 0;
- int movement = 0;
- byte h2[8][8]={
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte LEDs[8][17] = {
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
- };
- byte letter0[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte letter1[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 1
- { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X___
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 1, 0, 1, 0, 0, 0 } ,// __X_X___
- { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X___
- { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X___
- { 0, 0, 0, 1, 1, 1, 0, 0 } ,// ___XXX__
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte letter2[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 2
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X___
- { 0, 0, 0, 1, 0, 0, 0, 0 } ,// ___X____
- { 0, 0, 1, 0, 0, 0, 0, 0 } ,// __X_____
- { 0, 0, 1, 1, 1, 1, 0, 0 } ,// __XXXX__
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte letter3[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 3
- { 0, 0, 1, 1, 1, 1, 0, 0 } ,// __XXXX__
- { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte letter4[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 4
- { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
- { 0, 0, 0, 0, 1, 1, 0, 0 } ,// ____XX__
- { 0, 0, 0, 1, 0, 1, 0, 0 } ,// ___X_X__
- { 0, 0, 1, 1, 1, 1, 0, 0 } ,// __XXXX__
- { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
- { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte letter5[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 5
- { 0, 0, 1, 1, 1, 1, 0, 0 } ,// __XXXX__
- { 0, 0, 1, 0, 0, 0, 0, 0 } ,// __X_____
- { 0, 0, 1, 1, 1, 0, 0, 0 } ,// __XXX___
- { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte letter6[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 6
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 1, 0, 0, 0, 0, 0 } ,// __X_____
- { 0, 0, 1, 1, 1, 0, 0, 0 } ,// __XXX___
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte letter7[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 7
- { 0, 0, 1, 1, 1, 1, 0, 0 } ,// __XXXX__
- { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
- { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X__
- { 0, 0, 0, 1, 0, 0, 0, 0 } ,// ___X___
- { 0, 0, 0, 1, 0, 0, 0, 0 } ,// ___X____
- { 0, 0, 0, 1, 0, 0, 0, 0 } ,// ___X____
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte letter8[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 8
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte letter9[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 9
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 0, 1, 1, 1, 0, 0 } ,// ___XXX__
- { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
- { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte letterh[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 9
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- byte tc[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 9
- { 1, 1, 1, 0, 0, 0, 0, 0 } ,// XXX_____
- { 1, 0, 1, 0, 0, 1, 1, 0 } ,// X_X_____
- { 1, 1, 1, 0, 1, 0, 0, 1 } ,// XXX__XX_
- { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X__X
- { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X___
- { 0, 0, 0, 0, 1, 0, 0, 1 } ,// ____X__X
- { 0, 0, 0, 0, 0, 1, 1, 0 } ,// _____XX_
- };
- byte bl[8][8] = {
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 9
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
- };
- void setup() {
- //set pins to output because they are addressed in the main loop
- pinMode(latchPin, OUTPUT);
- pinMode(clockPin, OUTPUT);
- pinMode(dataPin, OUTPUT);
- Serial.begin(57600);
- Wire.begin();
- sensors.begin();
- gettemp ();
- lasttemptime = millis();
- }
- void loop() {
- //if ((millis() - lasttemptime) > gettempDelay) {gettemp (); lasttemptime = millis();}
- makeTimeSprites();
- //Scrolling TimeSprites
- if (movement == 0) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- LEDs[x][y+8] = tc[x][y];
- }
- }
- }
- if (movement == 8) {znak=tempDec[0];
- Serial.print("znak=tempDec[0] - ");
- Serial.print(znak, DEC);
- Serial.print(" - ");
- Serial.println(tempDec[0], DEC);
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- LEDs[x][y+8] = h2[x][y];
- }
- }
- }
- if (movement == 14) {znak=tempDec[1];
- Serial.print("znak=tempDec[1] - ");
- Serial.print(znak, DEC);
- Serial.print(" - ");
- Serial.println(tempDec[1], DEC);
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- LEDs[x][y+8] = h2[x][y];
- }
- }
- }
- if (movement == 20) {
- gettemp ();
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- LEDs[x][y+8] = bl[x][y];
- }
- }
- }
- if (movement == 28) {znak=timeDec[0];
- Serial.print("znak - ");
- Serial.println(znak, DEC);
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- LEDs[x][y+8] = h2[x][y];
- }
- }
- }
- if (movement == 34) {znak=timeDec[1];
- Serial.print("znak - ");
- Serial.println(znak, DEC);
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- LEDs[x][y+8] = h2[x][y];
- }
- }
- }
- if (movement == 40) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- LEDs[x][y+8] = letterh[x][y];
- }
- }
- }
- if (movement == 48) {znak=timeDec[2];
- Serial.print("znak - ");
- Serial.println(znak, DEC);
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- LEDs[x][y+8] = h2[x][y];
- }
- }
- }
- if (movement == 54) {znak=timeDec[3];
- Serial.print("znak - ");
- Serial.println(znak, DEC);
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- LEDs[x][y+8] = h2[x][y];
- }
- }
- }
- if (movement == 62) {
- updateTimeBuffer();
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- LEDs[x][y+8] = bl[x][y];
- }
- }
- }
- //Speed of scrolling (%10-%25)
- if (counter % 5 == 0) {
- movement++;
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 16; y++) {
- LEDs[x][y] = LEDs[x][y+1];
- }
- }
- }
- if (movement >= 80) {
- counter = 0;
- movement = 0;
- }
- lightLED();
- counter++;
- }
- //shows something on matrix (do not change! depends on hardware!)
- void lightLED() {
- byte columnbitsToSend = 0;
- byte rowbitsToSend = 0;
- byte x = 0;
- byte y = 0;
- for (x = 0; x < 8; x++) {
- columnbitsToSend = 0;
- rowbitsToSend = 0;
- for (y = 0; y < 8; y ++) {
- if (LEDs[x][y] == 1) {
- bitWrite(rowbitsToSend, y, HIGH);
- }
- }
- digitalWrite(latchPin, LOW);
- bitWrite(columnbitsToSend, x, HIGH);
- shiftOut(dataPin, clockPin, MSBFIRST, columnbitsToSend);
- shiftOut(dataPin, clockPin, MSBFIRST, rowbitsToSend);
- digitalWrite(latchPin, HIGH);
- delay(2);
- }
- }
- void gettemp (){
- sensors.requestTemperatures(); // Send the command to get temperatures
- temp=(sensors.getTempCByIndex(0));
- tempDec[0] = (temp)/10;
- tempDec[1] = (temp)%10;
- Serial.print("tempDec[0] - ");
- Serial.println(tempDec[0], DEC); //Zakomenjiroval
- //Serial.println((int (temp))/10); //Vstavil
- Serial.print("tempDec[1] - ");
- Serial.println(tempDec[1], DEC); //Zakomenjiroval
- //Serial.println((int (temp))%10); //Vstavil
- //Serial.println(tempDec[0], DEC);
- }
- void updateTimeBuffer() {
- //Gets time from RTC
- int rtc[7];
- RTC.get(rtc, true);
- int second = rtc[0];
- int minute = rtc[1];
- int hour = rtc[2];
- int day = rtc[4];
- int month = rtc[5];
- int year = rtc[6];
- // build the string containing formatted time;
- timeBuffer[0] = (hour < 10) ? ' ' : ('0' + hour/10);
- timeBuffer[1] = '0' + hour%10;
- timeBuffer[2] = '0' + minute/10;
- timeBuffer[3] = '0' + minute%10;
- // transfer from char (timeBuffer) to DEC (timeDec)
- for (int x = 0; x < 5; x++) {timeDec[x] = timeBuffer[x] - '0';}
- }
- void makeTimeSprites () {
- if (znak == 0) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- h2[x][y] = letter0[x][y];
- }
- }
- }
- if (znak == 1) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- h2[x][y] = letter1[x][y];
- }
- }
- }
- if (znak == 2) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- h2[x][y] = letter2[x][y];
- }
- }
- }
- if (znak == 3) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- h2[x][y] = letter3[x][y];
- }
- }
- }
- if (znak == 4) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- h2[x][y] = letter4[x][y];
- }
- }
- }
- if (znak == 5) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- h2[x][y] = letter5[x][y];
- }
- }
- }
- if (znak == 6) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- h2[x][y] = letter6[x][y];
- }
- }
- }
- if (znak == 7) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- h2[x][y] = letter7[x][y];
- }
- }
- }
- if (znak == 8) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- h2[x][y] = letter8[x][y];
- }
- }
- }
- if (znak == 9) {
- byte x;
- byte y;
- for (x = 0; x < 8; x++) {
- for (y = 0; y < 8; y++) {
- h2[x][y] = letter9[x][y];
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment