Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

Onderdelen en benodigdheden

Arduino UNO (1 stuks) - Bij gebruik van meegeleverde PCB: ATmega328 DIL, 16MHz kristal, 2×22pF condensators, 7805 regulator, 100µF 16V condensator, 3×0.1µF condensators, 1µF condensator
Weerstand 10k ohm (4 stuks)
Doorvoert weerstand 470 ohm (1 stuks)
Adafruit Standaard LCD - 16x2 Wit op Blauw (1 stuks)
Buzzer (1 stuks)
Condensator 10 µF (1 stuks)
Real Time Clock (RTC) (1 stuks) - DS1302
32.768 kHz Kristal (1 stuks)
Knopcelbatterij CR2032 (1 stuks) + houder. Bij PCB: CR1220 batterij + houder
Kantelschakelaar (ingekapseld) (1 stuks) - Kwikschakelaar
Trim-potentiometer 10 kohm (1 stuks)

Benodigde tools en machines

  • 3D-printer

Apps en online diensten

  • Arduino IDE

Over dit project

Een nieuwe versie met 10 klokweergaves vind je hier.

Op zoek naar iets om te bouwen, koos ik voor een LCD 1602 klok. Na het bekijken van veel verschillende implementaties op het web, dacht ik: waarom niet één klok die ze allemaal combineert?

Klokkenmerken

  • Acht verschillende weergavestijlen
  • Tijd, datum, geboortedatum en alarm instellen
  • Kantelschakelaar (kwikschakelaar) om alarm uit te zetten
  • Backlight-regeling
  • DHT21 Temperatuur- en Luchtvochtigheidssensor

Breadboard-versie

De elektronica is vrij eenvoudig.

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

Na het bedraden, laad de sketch in je Arduino IDE en upload naar de Arduino UNO. (Niet getoond: DHT21 is aangesloten op D9)

De klok gebruiken

De klok heeft drie knoppen - SETUP, INCREMENT, DECREMENT - en een KANTELSCHAKELAAR.

  • Backlight uit: Druk op een willekeurige knop → backlight aan. Geen knop ingedrukt gedurende 5 seconden (standaard, later 10s) → backlight uit.
  • Backlight aan: Knoppen werken als beschreven hieronder.

SETUP - Opent de SETUP-schermen. De rechter hoekhaak > is de cursor. INCREMENT/DECREMENT verhoogt/verlaagt de waarde. Nogmaals SETUP drukt cycelt de cursor door: Uren, Minuten, Dag, Maand, Jaar, Geboortedag, Geboortemaand, Geboortejaar, Alarm Uren, Alarm Minuten, terug naar KLOK-modus.

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

INCREMENT - Wanneer niet in SETUP: schakelt tussen de verschillende klokstijlen.

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

DECREMENT - Wanneer niet in SETUP: schakelt Alarm aan/uit.

KANTELSCHAKELAAR - Bij actief alarm: kantel de klok of druk een knop om het alarm uit te zetten.

Een volledig afgeronde klok bouwen

Van breadboard naar een afgeronde klok vereist een printplaat en extra componenten. Eagle-bestanden zijn bijgeleverd voor commerciële productie of zelf maken (ik gebruikte de tonermethode).

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

Let op: Omdat het LCD 1602 display via een rechte-hoek pin header met de hoofdpverbonden is, kan het moeilijk zijn om display en printplaat in de behuizing te krijgen als ze al gesoldeerd zijn. Een dubbelzijdige printplaat met doorgeplate gaten stelt je in staat om het display op zijn plaats te solderen.

Gebruikte componenten:

  • Arduino UNO vervangen door ATmega328 DIL chip, 16MHz kristal, 2×22pF keramische condensators
  • 5V regulator: 7805 TO-220 + 100µF 16V condensator voor vervaging
  • RTC: DS1302 met 32.768 kHz klokkristal
  • Speaker: passieve buzzer, DC-geïsoleerd met 10µF 16V condensator
  • 0.1µF en 1µF condensators: monolietisch keramisch (5mm gatafstand)
  • Weerstanden: 5% 1/8 watt (of 1/4 watt)
  • Kwikschakelaar: elke maat (mijn was 5mm diameter)
  • Drie tactiele knoppen op achterkant: 6×6mm met 13mm schacht

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

De behuizing is 3D-geprint met 0.2mm laaghogte zonder supports. Boor de montagegaten van de PCB uit met 2.5mm boor en tapeer met M3-tap. Gebruik M3 6mm schroeven. Ik boorde ook de vier montagegaten op de PCB uit naar 4mm voor eventuele correctie zodat knoppen niet klemmen.

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

Credits

Deze klok is een samenvoeging van diverse klokken die makers door de jaren heen hebben gemaakt.

De basis is "Arduino Digital Clock With Alarm Function (custom PCB)". Ik veranderde de behuizing naar twee stukken in plaats van vier.

  • Standaard scherm: Michalis Vasilakis
  • Dual Thick font: Arduino World
  • Dual Bevel font: Arduino Forum
  • Dual Trek font: Carrie Sundra
  • Dual Thin font: Arduino World
  • Word concept: LAGSILVA
  • Biorhythm klok: John Bradnam
  • Weer klok: ARDUinoautoMOTIVE

Updates

29/06/20

- Spelfouten in WORD klok gecorrigeerd
- #defines toegevoegd voor backlight-controle
- Backlight timeout verhoogd van 5 naar 10 seconden

23/11/20

- Geboortedatum instelling en EEPROM-opslag toegevoegd
- Biorhythm klokweergave toegevoegd
- Setup-scherm code opgeschoond

De hypothese is dat op basis van onze geboortedatum, biorythmen de piek- en dalmomenten van ons leven bepalen. Biorythmen bestaan uit drie cycli: een 23-daagse fysieke cyclus, een 28-daagse emotionele cyclus en een 33-daagse intellectuele cyclus. De biorhythm-klok toont elke toestand als een staaf.

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

De staaf toont of de biorhythm in een positieve cyclus (bovenste staaf) of negatieve cyclus (onderste staaf) is. De lengte van de staaf toont hoe positief of negatief in de cyclus het is.

06/12/20

- DHT21 ondersteuning toegevoegd
- Thermometer en Luchtvochtigheid klokweergave toegevoegd

Een nieuwe weerklootweergave is toegevoegd. Deze leest een DHT21 temperatuur- en luchtvochtigheidssensor aan de achterkant van de behuizing. De PCB is bijgewerkt met een 3-pin connector voor de DHT21 sensor.

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

Code

DigitalClockAlarmV7.ino (C/C++)

De volledige code is te uitgebreid voor deze weergave. Hieronder de kernstructuur en belangrijkste functies.

Download het bestand voor de complete sketch.

Belangrijke bibliotheken

#include <Wire.h>
#include <TimeLib.h>
#include <DS1302RTC.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>
#include <dht.h>

Configuratie-opties (via #defines)

// 12-uurs formaat voor Dual Thick/Thin
//#define DUAL_THICK_12HR
//#define DUAL_THIN_12HR

// Backlight controle
//#define NO_BACKLIGHT
//#define BACKLIGHT_ALWAYS_ON
#define BACKLIGHT_TIMEOUT 10000

// Test biorhythm grafieken
//#define TEST_BIO_GRAPHS

Pin-definities

#define LIGHT 2       // PD2 - Backlight
#define LCD_D7 3      // PD3
#define LCD_D6 4      // PD4
#define LCD_D5 5      // PD5
#define LCD_D4 6      // PD6
#define LCD_E 7       // PD7
#define LCD_RS 8      // PB0
#define BTN_SET A0    // PC0
#define BTN_ADJUST A1 // PC1
#define BTN_ALARM A2  // PC2
#define BTN_TILT A3   // PC3
#define SPEAKER 11    // PB3
#define DHT21 9       // PB1
#define RTC_CE 10     // PB2
#define RTC_IO 12     // PB4
#define RTC_SCLK 13   // PB5

Hoofdfuncties

  • setup(): Initialisatie van pinnen, RTC, EEPROM (alarm, geboortedatum, stijl), LCD custom characters per stijl, BLE-wachtlus voor tijdinstelling (alleen bij eerste run/geen RTC data).
  • loop(): Knoppen lezen, tijd/datum/temperatuur/vochtigheid ophalen, normale weergave of setup-modus, alarm controleren, backlight timeout beheren.
  • Weergavestijlen (STYLE enum):
    • STANDARD - Normale digitale klok met datum/alarm
    • DUAL_THICK - Dikke 2-rij cijfers (blok-karakteren)
    • DUAL_BEVEL - Afgeschuinde 2-rij cijfers
    • DUAL_TREK - Trek-stijl 2-rij cijfers
    • DUAL_THIN - Dunne 2-rij cijfers
    • WORD - Tekstuele tijdweergave (bijv. "TWELVE THIRTY")
    • BIO - Biorhythm staafdiagrammen (fysiek, emotioneel, intellectueel)
    • THERMO - Temperatuur en luchtvochtigheid met custom iconen
  • Custom karakters: Gedefinieerd in PROGMEM voor alle font-stijlen, klok/bel/thermometer/druppel iconen, zandloper animatie, biorhythm balken.
  • EEPROM-opslag: Alarm uur/min/aan-uit, huidige stijl, geboortedatum (jaar/maand/dag).
  • Biorhythm berekening: Op basis van geboortedatum en huidige datum, modulo 23/28/33 dagen.
  • DHT21 uitlezing: Elke 6 seconden, met afronding op 99 max.

Aangepaste onderdelen en behuizingen

STL-bestanden voor 3D-print

Schema's

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

Multi-Display LCD Wekkerklok met Aanpasbare Weergaves

Schema en PCB in Eagle-bestanden: Eagle bestanden

Productieproces

  1. Een Headless Raspberry Pi 2 Wateralarm Bouwen met Adafruit T-Cobbler Plus
  2. Arduino Nano Flight Simulator 2020 Bedieningspaneel – LCD & CDI Display
  3. Slimme bewegingsgeactiveerde wekker: Wakker worden voor de zekerheid
  4. Bouw een retro Numitron-klok met Arduino: Eenvoudig, betrouwbaar en energiezuinig
  5. Bouw een Arduino Real-Time Clock voor Islamitische Gebedstijden
  6. Precisie Woordklok: Minuutnauwkeurige Tijdweergave in Woorden
  7. Arduino Temperatuurbewaking & Realtime Klok met 3.2" TFT-display
  8. TM1637 Digitale Klok met Tijdinstelling & Alarm – Arduino Nano Prototype
  9. Afbeeldingen Weergeven op een 1,17-inch TFT LCD met Arduino UNO
  10. Real-time Arduino Weerklok: OLED-display voor tijd, datum & temperatuur
  11. Bouw een betrouwbare wekker met DS1302 RTC en Arduino UNO