93001浏览
查看: 93001|回复: 70

[3D模型] 3D打印,可定义动画徽章

  [复制链接]
大家是否喜欢徽章?
同样喜欢简单的T恤和帽子,那再适合不过了

它有哪些玩法 ?自定义编辑属于自己的个性动画 ;
3D打印,可定义动画徽章图7



3D打印,可定义动画徽章图11运 动 时 的 里 程 计 数 ;
                                配 合 相 关 表 带 变 身 ⌚️  心 率 什 么 的 一 手 掌 握 ;
                                蓝 牙 配 对 mp3 等 等  这 些 就 是 我 对 它 的 想 象.
硬 件 篇 :
3D打印,可定义动画徽章图8
准备一下:
.  Beetle控制器   
.  Thomas Rabbitson Led Matrix Board V1.0   灯板
.  FPC0.5-10P反向连接线长6cm
.  4.2v锂电池
.  锂电池充电板
.  三角开关
.  磁吸胸针
.  3D打印外壳
3D打印,可定义动画徽章图2
   想 到 夏 天 了,整 个 外 壳 部 分 也 很 清 新 、简 单。
   图 上 有 2 出 小 开 口 分 别 是 :micro usb 编 程 充 电 接 口 ;电 源 开 关 接 口

实际演示效果,给自己做了一个小动画;感觉还可以持续挖掘它的其他玩法
3D打印,可定义动画徽章图1
   外 壳 绘 制 好 后 导 入 比 较 常 用 的 cura,配 置 好 自 己 的 机 器 设 置 就 好 了 ,
整 个 打 印 30 分 钟 左 右( 材 料 我 选 择 的 带 有 点 木 质 感 觉 的 pla,当 然 可 以 尝 试 其 他 材 质 )
3D打印,可定义动画徽章图10

   整 个 完 成 的 效 果 很 小 巧、自 己 配 戴 出 去 玩 实 测 续 航 3 小 时。
续 航 不 是 很 长 ,因 为 led 酷 酷 的 闪 动 动 画 太 耗 电 了;充 电 的 话 大 约 30 分 钟 就 好,随 身 充 电 宝 也 是 可 以 充 电 的


3D打印,可定义动画徽章图9
1.连接白色排线 蓝色接口朝外;连接fpc转接板与beetle
2.连接电池到充电板B+/B-;注意正负极 不要连错❌
3D打印,可定义动画徽章图3
   第 一 次 用 这 么 小 巧 的 圆 形 led 灯 板,还 是 非 常 喜 欢的。箭 头 标 识 着 显 示 的 正 方 向
首先,我们需要理解我们是如何通过代码发送的数据来控制任意LED灯的。
以字母R”为例,我们可以看到,ASC_II_table_R[] 数组里面的数据,依次按一定顺序写入到LED_RAM_ADDR[] 地址中就可以实现对特定的LED的亮灭控制啦!

unsigned char  LED_RAM_ADDR[]= {                                      
                                     0x00,  0x02,
                                     0x04,  0x06, 
                                     0x08,  0x0a,
                                     0x0c,  0x0e,
                                     0x10,  0x12,
                                     0x14,  0x16,
                                     0x18,  0x1a, 
                                     0x1c,  0x1e, 
                                     0x20,  0x22, 
                                     0x24,  0x26,
                                     0x28,  0x2a, 
                                     0x2c,  0x2e
};

const unsigned char  ASC_II_table_R[]= {0x00,0x00,0x00,0x00,0x78,0x00,0x90,0x00,0x90,0x00,0x70,0x00,
0x50,0x00,0x90,0x00,0x90,0x00,0xB8,0x01,0x00,0x00,0x00,0x00};/*"R",0*/

3D打印,可定义动画徽章图4
先了解下二进制与十六进制的转换,如上面表格。
接下来我们来分析是如何点亮R”区域的LED灯, 由上图我们可以看到,当数据为“1”时LED被点亮,相当于我们给了此处的LED灯一个高电平,同样的道理,当数据为0时,LED为熄灭状态。那么我们是如何控制各个单元的电平高低的呢?
        我们以图中红色方框的数据为例,从右至左看二进制码为0111 1000”,转换为十六进制为“78”,根据上图中各单元的LED单元地址,我们可以看出此单元地址是0x08,对比代码中的数据,“R”字符字模的第5个数据是0x78。一次类推我们就可以很好的控制各个LED的亮灭啦,大家可以动手试试,写一个爱心的字模,再对比代码,看看是否是一样的。
大家也可以借用“字模软件”帮助取模,对于软件的应用,可以自行学习下,多尝试几个图形你就会发现其中的奥妙啦!
3D打印,可定义动画徽章图5
打开PCtoLCD2002,像素大小设置为12x12;
如图左击鼠标点一个像素(右击鼠标清楚一个像素),
点击生成字模加入到代码里即可;
3D打印,可定义动画徽章图6
点开设置:1.取模方式--逐行式
                 2.每行显示数-12/1
                 3.取模走向-逆向
                 4.自定义格式-C51

const unsigned char  hartTable_left[]= {0x00,0x00,0x00,0x00,0x8C,0x01,0xDE,0x03,0xFE,0x03,0xFE,0x03,0xFC,0x01,0xF8,0x00,0x70,0x00,0x20,0x00,0x00,0x00,0x00,0x00};/*"Left heart",0*/



将自动输出的数据粘贴到代码里
软 件 篇 :
Show_bitmap函数:
该函数用于将图形字模依次写入相应的单元地址以显示图形效果。
loop函数:
修改该函数,可以实现不同的功能。
跳动的心:

    呼吸的心:
    闪烁的心:



void loop() {    
  Show_bitmap(hartTable_left); //跳动的心
  delay(400);
  Show_bitmap(hartTable_right);
  delay(400);
}


Mingming.Zhang  初级技匠
 楼主|

发表于 2018-7-24 13:21:30

#define         CMD_ID            0x80  //command 命令码100 0x80(1000 0000)
#define         WRITE_ID          0xa0  //write 命令码101,0xa0(1010 0000)
#define         SYS_DIS           0x00  //关闭系统震荡         
#define         SYS_EN            0x01  //打开系统震荡         
#define         LED_OFF           0x02  //关闭LED显示       
#define         LED_ON            0x03  //打开LED显示        
#define         BLINK_OFF         0x08  //关闭闪烁       
#define         BLINK_ON          0x09  //打开闪烁                    
#define         SLAVE_MODE        0x10  //从模式       
#define         RC_MASTER_MODE    0x18  //内部RC时钟    
#define         COM_OPTION        0x24  //16COM n-mos模式   ab=01   
#define         PWM_DUTY          0xAE  //PWM亮度控制 最亮    
#define         PWM_DUTY_MIN      0xA0  //PWM亮度控制 最暗 

#define         CS_LOW()      digitalWrite(CS_pin,LOW)  //CS置低
#define         CS_HIGH()     digitalWrite(CS_pin,HIGH) //CS置高

#define         WR_LOW()      digitalWrite(WR_pin,LOW)  //WR置低 
#define         WR_HIGH()     digitalWrite(WR_pin,HIGH) //WR置高

#define         DATA_LOW()    digitalWrite(DATA_pin,LOW)  //DATA置低
#define         DATA_HIGH()   digitalWrite(DATA_pin,HIGH) //DATA置高

int  powerEn = 9;
int  CS_pin = 11;
int  RD_pin = A2;
int  WR_pin = 10;
int  DATA_pin = A1;

unsigned char  LED_RAM_ADDR[]= {                                      
                                     0x00,  0x02,
                                     0x04,  0x06, 
                                     0x08,  0x0a,
                                     0x0c,  0x0e,
                                     0x10,  0x12,
                                     0x14,  0x16,
                                     0x18,  0x1a, 
                                     0x1c,  0x1e, 
                                     0x20,  0x22, 
                                     0x24,  0x26,
                                     0x28,  0x2a, 
                                     0x2c,  0x2e
};

