Guest User

Untitled

a guest
Feb 18th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.14 KB | None | 0 0
  1. #include <Wprogram.h>
  2. #include <Wire.h>
  3. #include <DS1307.h>
  4. #include <OneWire.h>
  5. #include <DallasTemperature.h>
  6.  
  7. // Data wire is plugged into port 2 on the Arduino
  8. #define ONE_WIRE_BUS 2
  9.  
  10. // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
  11. OneWire oneWire(ONE_WIRE_BUS);
  12. int temp;
  13. // Pass our oneWire reference to Dallas Temperature.
  14. DallasTemperature sensors(&oneWire);
  15.  
  16. int gettempDelay = 15000;
  17. long lasttemptime;
  18.  
  19. // buffer for time & temp display;
  20. char timeBuffer[] = "1245";
  21. byte timeDec[4]; //время в байтах
  22. byte tempDec[2];// температура в байтах
  23. byte znak; //"sign"-in russian :))
  24. //Pin connected to ST_CP of 74HC595
  25. byte latchPin = 8;
  26. //Pin connected to SH_CP of 74HC595
  27. byte clockPin = 12;
  28. //Pin connected to DS of 74HC595
  29. byte dataPin = 11;
  30.  
  31. int counter = 0;
  32. int movement = 0;
  33.  
  34.  
  35. byte h2[8][8]={
  36. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  37. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  38. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  39. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  40. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  41. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  42. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  43. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  44. };
  45.  
  46.  
  47. byte LEDs[8][17] = {
  48. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  49. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  50. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  51. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  52. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  53. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  54. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  55. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
  56. };
  57.  
  58. byte letter0[8][8] = {
  59. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  60. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  61. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  62. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  63. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  64. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  65. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  66. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  67. };
  68. byte letter1[8][8] = {
  69. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 1
  70. { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X___
  71. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  72. { 0, 0, 1, 0, 1, 0, 0, 0 } ,// __X_X___
  73. { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X___
  74. { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X___
  75. { 0, 0, 0, 1, 1, 1, 0, 0 } ,// ___XXX__
  76. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  77. };
  78. byte letter2[8][8] = {
  79. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 2
  80. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  81. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  82. { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X___
  83. { 0, 0, 0, 1, 0, 0, 0, 0 } ,// ___X____
  84. { 0, 0, 1, 0, 0, 0, 0, 0 } ,// __X_____
  85. { 0, 0, 1, 1, 1, 1, 0, 0 } ,// __XXXX__
  86. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  87. };
  88. byte letter3[8][8] = {
  89. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 3
  90. { 0, 0, 1, 1, 1, 1, 0, 0 } ,// __XXXX__
  91. { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
  92. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  93. { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
  94. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  95. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  96. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  97. };
  98. byte letter4[8][8] = {
  99. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 4
  100. { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
  101. { 0, 0, 0, 0, 1, 1, 0, 0 } ,// ____XX__
  102. { 0, 0, 0, 1, 0, 1, 0, 0 } ,// ___X_X__
  103. { 0, 0, 1, 1, 1, 1, 0, 0 } ,// __XXXX__
  104. { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
  105. { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
  106. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  107. };
  108. byte letter5[8][8] = {
  109. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 5
  110. { 0, 0, 1, 1, 1, 1, 0, 0 } ,// __XXXX__
  111. { 0, 0, 1, 0, 0, 0, 0, 0 } ,// __X_____
  112. { 0, 0, 1, 1, 1, 0, 0, 0 } ,// __XXX___
  113. { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
  114. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  115. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  116. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  117. };
  118. byte letter6[8][8] = {
  119. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 6
  120. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  121. { 0, 0, 1, 0, 0, 0, 0, 0 } ,// __X_____
  122. { 0, 0, 1, 1, 1, 0, 0, 0 } ,// __XXX___
  123. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  124. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  125. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  126. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  127. };
  128. byte letter7[8][8] = {
  129. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 7
  130. { 0, 0, 1, 1, 1, 1, 0, 0 } ,// __XXXX__
  131. { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
  132. { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X__
  133. { 0, 0, 0, 1, 0, 0, 0, 0 } ,// ___X___
  134. { 0, 0, 0, 1, 0, 0, 0, 0 } ,// ___X____
  135. { 0, 0, 0, 1, 0, 0, 0, 0 } ,// ___X____
  136. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  137. };
  138. byte letter8[8][8] = {
  139. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 8
  140. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  141. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  142. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  143. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  144. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  145. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  146. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  147. };
  148. byte letter9[8][8] = {
  149. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 9
  150. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  151. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  152. { 0, 0, 0, 1, 1, 1, 0, 0 } ,// ___XXX__
  153. { 0, 0, 0, 0, 0, 1, 0, 0 } ,// _____X__
  154. { 0, 0, 1, 0, 0, 1, 0, 0 } ,// __X__X__
  155. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  156. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  157. };
  158. byte letterh[8][8] = {
  159. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 9
  160. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  161. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  162. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  163. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  164. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  165. { 0, 0, 0, 1, 1, 0, 0, 0 } ,// ___XX___
  166. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  167. };
  168. byte tc[8][8] = {
  169. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 9
  170. { 1, 1, 1, 0, 0, 0, 0, 0 } ,// XXX_____
  171. { 1, 0, 1, 0, 0, 1, 1, 0 } ,// X_X_____
  172. { 1, 1, 1, 0, 1, 0, 0, 1 } ,// XXX__XX_
  173. { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X__X
  174. { 0, 0, 0, 0, 1, 0, 0, 0 } ,// ____X___
  175. { 0, 0, 0, 0, 1, 0, 0, 1 } ,// ____X__X
  176. { 0, 0, 0, 0, 0, 1, 1, 0 } ,// _____XX_
  177. };
  178. byte bl[8][8] = {
  179. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________ 9
  180. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  181. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  182. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  183. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  184. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  185. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  186. { 0, 0, 0, 0, 0, 0, 0, 0 } ,// ________
  187. };
  188.  
  189.  
  190.  
  191.  
  192. void setup() {
  193. //set pins to output because they are addressed in the main loop
  194. pinMode(latchPin, OUTPUT);
  195. pinMode(clockPin, OUTPUT);
  196. pinMode(dataPin, OUTPUT);
  197. Serial.begin(57600);
  198. Wire.begin();
  199. sensors.begin();
  200. gettemp ();
  201. lasttemptime = millis();
  202. }
  203.  
  204. void loop() {
  205.  
  206. //if ((millis() - lasttemptime) > gettempDelay) {gettemp (); lasttemptime = millis();}
  207.  
  208.  
  209. makeTimeSprites();
  210.  
  211. //Scrolling TimeSprites
  212. if (movement == 0) {
  213. byte x;
  214. byte y;
  215. for (x = 0; x < 8; x++) {
  216. for (y = 0; y < 8; y++) {
  217. LEDs[x][y+8] = tc[x][y];
  218. }
  219. }
  220. }
  221. if (movement == 8) {znak=tempDec[0];
  222. Serial.print("znak=tempDec[0] - ");
  223. Serial.print(znak, DEC);
  224. Serial.print(" - ");
  225. Serial.println(tempDec[0], DEC);
  226. byte x;
  227. byte y;
  228. for (x = 0; x < 8; x++) {
  229. for (y = 0; y < 8; y++) {
  230. LEDs[x][y+8] = h2[x][y];
  231. }
  232. }
  233. }
  234. if (movement == 14) {znak=tempDec[1];
  235. Serial.print("znak=tempDec[1] - ");
  236. Serial.print(znak, DEC);
  237. Serial.print(" - ");
  238. Serial.println(tempDec[1], DEC);
  239. byte x;
  240. byte y;
  241. for (x = 0; x < 8; x++) {
  242. for (y = 0; y < 8; y++) {
  243. LEDs[x][y+8] = h2[x][y];
  244. }
  245. }
  246. }
  247.  
  248. if (movement == 20) {
  249. gettemp ();
  250. byte x;
  251. byte y;
  252. for (x = 0; x < 8; x++) {
  253. for (y = 0; y < 8; y++) {
  254. LEDs[x][y+8] = bl[x][y];
  255. }
  256. }
  257. }
  258.  
  259. if (movement == 28) {znak=timeDec[0];
  260. Serial.print("znak - ");
  261. Serial.println(znak, DEC);
  262. byte x;
  263. byte y;
  264. for (x = 0; x < 8; x++) {
  265. for (y = 0; y < 8; y++) {
  266. LEDs[x][y+8] = h2[x][y];
  267. }
  268. }
  269. }
  270. if (movement == 34) {znak=timeDec[1];
  271. Serial.print("znak - ");
  272. Serial.println(znak, DEC);
  273. byte x;
  274. byte y;
  275. for (x = 0; x < 8; x++) {
  276. for (y = 0; y < 8; y++) {
  277. LEDs[x][y+8] = h2[x][y];
  278. }
  279. }
  280. }
  281. if (movement == 40) {
  282. byte x;
  283. byte y;
  284. for (x = 0; x < 8; x++) {
  285. for (y = 0; y < 8; y++) {
  286. LEDs[x][y+8] = letterh[x][y];
  287. }
  288. }
  289. }
  290. if (movement == 48) {znak=timeDec[2];
  291. Serial.print("znak - ");
  292. Serial.println(znak, DEC);
  293. byte x;
  294. byte y;
  295. for (x = 0; x < 8; x++) {
  296. for (y = 0; y < 8; y++) {
  297. LEDs[x][y+8] = h2[x][y];
  298. }
  299. }
  300. }
  301. if (movement == 54) {znak=timeDec[3];
  302. Serial.print("znak - ");
  303. Serial.println(znak, DEC);
  304. byte x;
  305. byte y;
  306. for (x = 0; x < 8; x++) {
  307. for (y = 0; y < 8; y++) {
  308. LEDs[x][y+8] = h2[x][y];
  309. }
  310. }
  311. }
  312.  
  313. if (movement == 62) {
  314. updateTimeBuffer();
  315. byte x;
  316. byte y;
  317. for (x = 0; x < 8; x++) {
  318. for (y = 0; y < 8; y++) {
  319. LEDs[x][y+8] = bl[x][y];
  320. }
  321. }
  322. }
  323.  
  324.  
  325. //Speed of scrolling (%10-%25)
  326. if (counter % 5 == 0) {
  327. movement++;
  328. byte x;
  329. byte y;
  330. for (x = 0; x < 8; x++) {
  331. for (y = 0; y < 16; y++) {
  332. LEDs[x][y] = LEDs[x][y+1];
  333. }
  334. }
  335. }
  336. if (movement >= 80) {
  337. counter = 0;
  338. movement = 0;
  339. }
  340.  
  341. lightLED();
  342. counter++;
  343. }
  344.  
  345. //shows something on matrix (do not change! depends on hardware!)
  346. void lightLED() {
  347. byte columnbitsToSend = 0;
  348. byte rowbitsToSend = 0;
  349.  
  350. byte x = 0;
  351. byte y = 0;
  352. for (x = 0; x < 8; x++) {
  353. columnbitsToSend = 0;
  354. rowbitsToSend = 0;
  355.  
  356. for (y = 0; y < 8; y ++) {
  357. if (LEDs[x][y] == 1) {
  358. bitWrite(rowbitsToSend, y, HIGH);
  359. }
  360. }
  361.  
  362. digitalWrite(latchPin, LOW);
  363. bitWrite(columnbitsToSend, x, HIGH);
  364. shiftOut(dataPin, clockPin, MSBFIRST, columnbitsToSend);
  365. shiftOut(dataPin, clockPin, MSBFIRST, rowbitsToSend);
  366. digitalWrite(latchPin, HIGH);
  367. delay(2);
  368. }
  369. }
  370. void gettemp (){
  371. sensors.requestTemperatures(); // Send the command to get temperatures
  372. temp=(sensors.getTempCByIndex(0));
  373. tempDec[0] = (temp)/10;
  374. tempDec[1] = (temp)%10;
  375. Serial.print("tempDec[0] - ");
  376. Serial.println(tempDec[0], DEC); //Zakomenjiroval
  377. //Serial.println((int (temp))/10); //Vstavil
  378. Serial.print("tempDec[1] - ");
  379. Serial.println(tempDec[1], DEC); //Zakomenjiroval
  380. //Serial.println((int (temp))%10); //Vstavil
  381. //Serial.println(tempDec[0], DEC);
  382. }
  383.  
  384. void updateTimeBuffer() {
  385. //Gets time from RTC
  386. int rtc[7];
  387. RTC.get(rtc, true);
  388. int second = rtc[0];
  389. int minute = rtc[1];
  390. int hour = rtc[2];
  391. int day = rtc[4];
  392. int month = rtc[5];
  393. int year = rtc[6];
  394. // build the string containing formatted time;
  395. timeBuffer[0] = (hour < 10) ? ' ' : ('0' + hour/10);
  396. timeBuffer[1] = '0' + hour%10;
  397. timeBuffer[2] = '0' + minute/10;
  398. timeBuffer[3] = '0' + minute%10;
  399. // transfer from char (timeBuffer) to DEC (timeDec)
  400. for (int x = 0; x < 5; x++) {timeDec[x] = timeBuffer[x] - '0';}
  401.  
  402.  
  403.  
  404. }
  405.  
  406.  
  407. void makeTimeSprites () {
  408.  
  409. if (znak == 0) {
  410. byte x;
  411. byte y;
  412. for (x = 0; x < 8; x++) {
  413. for (y = 0; y < 8; y++) {
  414. h2[x][y] = letter0[x][y];
  415. }
  416. }
  417. }
  418. if (znak == 1) {
  419. byte x;
  420. byte y;
  421. for (x = 0; x < 8; x++) {
  422. for (y = 0; y < 8; y++) {
  423. h2[x][y] = letter1[x][y];
  424. }
  425. }
  426. }
  427. if (znak == 2) {
  428. byte x;
  429. byte y;
  430. for (x = 0; x < 8; x++) {
  431. for (y = 0; y < 8; y++) {
  432. h2[x][y] = letter2[x][y];
  433. }
  434. }
  435. }
  436.  
  437. if (znak == 3) {
  438. byte x;
  439. byte y;
  440. for (x = 0; x < 8; x++) {
  441. for (y = 0; y < 8; y++) {
  442. h2[x][y] = letter3[x][y];
  443. }
  444. }
  445. }
  446. if (znak == 4) {
  447. byte x;
  448. byte y;
  449. for (x = 0; x < 8; x++) {
  450. for (y = 0; y < 8; y++) {
  451. h2[x][y] = letter4[x][y];
  452. }
  453. }
  454. }
  455. if (znak == 5) {
  456. byte x;
  457. byte y;
  458. for (x = 0; x < 8; x++) {
  459. for (y = 0; y < 8; y++) {
  460. h2[x][y] = letter5[x][y];
  461. }
  462. }
  463. }
  464. if (znak == 6) {
  465. byte x;
  466. byte y;
  467. for (x = 0; x < 8; x++) {
  468. for (y = 0; y < 8; y++) {
  469. h2[x][y] = letter6[x][y];
  470. }
  471. }
  472. }
  473. if (znak == 7) {
  474. byte x;
  475. byte y;
  476. for (x = 0; x < 8; x++) {
  477. for (y = 0; y < 8; y++) {
  478. h2[x][y] = letter7[x][y];
  479. }
  480. }
  481. }
  482. if (znak == 8) {
  483. byte x;
  484. byte y;
  485. for (x = 0; x < 8; x++) {
  486. for (y = 0; y < 8; y++) {
  487. h2[x][y] = letter8[x][y];
  488. }
  489. }
  490. }
  491. if (znak == 9) {
  492. byte x;
  493. byte y;
  494. for (x = 0; x < 8; x++) {
  495. for (y = 0; y < 8; y++) {
  496. h2[x][y] = letter9[x][y];
  497. }
  498. }
  499. }
  500. }
Add Comment
Please, Sign In to add comment