Display 7 segmenti sfarfallante

Ho realizzato un timer con display a 7 segmenti, purtroppo sfarfalla fastidiosamente tra un secondo e l'altro, vi posto il codice e un video al rallenty del fastidioso effetto, da cosa potrebbe dipendere?

#include "Countimer.h"
#include <LedPrint.h>
int buzzer = 0;

LedPrintJustifiable myLed = LedPrintJustifiable
                            (
                              1, // DATA PIN
                              3, // CLOCK PIN
                              2, // CS PIN
                              8,  // NUMBER OF DIGITS
                              1   // Orientation 0/1, if it looks backwards try the other
                            );


Countimer timer;

void setup() {
  myLed.setIntensity(1);
  // Center justify (0), alternatives -1 for left and 1 for right
  myLed.justify(1);
  pinMode(4, INPUT_PULLUP);
  pinMode(buzzer, OUTPUT);
  digitalWrite(buzzer, HIGH);
  delay ( 500);
  digitalWrite(buzzer, LOW);
  delay ( 500);
  digitalWrite(buzzer, HIGH);
  delay ( 500);
  digitalWrite(buzzer, LOW);
  delay ( 500);
  digitalWrite(buzzer, HIGH);
  delay ( 500);
  digitalWrite(buzzer, LOW);
  delay ( 500);




  // Set up count down timer with 10s and call method onComplete() when timer is complete.
  // 00h:00m:10s
  timer.setCounter(0, 1, 29, timer.COUNT_DOWN, onComplete);

  // Print current time every 1s on serial port by calling method refreshClock().
  timer.setInterval(refreshClock, 1000);
}

void refreshClock() {
  //Serial.print("Current count time is: ");
  myLed.println(timer.getCurrentTime());

}

void onComplete() {
  myLed.println("finish");
  digitalWrite(buzzer, HIGH);
  delay(100);
  digitalWrite(buzzer, LOW);
  delay(100);
  digitalWrite(buzzer, HIGH);
  delay(100);
  digitalWrite(buzzer, LOW);
  delay(100);
  digitalWrite(buzzer, HIGH);
  delay(100);
  digitalWrite(buzzer, LOW);
  delay(100);
  digitalWrite(buzzer, HIGH);
  delay(100);
  digitalWrite(buzzer, LOW);
  delay(100);
  digitalWrite(buzzer, HIGH);
  delay(2000);
  digitalWrite(buzzer, LOW);


}

void loop() {
  // Run timer
  timer.run();



  // Now timer is running and listening for actions.
  // If you want to start the timer, you have to call start() method.
  if (digitalRead(4) == LOW) {
    digitalWrite(buzzer, LOW);
    timer.restart ();



  }
}

... mi viene il dubbio che stai facendo il pilotaggio dei display troppo lentamente ... oppure che il display non usa lo strobe ... che display e' ?

Etemenanki:
... mi viene il dubbio che stai facendo il pilotaggio dei display troppo lentamente ... oppure che il display non usa lo strobe ... che display e' ?

è un normale 8 cifre collegato con 3 pin

paolinux78:
è un normale 8 cifre collegato con 3 pin

Il che non ci dice nulla, esistendone piu di un tipo :wink:

una marca, un modello, un part number, o anche meglio un link a dove l'hai acquistato, sarebbero cose piu utili :wink:

Etemenanki:
Il che non ci dice nulla, esistendone piu di un tipo :wink:

una marca, un modello, un part number, o anche meglio un link a dove l'hai acquistato, sarebbero cose piu utili :wink:

hai ragionissima ecco il modello
Diymore MAX7219 preso su aliexpress

Non credo che sia quello il problema, ma usare l'SPI hardware potrebbe aiutare...

Edit:
Ma con sfarfallio, intendi lo scroll del testo? Dal video non si capisce granché

Mi sa che non hai guardato attentamente gli esempi della libreria che stai usando :wink:

ho fatto un altro video, penso si capisca meglio ora:

Prova ad usare print al posto di println

myLed.print(timer.getCurrentTime());

provato, uguale identico :confused:

Ma non vi stancate a scrivere tutte quelle righe di delay invece di un semplice ciclo for?

Difficile dare opinione sul software che hai scritto se lo posti incompleto
Manca "Countimer.h" quindi non sappiamo cosa fai di preciso.

nid69ita:
Difficile dare opinione sul software che hai scritto se lo posti incompleto
Manca "Countimer.h" quindi non sappiamo cosa fai di preciso.

Eccolo:

Scusa ma che board è ? Arduino Uno ?
Se si NON puoi usare il pin 1 (e neppure lo 0) perchè sono TX ed RX della seriale/usb

No è un attiny85

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.