Inhoudsopgave:

Een eenvoudige, praktische Arduino-stopwatch: 4 stappen
Een eenvoudige, praktische Arduino-stopwatch: 4 stappen

Video: Een eenvoudige, praktische Arduino-stopwatch: 4 stappen

Video: Een eenvoudige, praktische Arduino-stopwatch: 4 stappen
Video: Hartcoherentie; een eenvoudige en praktische methode om stress te beteugelen 2024, November
Anonim
Een eenvoudige, praktische Arduino-stopwatch
Een eenvoudige, praktische Arduino-stopwatch

Zoek op internet naar Arduino-stopwatch. Je hebt het waarschijnlijk net gedaan, als je hier bent. Uit persoonlijke ervaring kan ik je vertellen dat elke stopwatch op internet ofwel veel te complex is (in code, voor beginners), of veel te vereenvoudigd en niet praktisch, zoals degenen die gewoon seconden blijven tellen zonder opnieuw in te stellen.

Dat denk jij ook, hè? Nou, raad eens. Ik heb het gedaan, en wat meer is, ik haal mijn invoer rechtstreeks uit de millis()-functie - een eindeloze reeks getallen (tot 49 dagen, of wat dan ook). Het beste gedeelte? Het is maar één regel.

Resetten, is het eigenlijke harde deel van de stopwatch. Voor gevorderden, programmeurs, als je dat nog niet hebt gedaan, ga je gang en probeer dit zelf te doen, met seconden, minuten en uren samen. Je krijgt waar ik het over heb.

Voor beginners, lees verder en geniet van het genie van mijn geest.

Grapje, maar de oplossing die ik bedacht is best netjes. Dit is wat het is:

Stap 1: De oplossing

De oplossing
De oplossing

Het probleem is dus resetten. Wat we willen is een continue, herhalende cyclus van getallen, van een eindeloze output van opeenvolgende getallen (millis() - het telt in feite milliseconden, of eigenlijk 1.024 milliseconden, maar wat dan ook).

Het eerste dat in je opkomt, is het gebruik van verschil, zoals time1 -time2 en een vertraging. Vergeet dat. Er zijn minstens zes regels code nodig en een if-statement om op te starten.

Dus hier is hoe het te doen. We hebben een limiet (59). We willen dat alles van 0 tot 59 keer op keer wordt herhaald. Hoe?

Wat als… we nemen de rest… van de millis-functie gedeeld door 59…. Bingo!

Het zou dus zo moeten zijn:

(60 [als de beginwaarde omdat de limiet 59 is] + millis() / 1000 [1000 milliseconden is een seconde]) % 60

Oké, ik zal het uitleggen. (%) of modulus, is in feite een operator zoals (+) die de rest vindt. Zoals 9% 2 = 1.

Dus:

  • rest van (60 + 0) % 60 = 0
  • rest van (60 + 1) % 60 =1
  • rest van (60 + 58) % 60 = 58
  • rest van (60 + 59) % 60 = 59
  • rest van (60 + 60) % 60 = 60
  • rest van (60 + 61) % 60 = 1

Zien!

Nu, voor de onderdelen.

Stap 2: De onderdelen

De onderdelen
De onderdelen

Niet veel, helemaal niet

  1. elke arduino
  2. Elk scherm (ik gebruikte de 0,96-inch OLED, maar je kunt alles gebruiken wat je hebt, zorg er wel voor dat je de juiste variabelen in de weergavefuncties van je scherm plaatst.)

Dat is het.

Stap 3: De code

Hier. Het is vrij duidelijk becommentarieerd, dus er zouden geen problemen moeten zijn. De bibliotheken en init voor 0,96 OLED zitten in de code. Vervang deze door uw eigen beeldscherm als het anders is.

// 0,96 OLED-bibliotheken

#erbij betrekken

#erbij betrekken

#erbij betrekken

#erbij betrekken

// 0,96 OLED Init

#define OLED_RESET 4

Adafruit_SSD1306-display (OLED_RESET);

int seconden;

int minuten;

int. uren;

ongeldige setup() {

// Nog wat 0,96 OLED Init

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay(); display.setTextSize(2); display.setTextColor(WIT); }

lege lus() {

seconden = (60 + millis() / 1000) % 60;

minuten = (60 + millis() / 60000) % 60; uur = (25 + millis() / 3600000) % 25;

display.clearDisplay();

display.setCursor(0, 22); // print het aantal uren sinds reset display.print (uren); display.print("h:");

// print het aantal minuten sinds reset

display.print(minuten);

display.print("m:");

// print het aantal seconden sinds reset display.print (seconden); display.print("s");

display.setCursor(0, 0);

display.print("Stopwatch"); display.drawLine(0, 18, 128, 18, WIT); weergave.weergave();

}

Stap 4: En Afsluiting…

En Afsluiting…
En Afsluiting…

Dus dat is het! Ga er nu mee doen wat je wilt. Tijd wat eieren, of neem je buurt over.

Groetjes, Aarush

Aanbevolen: