版主: wanchong , wangyu , eepwwp , firedom |
a252284222
最后登陆时间:2014-06-27 14:04:07 |
10.板卡连接外部模块测试; |
a252284222
最后登陆时间:2014-06-27 14:04:07 |
11.个人智能终端整体设计测试; 测试TMD时,给烧了 ~项目整体,(except huoer)
整体连接,接线。代码使用arduino ide for galileo 编写。首先是在arduino uno r3 上测试通过后转过来的。上电时可以看到板卡灯不亮,而模块就是六轴的模块上面的灯亮的~ 然后闻到一股臭味以为是电脑什么地方烧了·~继续观察
所有接线完毕,然后使用充电宝给sbs供电,板卡还是不亮12864屏直接翘起来了,发现是这里烧了
不干胶已经融化了
扯下来发现12864背面,电源芯片就是5V转3.3V的芯片把led背光板的电源线都烧烂了,芯片发热严重烫手
扯开发现led背光板在电源芯片位置的部分已经融化收缩了。
|
此帖由a252284222于2014-10-26 23:38:59最后编辑
|
|
eepwwp
最后登陆时间:2014-06-27 17:29:11 |
好认真的赶教
|
nakey
最后登陆时间:2015-12-28 15:04:55 |
期待着每个阶段的内容
|
a252284222
最后登陆时间:2014-06-27 14:04:07 |
稍后继续~~
|
a252284222
最后登陆时间:2014-06-27 14:04:07 |
为嘛,手机发不了图片
|
a252284222
最后登陆时间:2014-06-27 14:04:07 |
1.12864 OLED 纵然我的12864在昨晚由于一个失误烧掉了,但是接线依然在清晰的记得,
从左到又, GND-负极 VCC-5V正极 NP-空
mini12864与SBS之间的接线。
CS—— 8 //片选 低有效
RST—— 9 //给芯片复位,低有效,如果不需软件给芯片复位,可不连接
A0——10 //数据和命令选择,L 命令 H 数据
CLK——13 //时钟
MOSI——11 //数据
使用spi与oled进行通信,进行数据显示
#include "Lcd12864.h"
2.MPU6050
MPU6050 获取当前角度, 接线从上到下依次为, vcc-5V正极 GND-负极 MPU6050与SBS连接 SCL- A5 //串行时钟 SDA- A4 //串行数据 int-2 //中断数字输出 使用iic方式进行通信,主机获取MPU6050值进行后续计算,
#include "Wire.h"
//输出,3向加速度,为什么读出来的值要除以16384?,因为手册上面这么说的
//输出3相角度,为me要除以131?同上 3.霍尔开关,这个少 正极 负极 开关量输出-D3 //关键触发装置, D3 高,读取角度值并计算存入 bmp3[1024]={存放计算出来的点阵};内,
|
a252284222
最后登陆时间:2014-06-27 14:04:07 |
void wr_lcd(uchar dat_comm,uchar content)// { // 要写的数据 uchar a,i,j; delay_us(50); a=content; LCD_SCLK0; //en=0; LCD_SID1; //wr=1 for(i=0;i<5;i++) //数据时序*****************8 前5个高电平的同步码 { LCD_SCLK1; LCD_SCLK0; } LCD_SID0; //wr=0 写操作
LCD_SCLK1; //en=1 来一个时钟 LCD_SCLK0; //en=0 if(dat_comm) LCD_SID1; //RS=1 写数据 else LCD_SID0; //RS=0 写指令
LCD_SCLK1; //来一个时钟 LCD_SCLK0;
LCD_SID0; //控制字的最后一位为0
LCD_SCLK1; //来一个时钟 LCD_SCLK0;
for(j=0;j<2;j++)// { uchar i,j; uchar a=0;//a存放读取的数据 delay_us(50); LCD_SCLK0; //en=0; LCD_SID1; //wr=1 for(i=0;i<5;i++) //数据时序*****************8 前5个高电平的同步码 { LCD_SCLK1; LCD_SCLK0; } LCD_SID1; //wr=1 读操作
LCD_SCLK1; //en=1 来一个时钟 LCD_SCLK0; //en=0
LCD_SID1; //RS=1 读数据
LCD_SCLK1; //来一个时钟 LCD_SCLK0;
LCD_SID0; //控制字的最后一位为0
LCD_SCLK1; //来一个时钟 LCD_SCLK0;
for(j=0;j<2;j++)/ void Draw_Point(unsigned char x,unsigned char y0,unsigned char color) { unsigned char row,collum,cbite; unsigned char tempH,tempL; wr_lcd(comm,0x34); //打开扩展指令集 wr_lcd(comm,0x36); //打开绘图显示
// uchar y_Byte,y_bit,x_Byte,x_bit; // y_Byte = y/32; //0:上半屏幕1:下半屏幕 // y_bit = y2; //y 的行号 // x_Byte = x/16; //x 的列号 // x_bit = x; //x 的位 // Write_Cmd(0x34); //打开扩展指令集 // Write_Cmd(0x36); //打开绘图显示 // Write_Cmd(0x80+31-y_bit); // Write_Cmd(0x80+x_Byte+(1-y_Byte)*8);
collum=x>>4; //右移4位 相当于除以16取整,得到的是x的所在大列的列号 cbite=x&0x0f;
if(y0<32) row=y0; else { row=y0-32; collum+=8; }
wr_lcd(comm,0x80+row); //先设定垂直位置 wr_lcd(comm,0x80+collum); //再设定水平位置 //上面两句指定了地址,下面先读出目前的数据,然后再写入新的数据 rd_lcd(); //读操作 要先执行一次空读指令 tempH=rd_lcd(); //两次读操作 tempL=rd_lcd();
//因为没进行一次读或写操作,地址指针AC都会自加1,所以下面要重新输入地址 同样还是先输入垂直地址,然后再输入水平地址 wr_lcd(comm,0x80+row); wr_lcd(comm,0x80+collum); if (color) //color=1,点亮;color=0,擦除 { if(cbite<8) { tempH|=(1<<(7-cbite)); //tempL=(1<<(7-cbite)); } else { //tempH=(1<<(15-cbite)); tempL|=(1<<(15-cbite)); } } else { if(cbite<8) { tempH&=~(1<<(7-cbite)); //tempL=(1<<(7-cbite)); } else { //tempH=(1<<(15-cbite)); tempL&=~(1<<(15-cbite)); } } wr_lcd(dat,tempH); //写入数据 wr_lcd(dat,tempL); wr_lcd(comm,0x30); //回到基本指令集 } |
二叔
最后登陆时间:2014-10-23 10:40:53 |
二叔的OLED是IIC的
|
a252284222
最后登陆时间:2014-06-27 14:04:07 |
二蛋他二叔你的屏幕好牛气 |