const unsigned char  ASC_II_table_R[]= {0x00,0x00,0x00,0x00,0x78,0x00,0x90,0x00,0x90,0x00,0x70,0x00,
0x50,0x00,0x90,0x00,0x90,0x00,0xB8,0x01,0x00,0x00,0x00,0x00};/*"R",0*/
const unsigned char  ASC_II_table_L[] = {0x00,0x00,0x00,0x00,0x38,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
0x10,0x00,0x10,0x00,0x10,0x01,0xF8,0x01,0x00,0x00,0x00,0x00};/*"L",0*/
const unsigned char  hartTable_left[]= {0x00,0x00,0x00,0x00,0x8C,0x01,0xDE,0x03,0xFE,0x03,0xFE,0x03,
0xFC,0x01,0xF8,0x00,0x70,0x00,0x20,0x00,0x00,0x00,0x00,0x00};/*"Left heart",0*/
const unsigned char  hartTable_right[]= {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x03,0xBC,0x07,0xFC,0x07,
0xFC,0x07,0xF8,0x03,0xF0,0x01,0xE0,0x00,0x40,0x00,0x00,0x00,};/*"Rihgt heart",0*/
const unsigned char  r[]= {0x00,0x00,0x00,0x00,0x78,0x00,0x90,0x00,0x90,0x00,0x70,0x00,
0x50,0x00,0x90,0x00,0x90,0x00,0xB8,0x01,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
const unsigned char  face[]= {0xF0,0x00,0x0C,0x03,0x06,0x06,0x02,0x04,0x0B,0x0D,0x0B,0x09,
0x01,0x08,0x93,0x0C,0xF2,0x04,0x06,0x06,0x0C,0x03,0xF0,0x00,};/*"Rihgt heart",0*/
const unsigned char  Z[]= {0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x01,0x80,0x00,0x40,0x00,
0x20,0x00,0x10,0x00,0x08,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
const unsigned char  a1[]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,
0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
const unsigned char  a2[]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x90,0x00,
0x90,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
const unsigned char  a3[]= {0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x01,0x08,0x01,0x08,0x01,
0x08,0x01,0x08,0x01,0xF8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
const unsigned char  a4[]= {0x00,0x00,0x00,0x00,0xFC,0x03,0x04,0x02,0x04,0x02,0x04,0x02,
0x04,0x02,0x04,0x02,0x04,0x02,0xFC,0x03,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
const unsigned char  a5[]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,};/*"Rihgt heart",0*/
unsigned char  a6[]= {
0x00,0x00,0x08,0x00,0x1C,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,
0x7F,0x00,0x7F,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x00,0x00};/*"A",0*/
const unsigned char  a7[]= {
0x00,0x00,0x00,0x00,0xF8,0x01,0x60,0x00,0x60,0x00,0x60,0x00,
0x60,0x00,0x60,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,};/*"I",0*/
//tx_moode为数据读取的方式,data为输入的数据,cnt为读取数据位数
const unsigned char  a8[]= {
0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x88,0x00,0x88,0x00,
0x88,0x00,0x88,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*"U",0*/
const unsigned char  a9[]= {
0x00,0x00,0x00,0x00,0xFC,0x00,0x04,0x01,0x04,0x02,0x04,0x02,
0x04,0x02,0x04,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00,0x00,};/*"D",0*/
const unsigned char  a10[]= {
0x00,0x00,0x04,0x04,0x08,0x02,0x10,0x01,0xA0,0x00,0x40,0x00,
0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00};/*"Y",0*/

const unsigned char  a11[]= {
0x00,0x00,0x00,0x01,0x80,0x03,0xC0,0x07,0x60,0x0C,0x60,0x0C,
0xE0,0x0F,0xE0,0x0F,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x00,0x00};/*"Y",0*/
const unsigned char  a12[]= {
0x00,0x00,0x80,0x00,0xC0,0x01,0xE0,0x03,0x30,0x06,0x30,0x06,
0xF0,0x07,0xF0,0x07,0x30,0x06,0x30,0x06,0x30,0x06,0x00,0x00};/*"Y",0*/
const unsigned char  a13[]= {
0x00,0x00,0x40,0x00,0xE0,0x00,0xF0,0x01,0x18,0x03,0x18,0x03,
0xF8,0x03,0xF8,0x03,0x18,0x03,0x18,0x03,0x18,0x03,0x00,0x00};/*"Y",0*/
const unsigned char  a14[]= {
0x00,0x00,0x20,0x00,0x70,0x00,0xF8,0x00,0x8C,0x01,0x8C,0x01,
0xFC,0x09,0xFC,0x09,0x8C,0x09,0x8C,0x09,0x8C,0x01,0x00,0x00};/*"Y",0*/
const unsigned char  a15[]= {
0x00,0x00,0x10,0x00,0x38,0x00,0x7C,0x00,0xC6,0x00,0xC6,0x08,
0xFE,0x04,0xFE,0x04,0xC6,0x04,0xC6,0x04,0xC6,0x08,0x00,0x00};/*"Y",0*/
const unsigned char  a16[]= {
0x00,0x00,0x08,0x00,0x1C,0x00,0x3E,0x00,0x63,0x00,0x63,0x0C,
0x7F,0x02,0x7F,0x02,0x63,0x02,0x63,0x02,0x63,0x0C,0x00,0x00};/*"Y",0*/
const unsigned char  a17[]= {
0x00,0x00,0x04,0x00,0x0E,0x00,0x1F,0x00,0x31,0x00,0x31,0x0E,
0x3F,0x01,0x3F,0x01,0x31,0x01,0x31,0x01,0x31,0x0E,0x00,0x00};/*"Y",0*/
const unsigned char  a18[]= {
0x00,0x00,0x02,0x08,0x07,0x08,0x0F,0x08,0x18,0x08,0x18,0x0F,
0x9F,0x08,0x9F,0x08,0x98,0x08,0x98,0x08,0x18,0x07,0x00,0x00};/*"Y",0*/
const unsigned char  a19[]= {
0x00,0x00,0x02,0x08,0x07,0x08,0x0F,0x08,0x18,0x08,0x18,0x0F,
0x9F,0x08,0x9F,0x08,0x98,0x08,0x98,0x08,0x18,0x0F,0x00,0x00};/*"Y",0*/
const unsigned char  a20[]= {
0x00,0x00,0x01,0x04,0x03,0x04,0x07,0x04,0x0C,0x04,0x8C,0x07,
0x4F,0x04,0x4F,0x04,0x4C,0x04,0x4C,0x04,0x8C,0x07,0x00,0x00};/*"Y",0*/
const unsigned char  a21[]= {
0x00,0x00,0x00,0x02,0x01,0x02,0x03,0x02,0x06,0x02,0xC6,0x03,
0x27,0x02,0x27,0x02,0x26,0x02,0x26,0x02,0xC6,0x03,0x00,0x00};/*"Y",0*/
const unsigned char  a22[]= {
0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x03,0x01,0xE3,0x01,
0x13,0x01,0x13,0x09,0x13,0x09,0x13,0x09,0xE3,0x01,0x00,0x00};/*"Y",0*/
const unsigned char  a23[]= {
0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x03,0x01,0xE3,0x09,
0x13,0x01,0x13,0x09,0x13,0x09,0x13,0x09,0xE3,0x01,0x00,0x00};
const unsigned char  a24[]= {
0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x81,0x08,0xF1,0x04,
0x89,0x08,0x89,0x04,0x89,0x04,0x89,0x04,0xF1,0x08,0x00,0x00};
const unsigned char  a25[]= {
0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x0C,0x78,0x02,
0x44,0x0C,0x44,0x02,0x44,0x02,0x44,0x02,0x78,0x0C,0x00,0x00};
const unsigned char  a26[]= {
0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x0E,0x3C,0x01,
0x22,0x0E,0x22,0x01,0x22,0x01,0x22,0x01,0x3C,0x0E,0x00,0x00};
const unsigned char  a27[]= {
0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x07,0x9E,0x08,
0x11,0x0F,0x91,0x08,0x91,0x08,0x91,0x08,0x1E,0x07,0x00,0x00};
const unsigned char  a28[]= {
0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x88,0x03,0x4F,0x04,
0x88,0x07,0x48,0x04,0x48,0x04,0x48,0x04,0x8F,0x03,0x00,0x00};
const unsigned char  a29[]= {
0x00,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0xC4,0x01,0x27,0x02,
0xC4,0x03,0x24,0x02,0x24,0x02,0x24,0x02,0xC7,0x01,0x00,0x00};
const unsigned char  a30[]= {
0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0xE2,0x00,0x13,0x01,
0xE2,0x01,0x12,0x01,0x12,0x01,0x12,0x01,0xE3,0x00,0x00,0x00};
const unsigned char  a31[]= {
0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x71,0x00,0x89,0x00,
0xF1,0x00,0x89,0x00,0x89,0x00,0x89,0x00,0x71,0x00,0x00,0x00};
const unsigned char  a32[]= {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00,
0x78,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x38,0x00,0x00,0x00};
void Write_HT1632C(unsigned char tx_mode , unsigned char data, unsigned char cnt)
{
    unsigned char i,temp;
    switch (tx_mode){
    case 0:
              temp = 0x01;//从右至左依次写入 若输入数据为0000 0001,则写入为1000 0000
              for(i = 0; i < cnt; i++)
              {
                  WR_LOW(); //低电平写入
                  if(data & temp)
                      DATA_HIGH();
                  else
                      DATA_LOW();
                  temp <<= 1;
                  WR_HIGH(); //高电平完成写入保存
              }
              break;
    case 1:
              temp = 0x80;    //从左至右,若输入数据为0000 0001,则写入仍为0000 0001 
              for(i = 0; i < cnt; i++)
              {
                  WR_LOW();
                  if(data & temp)
                      DATA_HIGH();
                  else
                      DATA_LOW();
                  temp >>= 1;
                  WR_HIGH();
              }
             break;
   default : break;
   }
}

void Write_CMD_HT1632C(unsigned char cmd)
{
    CS_LOW();  
    Write_HT1632C(1,CMD_ID, 3);  //command 命令码100 0x80(1000 0000)
    Write_HT1632C(1,cmd, 9);     //命令数据,第9位为0
    CS_HIGH();
}

void Clr_HT1632C(unsigned char bk_mode)  //(1:点亮,0:熄灭)
{
    unsigned char i;
    CS_LOW();  //Successive Address Writing
    Write_HT1632C(1,WRITE_ID, 3); //write 命令码101,0xa0(1010 0000)
    Write_HT1632C(1,0x00,7);      //Memory address 
   for(i = 0; i < 24; i++)            //点阵由24个区域组成
    {
        if(bk_mode)                   //如果bk_mode为1
            Write_HT1632C(0,0xff,8);  //点亮一个区域
        else
            Write_HT1632C(0,0x00,8); // 熄灭一个区域
    }
    CS_HIGH();
}

void Init_HT1632C(void)
{
    CS_HIGH();
    WR_HIGH();
    DATA_HIGH();
    Write_CMD_HT1632C(SYS_DIS);         //关闭系统震荡
    Write_CMD_HT1632C(COM_OPTION);      //16COM n-mos模式   ab=01 
    Write_CMD_HT1632C(RC_MASTER_MODE);  //内部RC时钟  
    Write_CMD_HT1632C(SYS_EN);          //关闭系统震荡 
    Write_CMD_HT1632C(PWM_DUTY);        //PWM亮度控制 最亮
    Write_CMD_HT1632C(BLINK_OFF);       //关闭LED闪烁
    Write_CMD_HT1632C(LED_ON);          //打开LED显示
}

void Write_Data_HT1632C(unsigned char addr, unsigned char data) //addr数据需写入的地址,data需写入的数据
{
    CS_LOW();
    Write_HT1632C(1,WRITE_ID, 3);   //write 命令码101,0xa0(1010 0000)
    Write_HT1632C(1,addr << 1, 7);  //写入地址
    Write_HT1632C(0,data ,8);       //写入数据
    CS_HIGH();
}

void setBrightness(unsigned char duty)  //通过设置PWM来设置LED灯的亮度
{
  if(duty > 15)   //duty的有效范围为0-15
    duty = 15;
  Write_CMD_HT1632C(PWM_DUTY_MIN | duty);
}

void ledSwitch(bool state)  //LED的状态选择,如果state=1则LED亮
{
  if(state)
    Write_CMD_HT1632C(LED_ON);  
  else
    Write_CMD_HT1632C(LED_OFF);    
}

void Show_bitmap(const unsigned char *p)  //形状显示,*p:要显示形状的字模
{
  unsigned char i; 
  for(i = 0; i < 24; i++) //依次写入24个单元  
  {
      Write_Data_HT1632C(LED_RAM_ADDR, *p);
      p++;  
  }
}
void Show_roll(const unsigned char *p) 
{
  unsigned char i,j;
  for(j =0; j <8;j++)
  { 
    for(i = 0; i < 24; i++) //依次写入24个单元  
    {
        Write_Data_HT1632C(LED_RAM_ADDR, *p);
        p++;  
    }
    delay(500);
  }
}
void setup() 
{
  pinMode(powerEn,OUTPUT); //输出模式
  pinMode(CS_pin, OUTPUT);
  pinMode(WR_pin, OUTPUT);
  pinMode(DATA_pin, OUTPUT);
  digitalWrite(powerEn, HIGH); //置高
  digitalWrite(CS_pin,HIGH);
  digitalWrite(WR_pin,HIGH);
  digitalWrite(DATA_pin,HIGH);
  Init_HT1632C();  //初始化函数调用(运行) 
  setBrightness(0.4);
}

void loop() {   

  Show_bitmap(a11);
  delay(100);
  Show_bitmap(a12);
  delay(100);
  Show_bitmap(a13);
  delay(100);
  Show_bitmap(a14);
  delay(100);
  Show_bitmap(a15);
  delay(100);
  Show_bitmap(a16);
  delay(100);
  Show_bitmap(a17);
  delay(100);
  Show_bitmap(a18);
  delay(100);

  Show_bitmap(a20);
  delay(100);
  Show_bitmap(a21);
  delay(100);
  //Show_bitmap(a22);
  //delay(100);
  Show_bitmap(a23);
  delay(100);
  Show_bitmap(a24);
  delay(100);
  Show_bitmap(a25);
  delay(100);
  Show_bitmap(a26);
  delay(100);
  Show_bitmap(a27);
  delay(100);
  Show_bitmap(a28);
  delay(100);
  Show_bitmap(a29);
  delay(100);
  Show_bitmap(a30);
  delay(100);
  Show_bitmap(a31);
  delay(100);
  Show_bitmap(a32);
  delay(100);
  Show_bitmap(face);
  delay(2000);
  Show_bitmap(a7);
  delay(400);
  Show_bitmap(hartTable_left);
  delay(400);
  Show_bitmap(hartTable_right);
  delay(400);
  /*Show_bitmap(hartTable_left); //跳动的心
  delay(400);
  Show_bitmap(hartTable_right);
  delay(400); 
  Show_bitmap(a1);  
  delay(50); 

  Show_bitmap(a2); 
  delay(50);

  Show_bitmap(a3); 
  delay(50);

  Show_bitmap(a4); 
  delay(50);
  //Write_CMD_HT1632C(BLINK_ON); 
  Show_bitmap(Z);
  delay(1000);

  Show_bitmap(face);
  delay(1000);
  Show_bitmap(a7);
  delay(400);
  Show_bitmap(hartTable_left);
  delay(400);
  Show_bitmap(hartTable_right);
  delay(400); */

}
MonsterYan 发表于 2018-7-23 14:32
前天下的单,昨天就收到了。到手后就直接被我家小丫头征用了,戴在胸口到处和人显摆……

但晚上准备重写程 ...

哦哦,好的。 我补出来了,您看一下吧(直接插入microusb,打开arduinoide软件看到端口  下载更改即可)附件是字模软件

pctolcd2002.zip

1.13 MB, 下载次数: 88

售价: 30 创造力  [记录]

回复

使用道具 举报

Mingming.Zhang  初级技匠
 楼主|

发表于 2018-7-2 13:00:57

hnyzcj 发表于 2018-7-2 10:17
来抬个头吗,帅哥

在等一个时机,再露脸
回复

使用道具 举报

 初级技匠

发表于 2020-12-16 13:27:34

  1. #define         CMD_ID            0x80  //command 命令码100 0x80(1000 0000)
  2. #define         WRITE_ID          0xa0  //write 命令码101,0xa0(1010 0000)
  3. #define         SYS_DIS           0x00  //关闭系统震荡         
  4. #define         SYS_EN            0x01  //打开系统震荡         
  5. #define         LED_OFF           0x02  //关闭LED显示      
  6. #define         LED_ON            0x03  //打开LED显示        
  7. #define         BLINK_OFF         0x08  //关闭闪烁      
  8. #define         BLINK_ON          0x09  //打开闪烁                    
  9. #define         SLAVE_MODE        0x10  //从模式      
  10. #define         RC_MASTER_MODE    0x18  //内部RC时钟   
  11. #define         COM_OPTION        0x24  //16COM n-mos模式   ab=01   
  12. #define         PWM_DUTY          0xAE  //PWM亮度控制 最亮   
  13. #define         PWM_DUTY_MIN      0xA0  //PWM亮度控制 最暗
  14. #define         CS_LOW()      digitalWrite(CS_pin,LOW)  //CS置低
  15. #define         CS_HIGH()     digitalWrite(CS_pin,HIGH) //CS置高
  16. #define         WR_LOW()      digitalWrite(WR_pin,LOW)  //WR置低
  17. #define         WR_HIGH()     digitalWrite(WR_pin,HIGH) //WR置高
  18. #define         DATA_LOW()    digitalWrite(DATA_pin,LOW)  //DATA置低
  19. #define         DATA_HIGH()   digitalWrite(DATA_pin,HIGH) //DATA置高
  20. int  powerEn = 9;
  21. int  CS_pin = 11;
  22. int  RD_pin = A2;
  23. int  WR_pin = 10;
  24. int  DATA_pin = A1;
  25. unsigned char  LED_RAM_ADDR[]= {                                      
  26.                                      0x00,  0x02,
  27.                                      0x04,  0x06,
  28.                                      0x08,  0x0a,
  29.                                      0x0c,  0x0e,
  30.                                      0x10,  0x12,
  31.                                      0x14,  0x16,
  32.                                      0x18,  0x1a,
  33.                                      0x1c,  0x1e,
  34.                                      0x20,  0x22,
  35.                                      0x24,  0x26,
  36.                                      0x28,  0x2a,
  37.                                      0x2c,  0x2e
  38. };
  39. const unsigned char  ASC_II_table_R[]= {0x00,0x00,0x00,0x00,0x78,0x00,0x90,0x00,0x90,0x00,0x70,0x00,
  40. 0x50,0x00,0x90,0x00,0x90,0x00,0xB8,0x01,0x00,0x00,0x00,0x00};/*"R",0*/
  41. const unsigned char  ASC_II_table_L[] = {0x00,0x00,0x00,0x00,0x38,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
  42. 0x10,0x00,0x10,0x00,0x10,0x01,0xF8,0x01,0x00,0x00,0x00,0x00};/*"L",0*/
  43. const unsigned char  hartTable_left[]= {0x00,0x00,0x00,0x00,0x8C,0x01,0xDE,0x03,0xFE,0x03,0xFE,0x03,
  44. 0xFC,0x01,0xF8,0x00,0x70,0x00,0x20,0x00,0x00,0x00,0x00,0x00};/*"Left heart",0*/
  45. const unsigned char  hartTable_right[]= {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x03,0xBC,0x07,0xFC,0x07,
  46. 0xFC,0x07,0xF8,0x03,0xF0,0x01,0xE0,0x00,0x40,0x00,0x00,0x00,};/*"Rihgt heart",0*/
  47. const unsigned char  r[]= {0x00,0x00,0x00,0x00,0x78,0x00,0x90,0x00,0x90,0x00,0x70,0x00,
  48. 0x50,0x00,0x90,0x00,0x90,0x00,0xB8,0x01,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
  49. const unsigned char  face[]= {0xF0,0x00,0x0C,0x03,0x06,0x06,0x02,0x04,0x0B,0x0D,0x0B,0x09,
  50. 0x01,0x08,0x93,0x0C,0xF2,0x04,0x06,0x06,0x0C,0x03,0xF0,0x00,};/*"Rihgt heart",0*/
  51. const unsigned char  Z[]= {0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x01,0x80,0x00,0x40,0x00,
  52. 0x20,0x00,0x10,0x00,0x08,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
  53. const unsigned char  a1[]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,
  54. 0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
  55. const unsigned char  a2[]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x90,0x00,
  56. 0x90,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
  57. const unsigned char  a3[]= {0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x01,0x08,0x01,0x08,0x01,
  58. 0x08,0x01,0x08,0x01,0xF8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
  59. const unsigned char  a4[]= {0x00,0x00,0x00,0x00,0xFC,0x03,0x04,0x02,0x04,0x02,0x04,0x02,
  60. 0x04,0x02,0x04,0x02,0x04,0x02,0xFC,0x03,0x00,0x00,0x00,0x00,};/*"Rihgt heart",0*/
  61. const unsigned char  a5[]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  62. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,};/*"Rihgt heart",0*/
  63. unsigned char  a6[]= {
  64. 0x00,0x00,0x08,0x00,0x1C,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,
  65. 0x7F,0x00,0x7F,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x00,0x00};/*"A",0*/
  66. const unsigned char  a7[]= {
  67. 0x00,0x00,0x00,0x00,0xF8,0x01,0x60,0x00,0x60,0x00,0x60,0x00,
  68. 0x60,0x00,0x60,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,};/*"I",0*/
  69. //tx_moode为数据读取的方式,data为输入的数据,cnt为读取数据位数
  70. const unsigned char  a8[]= {
  71. 0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x88,0x00,0x88,0x00,
  72. 0x88,0x00,0x88,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*"U",0*/
  73. const unsigned char  a9[]= {
  74. 0x00,0x00,0x00,0x00,0xFC,0x00,0x04,0x01,0x04,0x02,0x04,0x02,
  75. 0x04,0x02,0x04,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00,0x00,};/*"D",0*/
  76. const unsigned char  a10[]= {
  77. 0x00,0x00,0x04,0x04,0x08,0x02,0x10,0x01,0xA0,0x00,0x40,0x00,
  78. 0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00};/*"Y",0*/
  79. const unsigned char  a11[]= {
  80. 0x00,0x00,0x00,0x01,0x80,0x03,0xC0,0x07,0x60,0x0C,0x60,0x0C,
  81. 0xE0,0x0F,0xE0,0x0F,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x00,0x00};/*"Y",0*/
  82. const unsigned char  a12[]= {
  83. 0x00,0x00,0x80,0x00,0xC0,0x01,0xE0,0x03,0x30,0x06,0x30,0x06,
  84. 0xF0,0x07,0xF0,0x07,0x30,0x06,0x30,0x06,0x30,0x06,0x00,0x00};/*"Y",0*/
  85. const unsigned char  a13[]= {
  86. 0x00,0x00,0x40,0x00,0xE0,0x00,0xF0,0x01,0x18,0x03,0x18,0x03,
  87. 0xF8,0x03,0xF8,0x03,0x18,0x03,0x18,0x03,0x18,0x03,0x00,0x00};/*"Y",0*/
  88. const unsigned char  a14[]= {
  89. 0x00,0x00,0x20,0x00,0x70,0x00,0xF8,0x00,0x8C,0x01,0x8C,0x01,
  90. 0xFC,0x09,0xFC,0x09,0x8C,0x09,0x8C,0x09,0x8C,0x01,0x00,0x00};/*"Y",0*/
  91. const unsigned char  a15[]= {
  92. 0x00,0x00,0x10,0x00,0x38,0x00,0x7C,0x00,0xC6,0x00,0xC6,0x08,
  93. 0xFE,0x04,0xFE,0x04,0xC6,0x04,0xC6,0x04,0xC6,0x08,0x00,0x00};/*"Y",0*/
  94. const unsigned char  a16[]= {
  95. 0x00,0x00,0x08,0x00,0x1C,0x00,0x3E,0x00,0x63,0x00,0x63,0x0C,
  96. 0x7F,0x02,0x7F,0x02,0x63,0x02,0x63,0x02,0x63,0x0C,0x00,0x00};/*"Y",0*/
  97. const unsigned char  a17[]= {
  98. 0x00,0x00,0x04,0x00,0x0E,0x00,0x1F,0x00,0x31,0x00,0x31,0x0E,
  99. 0x3F,0x01,0x3F,0x01,0x31,0x01,0x31,0x01,0x31,0x0E,0x00,0x00};/*"Y",0*/
  100. const unsigned char  a18[]= {
  101. 0x00,0x00,0x02,0x08,0x07,0x08,0x0F,0x08,0x18,0x08,0x18,0x0F,
  102. 0x9F,0x08,0x9F,0x08,0x98,0x08,0x98,0x08,0x18,0x07,0x00,0x00};/*"Y",0*/
  103. const unsigned char  a19[]= {
  104. 0x00,0x00,0x02,0x08,0x07,0x08,0x0F,0x08,0x18,0x08,0x18,0x0F,
  105. 0x9F,0x08,0x9F,0x08,0x98,0x08,0x98,0x08,0x18,0x0F,0x00,0x00};/*"Y",0*/
  106. const unsigned char  a20[]= {
  107. 0x00,0x00,0x01,0x04,0x03,0x04,0x07,0x04,0x0C,0x04,0x8C,0x07,
  108. 0x4F,0x04,0x4F,0x04,0x4C,0x04,0x4C,0x04,0x8C,0x07,0x00,0x00};/*"Y",0*/
  109. const unsigned char  a21[]= {
  110. 0x00,0x00,0x00,0x02,0x01,0x02,0x03,0x02,0x06,0x02,0xC6,0x03,
  111. 0x27,0x02,0x27,0x02,0x26,0x02,0x26,0x02,0xC6,0x03,0x00,0x00};/*"Y",0*/
  112. const unsigned char  a22[]= {
  113. 0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x03,0x01,0xE3,0x01,
  114. 0x13,0x01,0x13,0x09,0x13,0x09,0x13,0x09,0xE3,0x01,0x00,0x00};/*"Y",0*/
  115. const unsigned char  a23[]= {
  116. 0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x03,0x01,0xE3,0x09,
  117. 0x13,0x01,0x13,0x09,0x13,0x09,0x13,0x09,0xE3,0x01,0x00,0x00};
  118. const unsigned char  a24[]= {
  119. 0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x81,0x08,0xF1,0x04,
  120. 0x89,0x08,0x89,0x04,0x89,0x04,0x89,0x04,0xF1,0x08,0x00,0x00};
  121. const unsigned char  a25[]= {
  122. 0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x0C,0x78,0x02,
  123. 0x44,0x0C,0x44,0x02,0x44,0x02,0x44,0x02,0x78,0x0C,0x00,0x00};
  124. const unsigned char  a26[]= {
  125. 0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x0E,0x3C,0x01,
  126. 0x22,0x0E,0x22,0x01,0x22,0x01,0x22,0x01,0x3C,0x0E,0x00,0x00};
  127. const unsigned char  a27[]= {
  128. 0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x07,0x9E,0x08,
  129. 0x11,0x0F,0x91,0x08,0x91,0x08,0x91,0x08,0x1E,0x07,0x00,0x00};
  130. const unsigned char  a28[]= {
  131. 0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x88,0x03,0x4F,0x04,
  132. 0x88,0x07,0x48,0x04,0x48,0x04,0x48,0x04,0x8F,0x03,0x00,0x00};
  133. const unsigned char  a29[]= {
  134. 0x00,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0xC4,0x01,0x27,0x02,
  135. 0xC4,0x03,0x24,0x02,0x24,0x02,0x24,0x02,0xC7,0x01,0x00,0x00};
  136. const unsigned char  a30[]= {
  137. 0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0xE2,0x00,0x13,0x01,
  138. 0xE2,0x01,0x12,0x01,0x12,0x01,0x12,0x01,0xE3,0x00,0x00,0x00};
  139. const unsigned char  a31[]= {
  140. 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x71,0x00,0x89,0x00,
  141. 0xF1,0x00,0x89,0x00,0x89,0x00,0x89,0x00,0x71,0x00,0x00,0x00};
  142. const unsigned char  a32[]= {
  143. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00,
  144. 0x78,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x38,0x00,0x00,0x00};
  145. void Write_HT1632C(unsigned char tx_mode , unsigned char data, unsigned char cnt)
  146. {
  147.     unsigned char i,temp;
  148.     switch (tx_mode){
  149.     case 0:
  150.               temp = 0x01;//从右至左依次写入 若输入数据为0000 0001,则写入为1000 0000
  151.               for(i = 0; i < cnt; i++)
  152.               {
  153.                   WR_LOW(); //低电平写入
  154.                   if(data & temp)
  155.                       DATA_HIGH();
  156.                   else
  157.                       DATA_LOW();
  158.                   temp <<= 1;
  159.                   WR_HIGH(); //高电平完成写入保存
  160.               }
  161.               break;
  162.     case 1:
  163.               temp = 0x80;    //从左至右,若输入数据为0000 0001,则写入仍为0000 0001
  164.               for(i = 0; i < cnt; i++)
  165.               {
  166.                   WR_LOW();
  167.                   if(data & temp)
  168.                       DATA_HIGH();
  169.                   else
  170.                       DATA_LOW();
  171.                   temp >>= 1;
  172.                   WR_HIGH();
  173.               }
  174.              break;
  175.    default : break;
  176.    }
  177. }
  178. void Write_CMD_HT1632C(unsigned char cmd)
  179. {
  180.     CS_LOW();  
  181.     Write_HT1632C(1,CMD_ID, 3);  //command 命令码100 0x80(1000 0000)
  182.     Write_HT1632C(1,cmd, 9);     //命令数据,第9位为0
  183.     CS_HIGH();
  184. }
  185. void Clr_HT1632C(unsigned char bk_mode)  //(1:点亮,0:熄灭)
  186. {
  187.     unsigned char i;
  188.     CS_LOW();  //Successive Address Writing
  189.     Write_HT1632C(1,WRITE_ID, 3); //write 命令码101,0xa0(1010 0000)
  190.     Write_HT1632C(1,0x00,7);      //Memory address
  191.    for(i = 0; i < 24; i++)            //点阵由24个区域组成
  192.     {
  193.         if(bk_mode)                   //如果bk_mode为1
  194.             Write_HT1632C(0,0xff,8);  //点亮一个区域
  195.         else
  196.             Write_HT1632C(0,0x00,8); // 熄灭一个区域
  197.     }
  198.     CS_HIGH();
  199. }
  200. void Init_HT1632C(void)
  201. {
  202.     CS_HIGH();
  203.     WR_HIGH();
  204.     DATA_HIGH();
  205.     Write_CMD_HT1632C(SYS_DIS);         //关闭系统震荡
  206.     Write_CMD_HT1632C(COM_OPTION);      //16COM n-mos模式   ab=01
  207.     Write_CMD_HT1632C(RC_MASTER_MODE);  //内部RC时钟  
  208.     Write_CMD_HT1632C(SYS_EN);          //关闭系统震荡
  209.     Write_CMD_HT1632C(PWM_DUTY);        //PWM亮度控制 最亮
  210.     Write_CMD_HT1632C(BLINK_OFF);       //关闭LED闪烁
  211.     Write_CMD_HT1632C(LED_ON);          //打开LED显示
  212. }
  213. void Write_Data_HT1632C(unsigned char addr, unsigned char data) //addr数据需写入的地址,data需写入的数据
  214. {
  215.     CS_LOW();
  216.     Write_HT1632C(1,WRITE_ID, 3);   //write 命令码101,0xa0(1010 0000)
  217.     Write_HT1632C(1,addr << 1, 7);  //写入地址
  218.     Write_HT1632C(0,data ,8);       //写入数据
  219.     CS_HIGH();
  220. }
  221. void setBrightness(unsigned char duty)  //通过设置PWM来设置LED灯的亮度
  222. {
  223.   if(duty > 15)   //duty的有效范围为0-15
  224.     duty = 15;
  225.   Write_CMD_HT1632C(PWM_DUTY_MIN | duty);
  226. }
  227. void ledSwitch(bool state)  //LED的状态选择,如果state=1则LED亮
  228. {
  229.   if(state)
  230.     Write_CMD_HT1632C(LED_ON);  
  231.   else
  232.     Write_CMD_HT1632C(LED_OFF);   
  233. }
  234. void Show_bitmap(const unsigned char *p)  //形状显示,*p:要显示形状的字模
  235. {
  236.   unsigned char i;
  237.   for(i = 0; i < 24; i++) //依次写入24个单元  
  238.   {
  239.       Write_Data_HT1632C(LED_RAM_ADDR, *p);
  240.       p++;  
  241.   }
  242. }
  243. void Show_roll(const unsigned char *p)
  244. {
  245.   unsigned char i,j;
  246.   for(j =0; j <8;j++)
  247.   {
  248.     for(i = 0; i < 24; i++) //依次写入24个单元  
  249.     {
  250.         Write_Data_HT1632C(LED_RAM_ADDR, *p);
  251.         p++;  
  252.     }
  253.     delay(500);
  254.   }
  255. }
  256. void setup()
  257. {
  258.   pinMode(powerEn,OUTPUT); //输出模式
  259.   pinMode(CS_pin, OUTPUT);
  260.   pinMode(WR_pin, OUTPUT);
  261.   pinMode(DATA_pin, OUTPUT);
  262.   digitalWrite(powerEn, HIGH); //置高
  263.   digitalWrite(CS_pin,HIGH);
  264.   digitalWrite(WR_pin,HIGH);
  265.   digitalWrite(DATA_pin,HIGH);
  266.   Init_HT1632C();  //初始化函数调用(运行)
  267.   setBrightness(0.4);
  268. }
  269. void loop() {   
  270.   Show_bitmap(a11);
  271.   delay(100);
  272.   Show_bitmap(a12);
  273.   delay(100);
  274.   Show_bitmap(a13);
  275.   delay(100);
  276.   Show_bitmap(a14);
  277.   delay(100);
  278.   Show_bitmap(a15);
  279.   delay(100);
  280.   Show_bitmap(a16);
  281.   delay(100);
  282.   Show_bitmap(a17);
  283.   delay(100);
  284.   Show_bitmap(a18);
  285.   delay(100);
  286.   Show_bitmap(a20);
  287.   delay(100);
  288.   Show_bitmap(a21);
  289.   delay(100);
  290.   //Show_bitmap(a22);
  291.   //delay(100);
  292.   Show_bitmap(a23);
  293.   delay(100);
  294.   Show_bitmap(a24);
  295.   delay(100);
  296.   Show_bitmap(a25);
  297.   delay(100);
  298.   Show_bitmap(a26);
  299.   delay(100);
  300.   Show_bitmap(a27);
  301.   delay(100);
  302.   Show_bitmap(a28);
  303.   delay(100);
  304.   Show_bitmap(a29);
  305.   delay(100);
  306.   Show_bitmap(a30);
  307.   delay(100);
  308.   Show_bitmap(a31);
  309.   delay(100);
  310.   Show_bitmap(a32);
  311.   delay(100);
  312.   Show_bitmap(face);
  313.   delay(2000);
  314.   Show_bitmap(a7);
  315.   delay(400);
  316.   Show_bitmap(hartTable_left);
  317.   delay(400);
  318.   Show_bitmap(hartTable_right);
  319.   delay(400);
  320.   /*Show_bitmap(hartTable_left); //跳动的心
  321.   delay(400);
  322.   Show_bitmap(hartTable_right);
  323.   delay(400);
  324.   Show_bitmap(a1);  
  325.   delay(50);
  326.   Show_bitmap(a2);
  327.   delay(50);
  328.   Show_bitmap(a3);
  329.   delay(50);
  330.   Show_bitmap(a4);
  331.   delay(50);
  332.   //Write_CMD_HT1632C(BLINK_ON);
  333.   Show_bitmap(Z);
  334.   delay(1000);
  335.   Show_bitmap(face);
  336.   delay(1000);
  337.   Show_bitmap(a7);
  338.   delay(400);
  339.   Show_bitmap(hartTable_left);
  340.   delay(400);
  341.   Show_bitmap(hartTable_right);
  342.   delay(400); */
  343. }
复制代码
回复

使用道具 举报

hnyzcj  版主

发表于 2018-7-2 10:17:31

来抬个头吗,帅哥
回复

使用道具 举报

hnyzcj  版主

发表于 2018-7-2 13:03:32

Mingming.Zhang 发表于 2018-7-2 13:00
在等一个时机,再露脸

:lol
回复

使用道具 举报

dt  高级技师

发表于 2018-7-4 18:54:00

谁能告诉我哪里有这个灯板卖
回复

使用道具 举报

Mingming.Zhang  初级技匠
 楼主|

发表于 2018-7-5 11:27:53

dt 发表于 2018-7-4 18:54
谁能告诉我哪里有这个灯板卖

https://www.dfrobot.com.cn/goods-1762.html    这里
回复

使用道具 举报

doublb2017  见习技师

发表于 2018-7-6 08:42:09

在某宝上个物料包吧,到处抓零件,太费劲了,很cool的产品
回复

使用道具 举报

Mingming.Zhang  初级技匠
 楼主|

发表于 2018-7-6 09:54:34

doublb2017 发表于 2018-7-6 08:42
在某宝上个物料包吧,到处抓零件,太费劲了,很cool的产品

是的,  我可以统计一下 一次整理10套物料包    方便大家一次完成
回复

使用道具 举报

chinazmde  高级技师

发表于 2018-7-7 10:21:23

支持一下



回复

使用道具 举报

微笑的rockets  NPC

发表于 2018-7-11 19:00:01

https://www.dfrobot.com.cn/goods-1761.html
新鲜出炉的完整版,买来即可以使用的版本。
回复

使用道具 举报

再粗点再大点  学徒

发表于 2018-7-15 13:12:44

学习了
回复

使用道具 举报

MonsterYan  见习技师

发表于 2018-7-23 14:32:09

本帖最后由 MonsterYan 于 2018-7-23 15:50 编辑

前天下的单,昨天就收到了。到手后就直接被我家小丫头征用了,戴在胸口到处和人显摆……

但晚上准备重写程序时发现在网上根本找不到“Thomas Rabbitson Led Matrix Board V1.0   灯板”这个灯板的介绍和接口定义,也不知道徽章里面是怎么连线的……能把示范代码贴出来么?或者给个灯板的资料也行啊……
回复

使用道具 举报

Niko  高级技师

发表于 2018-7-28 21:41:40

已mark,谢楼主
回复

使用道具 举报

Emp~少年  见习技师

发表于 2018-8-2 10:30:04

请问3d模型文件能否get一下?
回复

使用道具 举报

Mingming.Zhang  初级技匠
 楼主|

发表于 2018-8-2 11:06:08

Emp~少年 发表于 2018-8-2 10:30
请问3d模型文件能否get一下?

下载附件徽章.zip

模型文件以上,快拿走

回复

使用道具 举报

Emp~少年  见习技师

发表于 2018-8-2 11:14:55

您好,我非常喜欢您这个产品,想请问您fpc和beetle的引脚如何接线的呢?上面的图片不是很清晰
回复

使用道具 举报

Emp~少年  见习技师

发表于 2018-8-2 11:17:18

Mingming.Zhang 发表于 2018-8-2 11:06
模型文件以上,快拿走

好的谢谢
回复

使用道具 举报

Emp~少年  见习技师

发表于 2018-8-2 11:27:00


还有您的fpc,beetle,电池,还有充电板等都封装在这个外壳之中么? 他们是如何相连的呢?
回复

使用道具 举报

Mingming.Zhang  初级技匠
 楼主|

发表于 2018-8-2 15:56:15

Emp~少年 发表于 2018-8-2 11:14
您好,我非常喜欢您这个产品,想请问您fpc和beetle的引脚如何接线的呢?上面的图片不是很清晰 ...

等等,晚点回复你的所有问题。在回复里  记得看
回复

使用道具 举报

1095919770  学徒

发表于 2018-8-3 12:33:21

将beetle插上电脑后,识别不了串口,这是程序使用了串口还是什么问题
回复

使用道具 举报

1234下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail