基于ADXL345的 LED摇摇棒原理

1.     LED摇摇棒原理

LED摇摇棒可以通过左右摇动而显示出自己定义的字符,这是利用了人的视觉停留原理。基于ADXL345LED摇摇棒的实现,主要是根据G_sensor所产生的数据来触发显示预先编码的LED数据。

2.     RasterTable Data编码原理

/***************************************************************

 This array contains ASCII character offset for LED display*/

/***************************************************************

 The characters are displayed using a pixel format.

 Each character is represented by 5 horizontal pixels and 8 vertical.

 Each column is a single byte.

 For example A is displayed in the following format

 

             0  0  1  0  0  =      *

             0  1  0  1  0  =    *   *

             1  0  0  0  1  =  *       *

             1  0  0  0  1  =  *       *

             1  1  1  1  1  =  * * * * *

             1  0  0  0  1  =  *       *

             1  0  0  0  1  =  *       *

             1  0  0  0  1  =  *       *

             |   |   |  |   |

             |   |   |  |  0x3F

             |   |   | 0x48

             |   |  0x88

             |  0x48

             0x3F

 

             {0x3F,0x48,0x88,0x48,0x3F},     // ASCII -  65 A

****************************************************************/

3.     Teraisc编码实例

如果想让 LED 摇摇棒显示“Terasic” Raster Table具体编码如下:

0x80,0x80,0xFF,0x80,0x80,     // ASCII -  T

0x00,                        //space

0x0E,0x15,0x15,0x15,0x0D,    //ASCII ---  e

0x00,                      //space

0x1F,0x08,0x10,0x10,0x08,    // ASCII ----  r

0x00,                      //space

0x26,0x29,0x29,0x1F,0x01,    //ASCII ----  a

0x00,                      //space

0x09,0x15,0x15,0x15,0x12,    //ASCII ----  s

0x00,                     //space

0x00,0x00,0x9F,0x00,0x00,    //ASCII ----  i

0x00,                      //space

0x0E,0x11,0x11,0x11,0x11,    //ASCII ----  c

 

4.     触发过程

  使用I2CSPI可以读出 ADXL345x, y, z三轴方向的数据。这里,我们读取的是x,y,z三轴的重力加速度,其中水平存放ADXL345 chip时, x,y为水平方向的重力加速度, z轴为重直地面,并与重力加速度同向。 我们选择y轴的值为判定条件。当y轴的值超过某一定值的时候,我们就可以显示RasterTable中的数据,显示完毕后,再进行循环判定显示。

下图为显示过程的流程图:其中yy轴方向的数据, TRIGGER为一个定值,例如可以设为 255

 

5.     DE-Nano 实物图

 

6.     LED摇摇棒效果图

 

7.     附录表

    {0x00,0x00,0x00,0x00,0x00},     // ASCII -  32 space

    {0x00,0x00,0xF9,0x00,0x00},     // ASCII -  33 !

    {0x00,0xE0,0x00,0xE0,0x00},     // ASCII -  34 "

    {0x24,0x7E,0x24,0x7E,0x24},     // ASCII -  35 #

    {0x34,0x4A,0xFF,0x49,0x26},     // ASCII -  36 $

    {0x22,0x04,0x08,0x10,0x22},     // ASCII -  37 %

    {0x26,0x59,0x4D,0x52,0x25},     // ASCII -  38 &

    {0x00,0x00,0xE0,0x00,0x00},     // ASCII -  39 '

    {0x00,0x3C,0x42,0x81,0x00},     // ASCII -  40 (

    {0x00,0x81,0x42,0x3C,0x00},     // ASCII -  41 )

    {0x28,0x30,0xE0,0x30,0x28},     // ASCII -  42 *

    {0x08,0x08,0x3E,0x08,0x08},     // ASCII -  43 +

    {0x00,0x01,0x02,0x00,0x00},     // ASCII -  44 ,

    {0x08,0x08,0x08,0x08,0x08},     // ASCII -  45 -

    {0x00,0x00,0x01,0x00,0x00},     // ASCII -  46 .

    {0x02,0x04,0x08,0x10,0x20},     // ASCII -  47 /

    {0x7E,0x81,0x81,0x81,0x7E},     // ASCII -  48 0

    {0x00,0x21,0xFF,0x01,0x00},     // ASCII -  49 1

    {0x41,0x83,0x85,0x89,0x71},     // ASCII -  50 2

    {0x42,0x91,0x91,0x91,0x6E},     // ASCII -  51 3

    {0xF0,0x10,0x10,0x10,0xFF},     // ASCII -  52 4

    {0xF2,0x91,0x91,0x91,0x8E},     // ASCII -  53 5

    {0x3E,0x51,0x91,0x91,0x8E},     // ASCII -  54 6

    {0x87,0x88,0x90,0xA0,0xC0},     // ASCII -  55 7

    {0x76,0x89,0x89,0x89,0x76},     // ASCII -  56 8

    {0x62,0x91,0x91,0x91,0x7e},     // ASCII -  57 9

    {0x00,0x00,0x24,0x00,0x00},     // ASCII -  58 :

    {0x00,0x01,0x12,0x00,0x00},     // ASCII -  59 ;

    {0x00,0x08,0x14,0x22,0x41},     // ASCII -  60 <

    {0x14,0x14,0x14,0x14,0x14},     // ASCII -  61 =

    {0x00,0x41,0x22,0x14,0x08},     // ASCII -  62 >

    {0x40,0x80,0x8D,0x90,0x60},     // ASCII -  63 ?

    {0x7E,0x81,0xBD,0xA5,0x78},     // ASCII -  64 @

    {0x3F,0x48,0x88,0x48,0x3F},     // ASCII -  65 A

    {0xFF,0x91,0x91,0x99,0x66},     // ASCII -  66 B

    {0x3C,0x42,0x81,0x81,0x42},     // ASCII -  67 C

    {0xFF,0x81,0x81,0x42,0x3C},     // ASCII -  68 D

    {0xFF,0x91,0x91,0x91,0x81},     // ASCII -  69 E

    {0xFF,0x90,0x90,0x90,0x80},     // ASCII -  70 F

    {0X3E,0x41,0x8F,0x88,0x4F},     // ASCII -  71 G

    {0xFF,0x10,0x10,0x10,0xFF},     // ASCII -  72 H

    {0x00,0x81,0xFF,0x81,0x00},     // ASCII -  73 I

    {0x06,0x01,0x81,0xFE,0x80},     // ASCII -  74 J

    {0xFF,0x18,0x24,0x42,0x81},     // ASCII -  75 K

    {0xFF,0x01,0x01,0x01,0x01},     // ASCII -  76 L

    {0xFF,0x40,0x30,0x40,0xFF},     // ASCII -  77 M

    {0xFF,0x40,0x20,0x10,0xFF},     // ASCII -  78 N

    {0x7E,0x81,0x81,0x81,0x7E},     // ASCII -  79 O

    {0xFF,0x90,0x90,0x90,0x60},     // ASCII -  80 P

    {0x7E,0x81,0x85,0x82,0x7D},     // ASCII -  81 Q

    {0xFF,0x98,0x94,0x92,0x61},     // ASCII -  82 R

    {0x72,0x89,0x89,0x89,0x46},     // ASCII -  83 S

    {0x80,0x80,0xFF,0x80,0x80},     // ASCII -  84 T

    {0xFE,0x01,0x01,0x01,0xFE},     // ASCII -  85 U

    {0xFC,0x02,0x01,0x02,0xFC},     // ASCII -  86 V

    {0xFF,0x02,0x1C,0x02,0xFF},     // ASCII -  87 W

    {0xC3,0x24,0x18,0x24,0xC3},     // ASCII -  88 X

    {0xC0,0x20,0x1F,0x20,0xC0},     // ASCII -  89 Y

    {0x87,0x89,0x91,0xA1,0xC1},     // ASCII -  90 Z

    {0x00,0xFF,0x81,0x81,0x00},     // ASCII -  91 [

    {0x20,0x10,0x08,0x04,0x02},     // ASCII -  92 '/'

    {0x00,0x81,0x81,0xFF,0x00},     // ASCII -  93 ]

    {0x20,0x40,0x80,0x40,0x20},     // ASCII -  94 ^

    {0x01,0x01,0x01,0x01,0x01},     // ASCII -  95 _

    {0x00,0x80,0x40,0x20,0x00},     // ASCII -  96 `

    {0x26,0x29,0x29,0x1F,0x01},     // ASCII -  97 a

    {0xFF,0x11,0x11,0x11,0x0E},     // ASCII -  98 b

    {0x0E,0x11,0x11,0x11,0x11},     // ASCII -  99 c

    {0x0E,0x11,0x11,0x11,0xFF},     // ASCII - 100 d

    {0x0E,0x15,0x15,0x15,0x0D},     // ASCII - 101 e

    {0x10,0x10,0x7F,0x90,0x90},     // ASCII - 102 f

    {0x08,0x15,0x15,0x15,0x0E},     // ASCII - 103 g

    {0xFF,0x08,0x08,0x08,0x07},     // ASCII - 104 h

    {0x00,0x00,0x9F,0x00,0x00},     // ASCII - 105 i

    {0x02,0x01,0x01,0x9F,0x00},     // ASCII - 106 j

    {0xFF,0x04,0x0A,0x11,0x00},     // ASCII - 107 k

    {0x00,0x01,0xFF,0x01,0x00},     // ASCII - 108 l

    {0x1F,0x10,0x0F,0x10,0x0F},     // ASCII - 109 m

    {0x10,0x0F,0x10,0x10,0x0F},     // ASCII - 110 n

    {0x0E,0x11,0x11,0x11,0x0E},     // ASCII - 111 o

    {0x1F,0x14,0x14,0x14,0x08},     // ASCII - 112 p

    {0x08,0x14,0x14,0x14,0x1F},     // ASCII - 113 q

    {0x1F,0x08,0x10,0x10,0x08},     // ASCII - 114 r

    {0x09,0x15,0x15,0x15,0x12},     // ASCII - 115 s

    {0x10,0x10,0x7F,0x11,0x12},     // ASCII - 116 t

    {0x1F,0x01,0x01,0x1F,0x01},     // ASCII - 117 u

    {0x1C,0x02,0x01,0x02,0x1C},     // ASCII - 118 v

    {0x1E,0x01,0x0F,0x01,0x1E},     // ASCII - 119 w

    {0x11,0x0A,0x04,0x0A,0x11},     // ASCII - 120 x

    {0x11,0x0A,0x04,0x08,0x10},     // ASCII - 121 y

    {0x11,0x13,0x15,0x19,0x11},     // ASCII - 122 z

    {0x18,0x66,0x81,0x81,0x00},     // ASCII - 123 {

    {0x00,0x00,0xFF,0x00,0x00},     // ASCII - 124 |

    {0x00,0x81,0x81,0x66,0x18},     // ASCII - 125 }

    {0x0C,0x10,0x08,0x04,0x18},     // ASCII - 126 ~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值