Windows IoT:控制8x8 LED点阵
本帖最后由 YeungHsin 于 2016-3-15 19:59 编辑
今天使用的 8*8 LED点阵 是I2C接口的,通过这个例子可以熟悉下I2C接口的使用
***附件停止解析***
LED点阵 每一行由一个字节控制(第一列对应的是 7位,第二列对应的是 0位)
硬件部分
连线
3.3V->3.3V
GNG->GNG
SDA->SDA
SCL->SCL
(树莓派I2C总线接口已经包含了上拉电阻,所以直接连线就好了)
最好为外设(LED点阵)使用独立的电源,因为树莓派上接口会有电流限制,并且如果使用5V的话可能毁坏树莓派。
软件部分
1)I2C通讯
[mw_shl_code=csharp,true]
// I2C bus settings
// Address of device is 0x70
I2cConnectionSettings settings = new I2cConnectionSettings(0x70);
// Using standard speed 100 kHZ
settings.BusSpeed = I2cBusSpeed.StandardMode;
// Get device on bus named I2C1
string aqs = I2cDevice.GetDeviceSelector("I2C1");
var dis = await DeviceInformation.FindAllAsync(aqs);
_matrixDevice = await I2cDevice.FromIdAsync(dis[0].Id, settings);
[/mw_shl_code]
2)改变LED显示
[mw_shl_code=csharp,true]
private void setMatrixData(int row, int column, byte state)
{
// shift columns in grid to columns on device
column = (column + 7) & 7;
// write state to matrix
_matrixData[row, column] = state;
byte rowData = 0x00;
//calculate byte
for (int i = 0; i < MATRIX_SIZE; i++)
{
rowData |= (byte)(_matrixData[row, i] << (byte)i);
}
// show byte value for row
_matrixRowValue[row].Text = String.Format("0x{0:X2}", rowData);
// if we have not real display return
if (_matrixDevice == null)
{
return;
}
// write value to display
_matrixDevice.Write(new byte[] { (byte)(row*2), rowData });
}
[/mw_shl_code]
***链接停止解析***
标签: Windows
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
Quote***链接停止解析***
派 可以通过哪些途径买到官方货?
某宝、京东都可以,没有绝对的官方,毕竟树莓派授权的就那么几家咯.....
Quote***链接停止解析***
某宝、京东都可以,没有绝对的官方,毕竟树莓派授权的就那么几家咯.....
谢谢!老外为什么不直接在这边卖,咱也有免税区,这边需求市场要大得多。
如果有渠道组织团购就好了。{:4_160:}