如何使用arduino和proteus在双7段中显示不同的数字?
这是我的设置:
void setup() {
pinMode(13,OUTPUT); //a
pinMode(12,OUTPUT); //b
pinMode(11,OUTPUT); //c
pinMode(10,OUTPUT); //d
pinMode(9,OUTPUT); //e
pinMode(8,OUTPUT); //f
pinMode(7,OUTPUT); //g
pinMode(6,OUTPUT); //power 1 (left)
pinMode(5,OUTPUT); //power 2 (left)
}
我使用这段代码(在void循环中)来显示7段中的数字0:
digitalWrite(6, 0); //power 1 (left)
digitalWrite(5, 0); //power 2 (left)
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
如果我在proteus中进行模拟,我会得到以下输出:
如果我添加另一个数字,如8:
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
digitalWrite(7, HIGH);
这将是输出:
代码将在这7个段上都转到0和8。
我希望它在右边显示0,在左边显示8,但我不知道如何控制这个双7段。我想创建一个倒计时计时器,但我还没有找到任何关于它的教程,这些教程是倒计时中的2 7段,而不是双7段显示。
注意:我没有在这个项目中使用任何寄存器。
发布于 2020-10-16 20:15:10
引脚1和2用于寻址七个段中的每一个。您需要将引脚1下沉到地面并提供要在前七个线段中显示的值,然后通过将引脚2下沉到地面并提供要显示的值来切换到另一个线段。这必须发生得很快,这样人眼就不会注意到了。
请参考此电路
您可以使用一个库来避免所有这些问题。
从here下载该库
要安装它,打开Arduino IDE,转到Sketch > Include Library > Add ZIP Library,然后选择您下载的SevSeg .ZIP文件。
然后尝试下面的代码,它应该显示"80“
#include "SevSeg.h"
SevSeg sevseg;
void setup(){
byte numDigits = 2;
byte digitPins[] = {6, 5};
byte segmentPins[] = {13, 12, 11, 10, 9, 8, 7, 4};
bool resistorsOnSegments = true;
bool updateWithDelaysIn = true;
byte hardwareConfig = COMMON_CATHODE;
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);
}
void loop(){
sevseg.setNumber(80, 1);
sevseg.refreshDisplay();
}
https://stackoverflow.com/questions/64388888
复制相似问题