数码管
来自Labplus盛思维基百科
Tangliufeng(讨论 | 贡献)2018年3月14日 (三) 09:09的版本
概述
4位7段LED数码管显示,可显示整形数字
技术参数
- 工作电压:VCC 3.3-5V
- 接口方式:I2C接口
- 模块尺寸:24x46x7.5mm
引脚定义
VCC | 电源 |
SDA | I2C数据 |
SCL | I2C时钟 |
GND | 地 |
使用教程
Arduino示例
//程序功能:数码管每秒显示8.8.8.8. 0.5S// #include <Wire.h> #include <TM1650.h> #include <Arduino.h> TM1650 d; char line[] = {"8888"}; void setup() { Wire.begin(); d.init(); //数码管初始化 d.displayOff(); //关闭显示 d.displayString(line); //输入显示字符 d.setBrightness(2); //设定显示亮度 for(int i=0; i<4; i++) d.setDot(i, true); //显示小数点 Serial.begin(9600); } void loop() { d.displayOn(); //显示信息 delay(500); d.displayOff(); //关闭显示 delay(500); Serial.print(1); }
MicroPython示例
连接示意图
from microbit import * _TubeTab = [ 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x00, 0x40] def tm1650Init(): i2c.write(0x24, bytearray([0x01])) def tm1650DisplayUint(x): charTemp = [0, 0, 0, 0] x = (x if x < 10000 else 9999) charTemp[3] = x%10 charTemp[2] = (x//10)%10 charTemp[1] = (x//100)%10 charTemp[0] = (x//1000)%10 if x < 1000: charTemp[0] = 0x10 if x < 100: charTemp[1] = 0x10 if x < 10: charTemp[2] = 0x10 for i in range(0, 4): i2c.write(0x34+i, bytearray([_TubeTab[charTemp[i]]])) def tm1650DisplayInt(x): x = round(x) if x >= 0: tm1650DisplayUint(x) else: temp = (x if x > -999 else -999) temp = abs(temp) tm1650DisplayUint(temp) if temp < 10: i2c.write(0x36, bytearray([_TubeTab[0x11]])) elif temp < 100: i2c.write(0x35, bytearray([_TubeTab[0x11]])) elif temp < 1000: i2c.write(0x34, bytearray([_TubeTab[0x11]])) tm1650Init() display.off() while True: tm1650DisplayInt(7777) sleep(1000) tm1650DisplayInt(8888) sleep(1000) tm1650DisplayInt(9999) sleep(1000) tm1650DisplayInt(1111) sleep(1000)