Pages: 1 2 [3]   Go Down
Author Topic: Orologio RTC 7 segment 4 digit  (Read 2537 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
R = (V - Vf) / I
Quindi secondo i dati di Sparkfun R = (5 - 1,9) / 0,020 = 155
Ma guardando il datasheet ci sono dati diversi... o sbaglio?
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quello è per il display blue.
Che colore è il tuo?

Comunque non calcolare il valore usando la corrente massima, tieniti sotto.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

È blu smiley-razz

Secondo voi questa libreria con rispettivo chip può andare bene nel mio caso?
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22642
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Comunque non calcolare il valore usando la corrente massima, tieniti sotto.
Quoto. Ecco perché gli consigliavo di considerare 15/20 mA di corrente e nell'esempio ho usato proprio il primo valore.
Tanto tra 15 e 20 mA la differenza è minima ma il led dura di più.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quindi vada per i 220ohm o anche 330 se no mi tengono sveglio  smiley
Ora però devo trovare un modo per gestirlo in modo pratico con qualche chip...  smiley-roll
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22642
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma il link che ti ho passato?
http://learn.parallax.com/4-digit-7-segment-led-display-arduino-demo
Lì fanno tutto in multiplexing senza usare nessun chip esterno.
Una volta capito il concetto non è difficile leggere un orario dall'RTC e visualizzarlo.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'ho visto il link ma mi sembra più pratico usare uno shift register essendo a corto di I/O...
Display e RTC erano solo l'inizio!  smiley
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22642
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora prenditi il 74HC595.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Rieccomi qui!
Alla fine ho preso il MAX7219 che era esattamente quello che cercavo...
Avrei bisogno di un piccolo aiuto nel codice perchè non so come separare le cifre dell'ora dall'RTC per darle al driver led, spero possiate aiutarmi smiley
Nel codice sotto il display visualizza dei numeri determinati da int

Code:
#include "LedControl.h"
#include <DS1307RTC.h>
#include <Time.h>
#include <Wire.h>

/*
 Now we need a LedControl to work with.
 ***** These pin numbers will probably not work with your hardware *****
 pin 12 is connected to the DataIn
 pin 11 is connected to the CLK
 pin 10 is connected to LOAD
 We have only a single MAX72XX.
 */
LedControl lc=LedControl(12,11,10,1);

/* we always wait a bit between updates of the display */
unsigned long delaytime=250;

int dec_h = 1;
int unit_h = 2;
int dec_m = 3;
int unit_m = 4;

void setup() {
  /*
   The MAX72XX is in power-saving mode on startup,
   we have to do a wakeup call
   */
  lc.shutdown(0,false);
  /* Set the brightness to a medium values */
  lc.setIntensity(0,10);
  /* and clear the display */
  lc.clearDisplay(0);
 
  lc.setDigit(0, 0, unit_m, false);
  lc.setDigit(0, 1, dec_m, false);
  lc.setDigit(0, 2, unit_h, true);
  lc.setDigit(0, 3, dec_h, false);
}


void loop()
{
  // put your main code here, to run repeatedly:
 
}
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21486
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Avrei bisogno di un piccolo aiuto nel codice perchè non so come separare le cifre dell'ora
Code:
uni= ora%10;
decine = ora/10;
Ciao Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie, ho aggiornato il codice ma il display visualizza 00.00  smiley-roll

Code:
#include "LedControl.h"
#include <DS1307RTC.h>
#include <Time.h>
#include <Wire.h>

/*
 Now we need a LedControl to work with.
 ***** These pin numbers will probably not work with your hardware *****
 pin 12 is connected to the DataIn
 pin 11 is connected to the CLK
 pin 10 is connected to LOAD
 We have only a single MAX72XX.
 */
LedControl lc=LedControl(12,11,10,1);

/* we always wait a bit between updates of the display */
unsigned long delaytime=250;

tmElements_t tm;

int dec_h = tm.Hour/10;
int unit_h = tm.Hour%10;
int dec_m = tm.Minute/10;
int unit_m = tm.Minute%10;

void setup() {
  /*
   The MAX72XX is in power-saving mode on startup,
   we have to do a wakeup call
   */
  lc.shutdown(0,false);
  /* Set the brightness to a medium values */
  lc.setIntensity(0,10);
  /* and clear the display */
  lc.clearDisplay(0);

}


void loop()
{
  // put your main code here, to run repeatedly:
  RTC.read(tm);
  lc.setDigit(0, 0, unit_m, false);
  lc.setDigit(0, 1, dec_m, false);
  lc.setDigit(0, 2, unit_h, true);
  lc.setDigit(0, 3, dec_h, false);

}
Logged

Pages: 1 2 [3]   Go Up
Jump to: