Innehållsförteckning:

En enkel, praktisk Arduino stoppur: 4 steg
En enkel, praktisk Arduino stoppur: 4 steg

Video: En enkel, praktisk Arduino stoppur: 4 steg

Video: En enkel, praktisk Arduino stoppur: 4 steg
Video: Управляющая лампа переменного тока с реле 5 В с помощью Arduino 2024, November
Anonim
En enkel, praktisk Arduino stoppur
En enkel, praktisk Arduino stoppur

Sök på webben efter Arduino stoppur. Du har förmodligen bara gjort det om du är här. Av egen erfarenhet kan jag berätta att varje stoppur på internet antingen är för komplext (i kod, för nybörjare), eller är för förenklat och inte praktiskt, som de som bara fortsätter att räkna sekunder utan att återställa.

Det tycker du också, va? Gissa vad. Jag gjorde det, och dessutom tar jag direkt min input från millis () -funktionen- en oändlig rad med siffror (fram till 49 dagar, eller vad som helst). Den bästa delen? Det är bara en rad.

Återställning är den egentliga hårda delen av stoppuret. För mellanprogrammerare, om du inte redan har gjort det, försök göra det själv, med sekunder, minuter och timmar tillsammans. Du förstår vad jag pratar om.

För nybörjare, läs vidare och njut av mitt sinnes geni.

Skämtar bara, men lösningen jag kom på är ganska snygg. Här är vad det är:

Steg 1: Lösningen

Lösningen
Lösningen

Så problemet är att återställa. Det vi vill ha är en kontinuerlig, upprepande cykel av tal, från en oändlig utmatning av sekventiella tal (millis () - det räknar i princip millisekunder, eller faktiskt 1,024 millisekunder, men vad som helst).

Det första jag tänker på är att använda skillnad, som time1 -time2 och en fördröjning. Glöm det. Det krävs minst sex rader kod och en if -sats för att starta.

Så här gör du. Vi har en gräns (59). Vi vill att allt från 0 till 59 ska upprepas om och om igen. Hur?

Tänk om … vi tog resten … av millisfunktionen dividerat med 59…. Bingo!

Så det borde vara så här:

(60 [som initialvärde eftersom gränsen är 59] + millis () / 1000 [1000 millisekunder är en sekund]) % 60

Ok, låt mig förklara. (%) eller modul, är i grunden en operator som (+) som hittar resten. Gilla 9 % 2 = 1.

Så:

  • resten av (60 + 0) % 60 = 0
  • resten av (60 + 1) % 60 = 1
  • resten av (60 + 58) % 60 = 58
  • resten av (60 + 59) % 60 = 59
  • resten av (60 + 60) % 60 = 60
  • resten av (60 + 61) % 60 = 1

Ser!

Nu, för delarna.

Steg 2: Delarna

Delarna
Delarna

Inte mycket alls

  1. Vilken arduino som helst
  2. Vilken skärm som helst (jag använde 0,96 OLED, men du kan använda vad du än har, var noga med att sätta in rätt variabler i bildskärmens funktioner.)

Det är allt.

Steg 3: Koden

Här går du. Det är ganska tydligt kommenterat, så det borde inte vara några problem. Biblioteken och init för 0,96 OLED finns i koden. Ersätt den med din egen skärm om den är annorlunda.

// 0,96 OLED -bibliotek

#omfatta

#omfatta

#omfatta

#omfatta

// 0,96 OLED Init

#define OLED_RESET 4

Adafruit_SSD1306 display (OLED_RESET);

int sekunder;

int minuter;

int timmar;

void setup () {

// Ytterligare 0,96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

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

void loop () {

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

minuter = (60 + millis () / 60000) % 60; timmar = (25 + millis () / 3600000) % 25;

display.clearDisplay ();

display.setCursor (0, 22); // skriv ut antalet timmar sedan återställningen display.print (timmar); display.print ("h:");

// skriv ut antalet minuter sedan återställningen

display.print (minuter);

display.print ("m:");

// skriv ut antalet sekunder sedan återställningen av display.print (sekunder); display.print ("s");

display.setCursor (0, 0);

display.print ("Stoppur"); display.drawLine (0, 18, 128, 18, WHITE); display.display ();

}

Steg 4: Slutförande …

En avslutning …
En avslutning …

Så det är det! Gör nu vad du vill med det. Ta några ägg, eller ta över ditt grannskap.

Skål, Aarush

Rekommenderad: