Advertisement
Guest User

Untitled

a guest
Nov 3rd, 2012
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.47 KB | None | 0 0
  1. void
  2. setState(int *pins, int len, int state)
  3. {
  4.   int i;
  5.   for(i = 0; i < len; i++)
  6.     {
  7.       if(pins[i] != 0)
  8.         digitalWrite(pins[i], state);
  9.     }
  10. }
  11.  
  12. void
  13. copyArray(int *array1, int *array2, int len)
  14. {
  15.   int i;
  16.   for(i = 0; i < len; i++)
  17.     {
  18.       array1[i] = array2[i];
  19.     }
  20. }
  21.  
  22. void
  23. makeChar(int *aff, char c, int len, int cl, int on, int off)
  24. {
  25.   int afficheur[7];
  26.   copyArray(afficheur, aff, 7);
  27.  
  28.   if(cl == true)
  29.     setState(afficheur, len, off);
  30.  
  31.   switch(c)
  32.     {
  33.       case 'A':
  34.         afficheur[3] = 0;
  35.         break;
  36.       case 'B':
  37.         afficheur[0] = 0;
  38.         afficheur[1] = 0;
  39.         break;
  40.       case 'C':
  41.         afficheur[1] = 0;
  42.         afficheur[2] = 0;
  43.         afficheur[6] = 0;
  44.         break;
  45.       case 'D':
  46.         afficheur[0] = 0;
  47.         afficheur[5] = 0;
  48.         break;
  49.       case 'E':
  50.         afficheur[1] = 0;
  51.         afficheur[2] = 0;
  52.         break;
  53.       case 'F':
  54.         afficheur[1] = 0;
  55.         afficheur[2] = 0;
  56.         afficheur[3] = 0;
  57.         break;
  58.       case 'H':
  59.         afficheur[0] = 0;
  60.         afficheur[3] = 0;
  61.         break;
  62.       case 'I':
  63.         afficheur[0] = 0;
  64.         afficheur[3] = 0;
  65.         afficheur[4] = 0;
  66.         afficheur[5] = 0;
  67.         afficheur[6] = 0;
  68.         break;
  69.       case 'J':
  70.         afficheur[0] = 0;
  71.         afficheur[5] = 0;
  72.         afficheur[6] = 0;
  73.         break;
  74.       case 'L':
  75.         afficheur[0] = 0;
  76.         afficheur[1] = 0;
  77.         afficheur[2] = 0;
  78.         afficheur[6] = 0;
  79.         break;
  80.       case 'O':
  81.         afficheur[0] = 0;
  82.         afficheur[1] = 0;
  83.         afficheur[5] = 0;
  84.         break;
  85.       case 'P':
  86.         afficheur[2] = 0;
  87.         afficheur[3] = 0;
  88.         break;
  89.       case 'S':
  90.         afficheur[1] = 0;
  91.         afficheur[4] = 0;
  92.         break;
  93.       case 'T':
  94.         afficheur[0] = 0;
  95.         afficheur[1] = 0;
  96.         afficheur[2] = 0;
  97.         afficheur[3] = 0;
  98.         break;
  99.       case 'U':
  100.         afficheur[0] = 0;
  101.         afficheur[6] = 0;
  102.         break;
  103.       case 'Y':
  104.         afficheur[0] = 0;
  105.         afficheur[4] = 0;
  106.         break;
  107.       case '0':
  108.         afficheur[6] = 0;
  109.         break;
  110.       case '1':
  111.         afficheur[0] = 0;
  112.         afficheur[3] = 0;
  113.         afficheur[4] = 0;
  114.         afficheur[5] = 0;
  115.         afficheur[6] = 0;
  116.         break;
  117.       case '2':
  118.         afficheur[2] = 0;
  119.         afficheur[5] = 0;
  120.         break;
  121.       case '3':
  122.         afficheur[4] = 0;
  123.         afficheur[5] = 0;
  124.         break;
  125.       case '4':
  126.         afficheur[0] = 0;
  127.         afficheur[3] = 0;
  128.         afficheur[4] = 0;
  129.         break;
  130.       case '5':
  131.         afficheur[1] = 0;
  132.         afficheur[4] = 0;
  133.         break;
  134.       case '6':
  135.         afficheur[1] = 0;
  136.         break;
  137.       case '7':
  138.         afficheur[3] = 0;
  139.         afficheur[4] = 0;
  140.         afficheur[5] = 0;
  141.         afficheur[6] = 0;
  142.         break;
  143.       case '8':
  144.         break;
  145.       case '9':
  146.         afficheur[4] = 0;
  147.         break;
  148.       case '-':
  149.         afficheur[0] = 0;
  150.         afficheur[1] = 0;
  151.         afficheur[2] = 0;
  152.         afficheur[3] = 0;
  153.         afficheur[4] = 0;
  154.         afficheur[5] = 0;
  155.         break;
  156.       default:
  157.         afficheur[0] = 0;
  158.         afficheur[1] = 0;
  159.         afficheur[2] = 0;
  160.         afficheur[3] = 0;
  161.         afficheur[4] = 0;
  162.         afficheur[5] = 0;
  163.         afficheur[6] = 0;
  164.         break;
  165.     }
  166.  
  167.   setState(afficheur, len, on);
  168. }
  169.  
  170. /*
  171.   THIS IS THE PART YOU GOT TO CHANGE
  172. SET THE NĀ° OF THE PIN FOR EACH SEGMENT
  173. FOR EXAMPLE : HERE THE PIN 4 IS CONNECTED
  174. TO THE A SEGMENT
  175. */
  176.  
  177. int A = 4;
  178. int B = 3;
  179. int C = 5;
  180. int D = 6;
  181. int E = 2;
  182. int F = 7;
  183. int G = 8;
  184.  
  185. int aff[] = {A, B, C, D , E, F, G};
  186.  
  187. void
  188. setup()
  189. {
  190.   int i;
  191.   for(i = 0; i < 7; i++)
  192.     pinMode(aff[i], OUTPUT);
  193.   Serial.begin(9600);
  194.   Serial.println("[DEBUG] Connected");
  195. }
  196.  
  197. size_t
  198. getSerial(char *buffer, size_t len)
  199. {
  200.   size_t written = 0;
  201.   size_t nb = Serial.available();
  202.   if(nb)
  203.     {
  204.       while(nb > 0 && written < len)
  205.         {
  206.           buffer[written] = Serial.read();
  207.           written++;
  208.           nb = Serial.available();
  209.         }
  210.       return written;
  211.     }
  212.   else
  213.     return false;
  214. }
  215.  
  216. void
  217. loop()
  218. {
  219.   int i;
  220.   char to_aff[64];
  221.   int written;
  222.  
  223.   if((written = getSerial(to_aff, 64)))
  224.     {
  225.       for(i = 0; i < written; i++)
  226.         {
  227.           makeChar(aff, to_aff[i], 7, true, LOW, HIGH);
  228.           delay(1000);
  229.         }
  230.     }
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement