{"id":50,"date":"2010-07-10T17:02:08","date_gmt":"2010-07-10T17:02:08","guid":{"rendered":"http:\/\/paulsarduino.co.uk\/?page_id=50"},"modified":"2010-07-10T17:13:52","modified_gmt":"2010-07-10T17:13:52","slug":"pov-source-code","status":"publish","type":"page","link":"https:\/\/paulsarduino.co.uk\/?page_id=50","title":{"rendered":"POV Source code"},"content":{"rendered":"<pre>\/*\r\n POV\r\n\r\n 1. define a message\r\n 2. output vertical column of pixels and short delay\r\n 3. repeat\r\n\r\n*\/\r\nint\u00a0 A[] = { 8,\r\n 0b11000000,\r\n 0b01110000,\r\n 0b00101100,\r\n 0b00100110,\r\n 0b00111000,\r\n 0b11100000,\r\n 0b10000000,\r\n 0b00000000,\r\n};\r\nint\u00a0 B[] = { 6,\r\n 0b11111110,\r\n 0b10010010,\r\n 0b10010010,\r\n 0b10010010,\r\n 0b01111100,\r\n 0b00000000,\r\n};\r\nint\u00a0 C[] = { 8,\r\n 0b00010000,\r\n 0b01101100,\r\n 0b10000010,\r\n 0b10000010,\r\n 0b10000010,\r\n 0b11000110,\r\n 0b01000100,\r\n 0b00000000,\r\n};\r\nint\u00a0 D[] = { 7,\r\n 0b11111110,\r\n 0b10000010,\r\n 0b10000010,\r\n 0b10000010,\r\n 0b01000110,\r\n 0b00111000,\r\n 0b00000000,\r\n};\r\nint\u00a0 E[] = { 6,\r\n 0b11111110,\r\n 0b10010010,\r\n 0b10010010,\r\n 0b10010010,\r\n 0b10010010,\r\n 0b00000000,\r\n};\r\nint\u00a0 F[] = { 6,\r\n 0b11111110,\r\n 0b00010010,\r\n 0b00010010,\r\n 0b00010010,\r\n 0b00000010,\r\n 0b00000000,\r\n};\r\nint\u00a0 G[] = { 8,\r\n 0b00010000,\r\n 0b01111100,\r\n 0b10000010,\r\n 0b10000010,\r\n 0b10010010,\r\n 0b10010010,\r\n 0b01110100,\r\n 0b00000000,\r\n};\r\nint\u00a0 H[] = { 7,\r\n 0b11111110,\r\n 0b00010000,\r\n 0b00010000,\r\n 0b00010000,\r\n 0b11111110,\r\n 0b11111110,\r\n 0b00000000,\r\n};\r\nint\u00a0 I[] = { 2,\r\n 0b11111110,\r\n 0b00000000,\r\n};\r\nint\u00a0 J[] = { 5,\r\n 0b01000000,\r\n 0b10000000,\r\n 0b10000000,\r\n 0b11111110,\r\n 0b00000000,\r\n};\r\nint\u00a0 K[] = { 7,\r\n 0b11111110,\r\n 0b00010000,\r\n 0b00011000,\r\n 0b00100100,\r\n 0b11000010,\r\n 0b10000000,\r\n 0b00000000,\r\n};\r\nint\u00a0 L[] = { 5,\r\n 0b11111110,\r\n 0b10000000,\r\n 0b10000000,\r\n 0b10000000,\r\n 0b00000000,\r\n};\r\nint\u00a0 M[] = { 8,\r\n 0b11111110,\r\n 0b00011100,\r\n 0b11100000,\r\n 0b11000000,\r\n 0b00111000,\r\n 0b00011110,\r\n 0b11111110,\r\n 0b00000000,\r\n};\r\nint\u00a0 N[] = { 7,\r\n 0b11111110,\r\n 0b00001100,\r\n 0b00011000,\r\n 0b01100000,\r\n 0b11111110,\r\n 0b11111110,\r\n 0b00000000,\r\n};\r\nint\u00a0 O[] = { 8,\r\n 0b00010000,\r\n 0b01101100,\r\n 0b10000010,\r\n 0b10000010,\r\n 0b10000010,\r\n 0b11000110,\r\n 0b01111100,\r\n 0b00000000,\r\n};\r\nint\u00a0 P[] = { 6,\r\n 0b11111110,\r\n 0b00010010,\r\n 0b00010010,\r\n 0b00010010,\r\n 0b00011110,\r\n 0b00000000,\r\n};\r\nint\u00a0 Q[] = { 9,\r\n 0b00111000,\r\n 0b01101100,\r\n 0b10000010,\r\n 0b10000010,\r\n 0b11000010,\r\n 0b11000110,\r\n 0b11111100,\r\n 0b10000000,\r\n 0b00000000,\r\n};\r\nint\u00a0 R[] = { 7,\r\n 0b11111110,\r\n 0b00010010,\r\n 0b00010010,\r\n 0b00110010,\r\n 0b11011110,\r\n 0b10000000,\r\n 0b00000000,\r\n};\r\nint\u00a0 S[] = { 7,\r\n 0b01000000,\r\n 0b11001110,\r\n 0b10010010,\r\n 0b10010010,\r\n 0b10010010,\r\n 0b01100100,\r\n 0b00000000,\r\n};\r\nint\u00a0 T[] = { 7,\r\n 0b00000010,\r\n 0b00000010,\r\n 0b00000010,\r\n 0b11111110,\r\n 0b00000010,\r\n 0b00000010,\r\n 0b00000000,\r\n};\r\nint\u00a0 U[] = { 7,\r\n 0b01111110,\r\n 0b10000000,\r\n 0b10000000,\r\n 0b10000000,\r\n 0b11111110,\r\n 0b00111110,\r\n 0b00000000,\r\n};\r\nint\u00a0 V[] = { 8,\r\n 0b00000010,\r\n 0b00011100,\r\n 0b01100000,\r\n 0b11000000,\r\n 0b00110000,\r\n 0b00001110,\r\n 0b00000010,\r\n 0b00000000,\r\n};\r\nint\u00a0 W[] = { 11,\r\n 0b00000110,\r\n 0b00111100,\r\n 0b11100000,\r\n 0b11110000,\r\n 0b00001110,\r\n 0b00001110,\r\n 0b11110000,\r\n 0b11100000,\r\n 0b00111110,\r\n 0b00000010,\r\n 0b00000000,\r\n};\r\nint\u00a0 X[] = { 7,\r\n 0b10000010,\r\n 0b01000110,\r\n 0b00101100,\r\n 0b00111000,\r\n 0b01100100,\r\n 0b11000010,\r\n 0b00000000,\r\n};\r\nint\u00a0 Y[] = { 7,\r\n 0b00000010,\r\n 0b00000100,\r\n 0b00011000,\r\n 0b11110000,\r\n 0b00001100,\r\n 0b00000010,\r\n 0b00000000,\r\n};\r\nint\u00a0 Z[] = { 7,\r\n 0b10000000,\r\n 0b11100010,\r\n 0b10110010,\r\n 0b10011010,\r\n 0b10000110,\r\n 0b10000010,\r\n 0b00000000,\r\n};\r\n\r\n\/\/ pins to be used on Arduino for LCD display\r\nint STR = 13;\r\nint DOUT = 12;\r\nint CLK = 11;\r\n\r\n\/\/ the Qx in the order they are connected on the chip\r\nint RS = 0x40;\r\nint RW = 0x20;\r\nint EnableSet = 0x10;\r\nint EnableClr = 0xEF;\r\nint DMASK = 0x0F;\r\n\r\n\/\/ shift byte and strobe to display\r\nvoid sendByteOut(int value)\r\n{\r\n digitalWrite(STR,LOW);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ set the strobe LOW\r\n shiftOut(DOUT, CLK, LSBFIRST, value);\r\n digitalWrite(STR, HIGH);\r\n delayMicroseconds(100);\r\n digitalWrite(STR,LOW);\r\n}\r\n\r\nint* iMsg[] = {P,A,U,L};\r\nint iMsgLen = 4;\r\n\r\n\/\/ output tracking vars\r\nint\u00a0 iMsgIndex;\r\nint\u00a0 iCharIndex;\r\nint\u00a0 iCharLen;\r\n\r\nvoid setup()\r\n{\r\n pinMode(STR, OUTPUT);\r\n pinMode(DOUT, OUTPUT);\r\n pinMode(CLK, OUTPUT);\r\n\r\n iMsgIndex = 0;\r\n iCharIndex = 1;\r\n iCharLen = iMsg[iMsgIndex][0];\r\n}\r\n\r\nvoid loop()\r\n{\r\n sendByteOut(iMsg[iMsgIndex][iCharIndex]);\r\n\r\n delay(3);\r\n\r\n iCharIndex++;\r\n if (iCharIndex == iCharLen)\r\n {\r\n iCharIndex = 1;\r\n iMsgIndex++;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ next letter\r\n }\r\n\r\n if (iMsgIndex == iMsgLen)\r\n {\r\n iMsgIndex = 0;\r\n }\r\n iCharLen = iMsg[iMsgIndex][0];\r\n\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\/* POV 1. define a message 2. output vertical column of pixels and short delay 3. repeat *\/ int\u00a0 A[] = { 8, 0b11000000, 0b01110000, 0b00101100, 0b00100110, 0b00111000, 0b11100000, 0b10000000, 0b00000000, }; int\u00a0 B[] = { 6, 0b11111110, 0b10010010, 0b10010010, 0b10010010, 0b01111100, 0b00000000, }; int\u00a0 C[] = { 8, 0b00010000, 0b01101100, 0b10000010, 0b10000010, 0b10000010, 0b11000110, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":16,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-50","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/50","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=50"}],"version-history":[{"count":3,"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/50\/revisions"}],"predecessor-version":[{"id":52,"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/50\/revisions\/52"}],"up":[{"embeddable":true,"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/16"}],"wp:attachment":[{"href":"https:\/\/paulsarduino.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=50"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}