arduino 4 位 7 段显示器难以阅读

arduino 4 digit 7-segment display hard to read

我想知道是否可以让 4 位 7 段显示器更流畅地显示数字,因为有时它真的很难阅读(比图像显示的更难)。我可以在我的代码中做些什么吗?它是来自中国的廉价显示器,这是为什么?我将移位寄存器 (74hc595n) 与显示器一起使用。感谢您的任何回复:)

我的4位7段显示图片

我用于显示数字的 arduino 代码:

 void loop() {
  turnOnDigit(1);
  displayNumber(firstDigitReceived);
  delayMicroseconds(2000);
  turnOnDigit(2);
  displayNumber(secondDigitReceived);
  delayMicroseconds(2000);
  turnOnDigit(3);
  displayNumber(thirdDigitReceived);
  delayMicroseconds(2000);
  turnOnDigit(4);
  displayNumber(fourthDigitReceived);
  delayMicroseconds(2000);
 }


 int displayNumber(int number) {

 switch(number) {

case 0:
        updateShiftRegister(126);
break;

case 1:
       updateShiftRegister(48);                  
break;

case 2:           
        updateShiftRegister(109);         
break;

case 3:            
        updateShiftRegister(121);        
break;

case 4:         
        updateShiftRegister(51);           
break;

case 5:            
        updateShiftRegister(91);          
break;

case 6:

        updateShiftRegister(95);           
break;

case 7:           
        updateShiftRegister(112);          
break;

case 8:          
        updateShiftRegister(127);          
break;

case 9:
        updateShiftRegister(123);         
break;

}
}

void turnOnDigit(int digit) {
switch(digit){

case 1:
  digitalWrite(digit1, LOW);
  digitalWrite(digit2, HIGH);
  digitalWrite(digit3, HIGH);
  digitalWrite(digit4, HIGH); 
  digitalWrite(segP, LOW);
break;

case 2:
  digitalWrite(digit1, HIGH);
  digitalWrite(digit2, LOW);
  digitalWrite(digit3, HIGH);
  digitalWrite(digit4, HIGH);
  digitalWrite(segP, HIGH);
break;

case 3:
  digitalWrite(digit1, HIGH);
  digitalWrite(digit2, HIGH);
  digitalWrite(digit3, LOW);
  digitalWrite(digit4, HIGH);
  digitalWrite(segP, LOW);
break;

case 4:
  digitalWrite(digit1, HIGH);
  digitalWrite(digit2, HIGH);
  digitalWrite(digit3, HIGH);
  digitalWrite(digit4, LOW);
  digitalWrite(segP, LOW);
break;

}
}

注意:我试图改变延迟,但随着微秒的减少,它只会变得更糟

您的问题是您正在更改数字,然后在几微秒后更新您的数字。因此,当您将每个数字打开一小段时间时,最后一个数字会显示在那里。您应该在更新移位寄存器时关闭数字,然后打开要显示的数字。