
Sommario:
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-23 14:50

Cerca nel web il cronometro Arduino. Probabilmente l'hai appena fatto, se sei qui. Per esperienza personale, posso dirti che qualsiasi cronometro su Internet è troppo complesso (in codice, per principianti), o è troppo semplificato e poco pratico, come quelli che continuano a contare i secondi senza azzerarsi.
Lo pensi anche tu, eh? Beh, indovina un po'. L'ho fatto, e per di più, prendo direttamente il mio input dalla funzione millis(), una riga infinita di numeri (fino a 49 giorni o altro). La parte migliore? È solo una riga.
Il reset, è la vera parte difficile del cronometro. Per i programmatori intermedi, se non l'hai già fatto, vai avanti e prova a farlo da solo, con secondi, minuti e ore insieme. Avrai quello di cui sto parlando.
Per i principianti, continua a leggere e goditi il genio della mia mente.
Sto scherzando, ma la soluzione che ho trovato è abbastanza carina. Ecco di cosa si tratta:
Passaggio 1: la soluzione

Quindi il problema si sta resettando. Quello che vogliamo è un ciclo continuo e ripetuto di numeri, da un output infinito di numeri sequenziali (millis() - conta fondamentalmente millisecondi, o in realtà 1.024 millisecondi, ma qualunque cosa).
La prima cosa che viene in mente è usare la differenza, come time1 -time2 e un ritardo. Dimenticalo. Sono necessarie almeno sei righe di codice e un'istruzione if per l'avvio.
Quindi ecco come farlo. Abbiamo un limite (59). Vogliamo che tutto da 0 a 59 si ripeta più e più volte. Come?
E se… prendessimo il resto… della funzione millis diviso per 59… Bingo!
Quindi, dovrebbe essere così:
(60 [come valore iniziale perché il limite è 59] + millis() / 1000 [1000 millisecondi è un secondo]) % 60
Ok, lascia che ti spieghi. (%) o modulo, è fondamentalmente un operatore come (+) che trova il resto. Come il 9 % 2 = 1.
Così:
- resto di (60 + 0) % 60 = 0
- resto di (60 + 1) % 60 =1
- resto di (60 + 58) % 60 = 58
- resto di (60 + 59) % 60 = 59
- resto di (60 + 60) % 60 = 60
- resto di (60 + 61) % 60 = 1
Vedere!
Ora, per le parti.
Passaggio 2: le parti

Non molto, per niente
- Qualsiasi arduino
-
Qualsiasi display (ho usato l'OLED da 0,96 , ma puoi usare qualunque cosa tu abbia, assicurati solo di inserire le giuste variabili nelle funzioni di visualizzazione del tuo display.)
Questo è tutto.
Passaggio 3: il codice
Ecco qua. È commentato abbastanza chiaramente, quindi non dovrebbero esserci problemi. Le librerie e l'init per OLED da 0,96 sono nel codice. Sostituiscilo con quello del tuo display se è diverso.
// Librerie OLED da 0,96"
#includere
#includere
#includere
#includere
// Inizializzazione OLED da 0,96"
#define OLED_RESET 4
Visualizzazione Adafruit_SSD1306 (OLED_RESET);
int secondi;
int minuti;
int ore;
void setup() {
// Un po' più di inizializzazione OLED da 0,96"
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay(); display.setTextSize(2); display.setTextColor(BIANCO); }
ciclo vuoto() {
secondi = (60 + millisecondi() / 1000) % 60;
minuti = (60 + millis() / 60000) % 60; ore = (25 + millis() / 3600000) % 25;
display.clearDisplay();
display.setCursor(0, 22); // stampa il numero di ore trascorse dal reset display.print(hours); display.print("h:");
// stampa il numero di minuti dal reset
display.print(minuti);
display.print("m:");
// stampa il numero di secondi trascorsi dal ripristino display.print(seconds); display.print("s");
display.setCursor(0, 0);
display.print("Cronometro"); display.drawLine(0, 18, 128, 18, BIANCO); display.display();
}
Passaggio 4: in conclusione…

Quindi è così! Ora vai a fare quello che vuoi con esso. Prendi il tempo delle uova o impossessati del tuo quartiere.
Saluti, Aarush
Consigliato:
PIR pratico per uso domestico: 7 passaggi (con immagini)

PIR pratico per uso domestico: come molti di voi che lavorano con progetti di automazione domestica, stavo cercando di costruire un sensore PIR funzionale per automatizzare alcune svolte d'angolo nella mia casa. Sebbene i sensori PIR dell'interruttore della luce sarebbero stati ottimali, non puoi piegare un angolo. questo
Versano: un pratico dispositivo multifunzione (arduino Nano): 6 passaggi

Versano: un dispositivo portatile multifunzionale (arduino Nano): avevo bisogno di un multimetro maneggevole che potesse essere trasportato facilmente ovunque. Volevo che fosse piccolo e in miniatura in confronto ai normali multimetri. Con ore di codifica e progettazione di circuiti ho finito per realizzare un dispositivo in grado di misurare volt
Cronometro digitale CloudX M633 semplice: 4 passaggi

Cronometro digitale CloudX M633 semplice: in questo progetto, realizzeremo una versione di un orologio digitale in grado di registrare ore, minuti e secondi, proprio come un cronometro sul tuo cellulare! Useremo un LCD per visualizzare l'ora
Pratico controller per strisce LED con presa a muro wireless Arduino ESP32: 6 passaggi

Pratico controller per strisce LED per presa a muro wireless Arduino ESP32: questo è un controller per presa a muro wireless fai-da-te molto pratico per strisce LED a basso costo. Sostituisce i controller wifi economici venduti su eBay. Funzionano bene con le strisce LED RGB. Il controller EBay Wifi non è costruito bene e si rompe facilmente. anche
Orologio / cronometro Arduino semplice: 6 passaggi (con immagini)

Semplice orologio / cronometro Arduino: questo "istrutbile" ti mostrerà e ti insegnerà come realizzare un semplice orologio Arduino Uno che funge anche da cronometro in pochi, semplici passaggi