arduino 数码管中怎么让数码管显示实时速度

Arduino 七段数码管显示方法一Arduino 七段数码管显示方法一红石城百家号七段数码管显示我们要做什么我们需要让七段数码管显示数字0到9,而且不需要额外的IC,只使用Arduino+七段数码管(共阴极)+七个330欧电阻+一些跳线本例用到byte数据类型和位操作运算,请参考下文:arduino Byte数据类型和按位运算数码管连接图及电路图七段数码管引脚图电路图代码如下:int pins[]={10,9,8,7,6,5,4,3};byte number[] = {//ABCDEFG /dpB, // 0B, // 1B, // 2B, // 3B, // 4B, // 5B, // 6B, // 7B, // 8B, // 9};void display(int num){for(int i=0;i&8;i++)digitalWrite(pins[i],bitRead(number[num],i));}void setup()pinMode(pins[i],OUTPUT);void loop()for(int i=0;i&10;i++){display(i);delay(1000);这里的小数点默认是没有点亮的,如果需要点亮小数点的话,只需要,使用函数bitWrite(numer[num],0,1)就好了。void display(int num,bool dot)if(dot==true)bitWrite(number[num],0,1);elsebitWrite(number[num],0,0);display(i,1);display(i,0);本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。红石城百家号最近更新:简介:关注互联网动态和互联网产品介绍分析作者最新文章相关文章Arduino七段数码管显示方法二(移位寄存器)Arduino七段数码管显示方法二(移位寄存器)一种生活新方式百家号七段数码管与移位寄存器介绍移位寄存器由于arduino uno引脚比较少,有时候会遇到引脚不够用。我的解决方案是 用74HC595来拓展。接线图如下:74HC595芯片针脚分布图移位寄存器与Arduino连接七段数码管针脚分布图移位寄存器工作原理:我们发送一个byte数据(8bits)到移位寄存器,移位寄存器将根据这个byte的数据来打开或关闭8个输出(Q0-Q7)。这个byte数据的bits和移位寄存器的输出针脚是匹配的(从高到低),所以最左边的bit代表着移位寄存器上的Q7,最右边的bit代表移位寄存器上的Q0输出。举个例子:如果我们发送B到移位寄存器,那么它会将Q7,Q2,Q1三个输出口设置为HIGH,其他输出口设置为LOW,直到接收到下一个字节数据。移位寄存器一共有16个引脚:针脚15和1到7是8个输出针脚(Q0~Q7)Q7输出发送到移位寄存器的第一个bit,同理,Q0将输出最后一位bit。针脚8接地针脚9是数据输出针脚,用来输出数据给另外一个移位寄存器(如果存在的话),本例中只使用一个移位寄存器。针脚10接5V针脚11是时钟针脚针脚12称为锁存状态(latch)针脚digitalWrite(latch, LOW); //告诉74HC595准备接收数据digitalWrite(latch, HIGH); //告诉74HC595返回正常状态针脚13接地针脚14用来接收Arduino发送的数据,使用shiftOut函数针脚16接5V将上面图片中的LED1~LED8换成7段数码管(A~G,DP)。代码如下:#define DATA 6//数字6号脚,连在移位寄存器的14号针脚上,通过arduino传输数据#define LATCH 8//digital 8 to pin 12 on the 74HC595#define CLOCK 10//digital 10 to pin 11 on the 74HC595 for clockint number_LSB[]={252,96,218,242,102,182,190,224,254,246,238,62,156,122,158,142};void setup() {// put your setup code here, to run once:pinMode(LATCH,OUTPUT);pinMode(CLOCK,OUTPUT);pinMode(DATA,OUTPUT);}void loop() {// put your main code here, to run repeatedly:for(i=0;i&16;i++){digitalWrite(LATCH,LOW);shiftOut(DATA,CLOCK,LSBFIRST,number_LSB[i]+1);//+1让小数点显示digitalWrite(LATCH,HIGH);delay(500);数码管将从0~9A~F循环显示这个例子中只用到了Arduino的三个针脚!!!!喜欢文章,欢迎大家转发!!!本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。一种生活新方式百家号最近更新:简介:你为什么不来几个有趣和有趣的设计手作者最新文章相关文章Arduino初学系列6:Arduino和数码管
-------如何用Arduino来控制数码管显示数字0,1,2,3,4,5,6,7,8,9
11:32:08 +08:00 · 2983 次点击
用Arduino来控制数码管显示数字,其实就如控制好多LED的显示一样。通过不同LED的显示组成来组成不同的数字。所以,关键的是如何数码管或LED灯的正负极。这是本实验需要重点解决的问题。
目前尚无回复
& · & 1232 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.0 · 45ms · UTC 09:16 · PVG 17:16 · LAX 01:16 · JFK 04:16? Do have faith in what you're doing.arduino中怎么让数码管显示实时速度_百度知道
arduino中怎么让数码管显示实时速度
我有更好的答案
把速度数据化为整数近似值,和数码管编号传入tm1637。缺点是不能显示小数。测速方法:将磁铁黏贴在轮毂上,使用霍尔传感器模块测量磁场信号(车轮转一圈有一次磁场信号,某宝3RMB,亮度七级可调。)使用pulseIn函数测量数字口高电平时间,配合轮子周长得出速度.display().com/s/1EHrAcXj9mZ" target="_blank">http,配有驱动库(<a href="http://yunpan.taobao,传感器数字口输出一次低电平://yunpan.taobao.com/s/1EHrAcXj9mZ)。傻瓜操作推荐使用TM1637驱动的四位数码管
采纳率:81%
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客分类:
功能:使用温度传感器采集温度,用2位数码管显示结果。
材料如下:
1 arduino Uno
2 DS18B20 温度传感器
3 2位数码管
数码管相关:
数码管的原理很简单,一般一个字符由7段组成,由a-g,需要控制每段的电压高低来是否亮,比如0则应该abcdef亮,中间的g暗。所以,数码管的接入关键是看针脚的定义。
对于n位数码管,一般是共阳或共阴,针脚的具体定义需要看相应的参数图,不要自己猜测。一般会有n位针脚对应各自的字符开关。一般针脚的序列是从左下角逆时针 1...n。
在自己程序里需要定义数码管的针脚对应板子上的io口,比如我这里:
Arduino引脚& 数码管引脚
D11&&&&&&&&&& 10(A)
D10&&&&&&&&&& 9(B)
D2&&&&&&&&&&& 1(C)
D3&&&&&&&&&&& 4(D)
D4&&&&&&&&&&& 3(E)
D5&&&&&&&&&&& 6(F)
D6&&&&&&&&&&& 5(G)
D7&&&&&&&&&&& 2(DP)
D8&&&&&&&&&&& 8(LED1)
D9&&&&&&&&&&& 7(LED2)
右边针脚数字顺序即图里下部所示a-dp对应的顺序。
可以参考:
相关资料和软件可以在附件中找到。
温度相关:
用的是DS18B20 温度传感器,注意不同型号的温度传感器对应的库和方法不一样,需要针对性开发。这里有篇很好的文章:。
相关的内容可见和
需要的库也可从附件下载,解压缩放到arduino的libraries目录下。(一般需要重启arduino IDE才可生效)
我的测试代码:
#include &OneWire.h&
#include &DallasTemperature.h&
#define SEL_LED1 8
//arduino数字针脚8对应LED1的控制
#define SEL_LED2 9
//arduino数字针脚9对应LED1的控制
const unsigned char LED8Pin[]={
11,10,2,3,4,5,6,7,8,9};//A B C D E F G Dp
const unsigned char LED8Code[]={
//该值可以通过取模软件获得,共阳
// Data wire is plugged into port 10 on the Arduino
#define ONE_WIRE_BUS 13
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
for(i=0;i&10;i++)
pinMode(LED8Pin[i], OUTPUT);
digitalWrite(LED8Pin[i], HIGH);
// Start up the library
sensors.begin();
void loop(void)
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
Serial.print("Temperature for the device 1 (index 0) is: ");
float tempValue = sensors.getTempCByIndex(0);
int changeValue = getRightValue(tempValue);
Serial.print(tempValue);
Serial.print(" ");
Serial.println(changeValue);
for(int i=0;i&20;i++){
LEDAll_Show(changeValue);
//delay(1000);
int getRightValue(float f){
float intValue = f*100;
int small = (int)intValue%100;
int diff = (small&=50? 1:0);
return diff+intValue/100;
void LED8Show(char data){
if(0&=data&16)
hc = LED8Code[data];
for(i=0;i&8;i++)
j = bitRead(hc,i);
digitalWrite(LED8Pin[i], j);
//digitalWrite(LED8Pin[i], LOW);
void LEDAll_Show(unsigned char num)
char VH,VL;
VH = num/10;
VL = num%10;
//Serial.println(num);
digitalWrite(SEL_LED1, 1);
digitalWrite(SEL_LED2, 0);
LED8Show(VH);
delay(10);
digitalWrite(SEL_LED1, 0);
digitalWrite(SEL_LED2, 1);
LED8Show(VL);
delay(10);
digitalWrite(SEL_LED1, 0);
digitalWrite(SEL_LED2, 0);
布线和结果请看附件效果图。
下载次数: 4
(242.5 KB)
下载次数: 2
yiqieanhao
浏览: 38452 次
来自: 北京
人才,居然想到usbhub!!!
楼主我想问下,你试过用h264编码,然后用udp传输吗?我遇到 ...
ico0018 写道楼主你好,我想请问下具体的server i ...
很好的分享 很有用 我按照您推荐的DFRobot的视频一步步做 ...
楼主你好,我想请问下具体的server ip配置是什么
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 arduino数码管显示 的文章

 

随机推荐