Heliobb

Arduino animation on 8 leds display

Aug 6th, 2014
434
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1. #include "LowPower.h"
  2.  
  3. unsigned char i;
  4.  unsigned char j;
  5. /*Port Definitions*/
  6. int Max7219_pinCLK = 10;
  7. int Max7219_pinCS = 9;
  8. int Max7219_pinDIN = 8;
  9.  
  10.  
  11. //make your own with http://blog.riyas.org/2013/12/online-led-matrix-font-generator-with.html  
  12. unsigned char disp1[6][8]={
  13. {0x00,0x00,0x6c,0xfe,0xfe,0x7c,0x38,0x10},
  14. {0x00,0x00,0x36,0x7f,0x7f,0x3e,0x1c,0x08},
  15. {0x00,0x36,0x7f,0x7f,0x3e,0x1c,0x08,0x00},
  16. {0x36,0x7f,0x7f,0x3e,0x1c,0x08,0x00,0x00},
  17. {0x6c,0xfe,0xfe,0x7c,0x38,0x10,0x00,0x00},
  18. {0x00,0x6c,0xfe,0xfe,0x7c,0x38,0x10,0x00},
  19. };
  20.  
  21.  
  22.  
  23. void Write_Max7219_byte(unsigned char DATA)
  24. {  
  25.             unsigned char i;
  26.         digitalWrite(Max7219_pinCS,LOW);       
  27.         for(i=8;i>=1;i--)
  28.           {      
  29.              digitalWrite(Max7219_pinCLK,LOW);
  30.              digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data
  31.              DATA = DATA<<1;
  32.              digitalWrite(Max7219_pinCLK,HIGH);
  33.            }                                
  34. }
  35.  
  36.  
  37. void Write_Max7219(unsigned char address,unsigned char dat)
  38. {
  39.         digitalWrite(Max7219_pinCS,LOW);
  40.         Write_Max7219_byte(address);           //address,code of LED
  41.         Write_Max7219_byte(dat);               //data,figure on LED
  42.         digitalWrite(Max7219_pinCS,HIGH);
  43. }
  44.  
  45. void Init_MAX7219(void)
  46. {
  47.  Write_Max7219(0x09, 0x00);       //decoding :BCD
  48.  Write_Max7219(0x0a, 0x03);       //brightness
  49.  Write_Max7219(0x0b, 0x07);       //scanlimit;8 LEDs
  50.  Write_Max7219(0x0c, 0x01);       //power-down mode:0,normal mode:1
  51.  Write_Max7219(0x0f, 0x00);       //test display:1;EOT,display:0
  52. }
  53.  
  54.  
  55.  
  56. void setup()
  57. {
  58.  
  59.   pinMode(Max7219_pinCLK,OUTPUT);
  60.   pinMode(Max7219_pinCS,OUTPUT);
  61.   pinMode(Max7219_pinDIN,OUTPUT);
  62.   delay(50);
  63.   Init_MAX7219();
  64. }
  65.  
  66.  
  67. void loop()
  68. {
  69.    //LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
  70.    for(j=0;j<6;j++)
  71.   {
  72.    for(i=1;i<9;i++)
  73.     Write_Max7219(i,disp1[j][i-1]);
  74.    delay(random(90, 200));
  75.   }        
  76. }
Advertisement
Add Comment
Please, Sign In to add comment