Arduino Armbandsur: Bygg en programmerbar minimalisk klocka

Artikelns innehåll
  1. Introduktion
  2. Projektöversikt
    1. Förväntade funktioner
  3. Material och verktyg
  4. Kopplingsschema
  5. Programmering av Arduino
  6. Användning av RTC DS3231
  7. Skapa OLED-displayen
  8. Knapptryckningslogik
  9. Visning av tid och datum
  10. Mätning av batterinivå
  11. Felsökning och tips
  12. Avslutande tankar

Introduktion

Välkommen till en spännande resa där vi tillsammans ska bygga ett Arduino armbandsur! I detta projekt kommer vi att använda en programmerbar plattform för att skapa vår egen minimalistiska klocka med avancerade funktioner. Med hjälp av komponenter som en OLED-skärm och en RTC (Real-Time Clock) DS3231 kommer vi att kunna visa tid, datum och även batterinivå. Låt oss dyka in i denna projektledning och se hur vi kan kombinera teknik och kreativitet för att bygga ett fantastiskt programmerbart armbandsur.

Att bygga ett Arduino armbandsur är inte bara en kul utmaning, utan det ger också en djup förståelse för hur olika komponenter samverkar. Dessutom, med sina eleganta och minimalistiska design kan ett programmerbart armbandsur bli en praktisk följeslagare i din vardag. Vi kommer att gå igenom varje steg i processen och ge dig den kunskap du behöver för att framgångsrikt slutföra detta projekt. Låt oss nu titta närmare på projektöversikt!

Projektöversikt

I det här projektet kommer vi att bygga ett Arduino armbandsur med olika finesser. Vi kommer att använda en OLED-display för att visa tid och datum, en RTC DS3231 för att hålla reda på tiden, samt knappar för att interagera med klockan. Vårt mål är att skapa en pålitlig och programmerbar klocka som kan anpassas efter användarens behov.

Förväntade funktioner

  • Visning av tid i 12-timmarsformat
  • Visning av datum och månad
  • Mätning av batterinivå
  • Reagerar på knapptryckningar
See also  Hur kopplar man till FTP-server med Raspberry Pi Pico W

Material och verktyg

Innan vi börjar bygga vårt programmerbara armbandsur är det viktigt att samla alla nödvändiga material och verktyg. Här är en lista över vad vi kommer att behöva:

  • Arduino Nano eller liknande
  • OLED-skärm (t.ex. 128x64 pixel)
  • RTC DS3231
  • Diverse motstånd och ledningar
  • Strömkälla (batteri)
  • Knapp (för navigering)
  • Prototypkort
  • Dator med Arduino IDE
  • USB-kabel för programmering

Kopplingsschema

Att förstå kopplingsschemat är grundläggande för att bygga ditt Arduino armbandsur. Här är en grundläggande beskrivning av hur vi ska koppla ihop våra komponenter:

  1. Anslut OLED-displayen till Arduino, med VCC till 5V, GND till GND, SDA till A4 och SCL till A5.
  2. Anslut RTC DS3231 på samma sätt: VCC till 5V, GND till GND, SDA till A4 och SCL till A5.
  3. Anslut knappen till en annan digital port på Arduino, t.ex. D2, och se till att den har en motstånd för att undvika kortslutningar.

Programmering av Arduino

Nu är det dags att programmera vår programmerbara klocka. Vi kommer använda Arduino IDE för detta. Först behöver vi installera de nödvändiga biblioteken för både OLED-skärmen och RTC-enheten:

  1. Gå till "Bibliotekshanteraren" i Arduino IDE.
  2. Sök efter "Adafruit GFX Library" och installera den.
  3. Sök efter "Adafruit SSD1306" och installera den.
  4. Sök efter "RTClib" och installera den.

Ovanstående bibliotek är avgörande för att kunna kommunicera med hårdvaran på ett korrekt sätt. När biblioteken är installerade kan vi börja skriva vår kod.

Användning av RTC DS3231

RTC DS3231 är en mycket noggrann klocka som är idealisk för vårt Arduino armbandsur. Efter att ha anslutit den till Arduino, är det viktigt att ställa in tiden. Vi kommer att använda biblioteket "RTClib" för att kommunicera med RTC-enheten och hämta tidsinformation.

