Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

projets:afficheur-defilant [2016/11/25 15:39]
admin
projets:afficheur-defilant [2020/12/11 18:45]
Ligne 1: Ligne 1:
-<code c> 
-#include <​TimerOne.h>​ 
-  
-unsigned char col[8]={2,​3,​4,​5,​6,​7,​8,​9};​ // pins for columns 
-unsigned char row[8]={10,​11,​12,​13,​14,​15,​16,​17};​ // pins for rows 
-unsigned char refreshRow=0;​ // set index 
-unsigned char lastRefreshRow=7;​ // for the refresh 
-unsigned int scrollIndex=0;​ // render starting column in bigMatrix 
-bool matrix [8] [8]; // image of the screen 
-bool bigMatrix [112] [8]; // image of complete message 
-  
-// character set 
-unsigned char carSp[8]={0,​0,​0,​0,​0,​0,​0,​0};​ // Space 
-unsigned char carEx[8]={24,​24,​24,​24,​24,​0,​24,​0};​ // ! 
-unsigned char carH[8]={102,​102,​102,​126,​102,​102,​102,​0};​ // H 
-unsigned char care[8]={0,​0,​60,​102,​126,​96,​60,​0};​ // e 
-unsigned char carl[8]={56,​24,​24,​24,​24,​24,​60,​0};​ // l 
-unsigned char caro[8]={0,​0,​60,​102,​102,​102,​60,​0};​ // o 
-unsigned char carw[8]={0,​0,​198,​214,​214,​254,​108,​0};​ // w 
-unsigned char carr[8]={0,​0,​216,​108,​96,​96,​240,​0};​ // r 
-unsigned char card[8]={28,​12,​124,​204,​204,​204,​118,​0};​ // d 
-unsigned char carF[8]={254,​98,​104,​120,​104,​96,​120,​0};​ // F 
-unsigned char cara[8]={0,​0,​120,​12,​124,​204,​118,​0};​ // a 
-unsigned char carb[8]={224,​224,​124,​102,​102,​102,​188,​0};​ // b 
-unsigned char car5[8]={126,​98,​96,​60,​12,​108,​60,​0};​ // 5 
  
-// fablab_web_5 
-  
-  
-void setup() { 
-Timer1.initialize(2500);​ // initialize the timer to refresh the screen (in microsecond) 
-test_matrix(10);​ // do a matrix led test 
-  
-// write message " Hello world !" in BigMatrix table 
-char2BigMatrix(carSp,​0);​ // [Space] 
-char2BigMatrix(carF,​8);​ // F 
-char2BigMatrix(cara,​16);​ // a 
-char2BigMatrix(carb,​24);​ // b 
-char2BigMatrix(carl,​32);​ // l 
-char2BigMatrix(cara,​40);​ // a 
-char2BigMatrix(carb,​48);​ //b 
-char2BigMatrix(carSp,​56);​ // [Space] 
-char2BigMatrix(carw,​64);​ // w 
-char2BigMatrix(care,​72);​ // e 
-char2BigMatrix(carb,​80);​ // b 
-char2BigMatrix(carSp,​88);​ // [Space] 
-char2BigMatrix(car5,​96);​ // 5 
-char2BigMatrix(carEx,​104);​ // !( 
-Timer1.attachInterrupt(refresh_matrix);​ // rely interruption to refresh_matrix function and start the timer 
-  
-  
-} 
-  
-void loop() { 
-  // put your main code here, to run repeatedly: 
-bigMatrice2matrice(scrollIndex);​ // take 8 columns of bigMatrix and send them to matrix 
-scrollIndex+=1;​ // shift one column for next call 
-if(scrollIndex>​111){ // if end of big matrix reached 
-  scrollIndex=0;​ // return to start 
-} 
-delay(100); // delay in ms between one column scrolling 
-} 
-  
-void init_matrix(){ // set power for each rows and columns 
-  for (int i=0;​i<​8;​i++){ 
-  pinMode(col[i],​OUTPUT);​ 
-  digitalWrite(col[i],​HIGH);​ 
-  pinMode(row[i],​OUTPUT);​ 
-  digitalWrite(row[i],​LOW);​ 
-} 
-} 
-  
-void test_matrix(int lasting){ // light up each led alternatively 
-    init_matrix();​ 
-    for (int y=0;​y<​8;​y++){ 
-  digitalWrite(row[y],​HIGH);​ 
-  for (int x=0;​x<​8;​x++){ 
-    digitalWrite(col[x],​LOW);​ 
-    delay(lasting);​ 
-    digitalWrite(col[x],​HIGH);​ 
-  } 
-  digitalWrite(row[y],​LOW);​ 
-  } 
-} 
-  
-void char2BigMatrix(unsigned char character[8],​unsigned char colInsert){ // insert a character in specified column of bigMatrix 
-  for(int x=colInsert;​x<​colInsert+8;​x++){ 
-    for(int y=0;​y<​8;​y++){ 
-      bigMatrix[x][y]=!(bitRead(character[y],​7-(x-colInsert)));​ 
-    } 
-  } 
-} 
-  
-void refresh_matrix(){ // draw matrix state on physical leds 
-  digitalWrite(row[lastRefreshRow],​LOW);​ 
-  for (int i=0;​i<​8;​i++){ 
-    digitalWrite(col[i],​matrix[i][refreshRow]);​ 
-  } 
-  digitalWrite(row[refreshRow],​HIGH);​ 
- ​refreshRow++;​ 
- if (refreshRow>​7){ 
- ​refreshRow=0;​ 
- ​lastRefreshRow=7; ​ 
- ​}else{ 
-  lastRefreshRow=refreshRow-1;​ 
- } 
-} 
-  
-void bigMatrice2matrice(unsigned int colStart){ // copy part of bigMatrix to matrix 
-  for(int x=0;​x<​8;​x++){ 
-    for(int y=0;​y<​8;​y++){ 
-      if (x+colStart>​111){ 
-        colStart=-x;​ 
-      } 
-      matrix[x][y]=bigMatrix[x+colStart][y];​ 
-    } 
-  } 
-} 
-</​code>​ 
- 
-lien : http://​www.blogule.net/​index.php/​2016/​01/​30/​scrolling-sur-matrice-a-led/​