Först skriver vi en funktion som ställer in tiden och en annan som hämtar och visar den aktuella tiden. Se följande exempel:


#include 
#include 

RTC_DS3231 rtc;

void setup() {
  rtc.begin();
  // Ställ in tiden först - endast en gång
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}

void loop() {
  DateTime now = rtc.now();
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(" ");
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.println();
}

Skapa OLED-displayen

Nu handlar det om att visa tid och datum på vår OLED-skärm. Med hjälp av "Adafruit SSD1306"-biblioteket kan vi enkelt skriva ut text på skärmen. Här är en grundläggande funktion som visar aktuell tid:


#include 
#include 

Adafruit_SSD1306 display(128, 64, &Wire, -1);

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}

void showTime() {
  DateTime now = rtc.now();
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,0);
  display.print("Tid: ");
  display.print(now.hour(), DEC);
  display.print(":");
  display.print(now.minute(), DEC);
  display.display();
}

Knapptryckningslogik

För att interagera med klockan måste vi implementera logik för knapptryckningar. En enkel strategi är att använda en variabel för att hålla reda på vilket läge klockan är i. Vid varje knapptryckning ändras detta läge:


const int buttonPin = 2;
int mode = 0;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(buttonPin) == LOW) {
    mode++;
    if (mode > 2) mode = 0; 
    delay(200);  // Debounce
  }
}

Visning av tid och datum

Beroende på vilket läge vi är i kommer vi att visa olika information. Det kan vara tid, datum eller annan information. Här är hur vi implementerar detta i vår huvudloop:


void loop() {
  if (mode == 0) {
    showTime();
  } else if (mode == 1) {
    showDate();
  }
  delay(1000);
}

Mätning av batterinivå

En annan viktig funktion för vårt programmerbara armbandsur är att mäta batterinivån. Detta kan göras genom att ansluta en analog pin till batteriets positiva terminal och sedan använda analogRead för att läsa värdet:


int batteryPin = A0;

void showBatteryLevel() {
  int batteryLevel = analogRead(batteryPin);
  display.setCursor(0, 30);
  display.print("Batteri: ");
  display.print(batteryLevel);
  display.display();
}

Felsökning och tips

När du bygger ditt Arduino armbandsur kan du stöta på olika problem. Här är några felsökningstips:

  • Kontrollera alla kopplingar och anslutningar noggrant.
  • Se till att rätt bibliotek är installerade och inkluderade.
  • Verifiera att RTC-modulen är korrekt konfigurerad och ställd på tiden.
  • Tänk på att debouncing av knappar kan hjälpa till att undvika oönskad inmatning.

Avslutande tankar

Grattis! Du har nu byggt ditt eget Arduino armbandsur med en OLED-skärm och RTC DS3231. Genom att följa stegen ovan har du fått en grundläggande förståelse för hur man bygger en programmerbar klocka. Nu kan du fortsätta att experimentera med ditt projekt, kanske lägga till fler funktioner eller göra det mer användarvänligt.

Det är en fantastisk känsla att kunna skapa något med egna händer och få det att fungera. Fortsätt att utveckla dina programmerings- och elektronikfärdigheter, och kom ihåg att utveckling aldrig slutar. Lycka till med ditt fortsatta skapande!

Tack för att du läste vår artikel, du kan se alla artiklar i våra webbkartor eller i Sitemaps

Tyckte du att den här artikeln var användbar? Arduino Armbandsur: Bygg en programmerbar minimalisk klocka Du kan se mer här NanoPi.

Niklas Andersson

Niklas Andersson

Hej, jag heter Niklas Andersson och är en passionerad student på civilingenjörsprogrammet i elektronik och en entusiastisk bloggare. Redan som liten har jag varit nyfiken på hur elektroniska apparater fungerar och hur tekniken kan förändra våra liv. Denna nyfikenhet ledde till att jag började studera elektronikkonstruktion, där jag varje dag utforskar nya idéer, konstruktioner och innovativa lösningar.

Tack för att du läser innehållet i Maker Electronics

Se mer relaterat innehåll

Leave a Reply

Your email address will not be published. Required fields are marked *

Your score: Useful

Go up