Inhoudsopgave:

LCD DATUM/KLOK Vergeet de RTC: 9 stappen
LCD DATUM/KLOK Vergeet de RTC: 9 stappen

Video: LCD DATUM/KLOK Vergeet de RTC: 9 stappen

Video: LCD DATUM/KLOK Vergeet de RTC: 9 stappen
Video: Lesson 99: Building Arduino Digital Clock using DS3231 LCD and Seven Segment Display 2024, November
Anonim
LCD DATUM/KLOK Vergeet de RTC
LCD DATUM/KLOK Vergeet de RTC

Een NIST 2010 quantum logische klok gebaseerd op een enkel aluminiumion.

In 2010 plaatste een experiment twee aluminium-ion-kwantumklokken dicht bij elkaar, maar met de tweede verhoogde 12 in (30,5 cm) in vergelijking met de eerste, waardoor het zwaartekracht-tijddilatatie-effect zichtbaar werd in alledaagse laboratoriumschalen. Aldus de zwaartekrachttheorieën van Einstein weerleggend. De klokken waren omgekeerd in posities en vertoonden dezelfde tijdverschuivingen. NIST postdoctoraal onderzoeker James Chin-wen Chou met 's werelds meest nauwkeurige klok, gebaseerd op de trillingen van een enkel aluminiumion (elektrisch geladen atoom). Het ion zit gevangen in de metalen cilinder (midden rechts). Hij zegt 'één seconde minder in 3,7 miljard jaar' … laten we afwachten!

SUPERLEUK WAUW.

Dus door kwantumtrillingen te gebruiken die echt snel zijn, denk je dat sneller beter is. De 328-chip in Unos is nogal snel op 16 MHz. Dat is veel sneller dan het typische klok (horloge) kristal dat 32.768 kHz is. Dat is 500 keer sneller! En de 328 heeft een temperatuursensor om de klok te compenseren.

Dus waarom kan de 328 geen goedkoop horlogekristal vormen?

Stap 1: WAT TE VERWACHTEN?

WAT TE VERWACHTEN
WAT TE VERWACHTEN

Dit is mijn tweede poging om een klok te maken met ALLEEN de 328-chip. Elke 328 werkt op verschillende tijdstippen, ook al hebben ze een 16 MHz-kristal. Dus je krijgt slechte resultaten door alleen millis() te tellen. Die draait op 1.000 hz. Dit maakt ÉÉN millis(1) gemiddeld tot ongeveer +- 3,6 seconden per uur nauwkeurig. Arduino mills() tellen geen factional mills of gebruiken floats. Dit maakt het tellen van fracties van een molen onmogelijk. Dus het gebruik van Arduino micros() is de volgende keuze. Maar het gebruik van micros() is in slechts 71 minuten op. (dit is echt GEEN probleem). Het probleem voor mij is het omgaan met de grote aantallen en het maken van herhaalde aanpassingen op basis van gps-geklokte tijd. Een andere keuze is een interrupt. Dit telt de seconden, ongeacht waar de code in de lus wordt uitgevoerd. Dit maakt de 328 zo goed als een RTC. Zelfs als de vlekjes van de 'micros()' worden beschouwd, bij +- 4 uS, komt dit neer op een 250khz-klok. Dat is 7 keer beter dan de 32.768khz.

Dus hier is mijn Arduino lcd-klok op basis van een 16-bits timerOne onderbreekt met microseconden. Het is niet zo goed als het tellen van aluminiumionen! Maar het is eenvoudig en met enkele kalibraties kan het zo goed zijn als een RTC. Ik heb 3 versies van deze klok gemaakt. Van aansluiten op computer usb. Om alleen te staan met 4 knoppen. Naar buiten gps met temperatuur met behulp van een HC12. Dit instructable zal betrekking hebben op de eerste 2 klokken en ik zal een ander 'in de diepte' schrijven voor de HC12.

Zie mijn andere instructable over problemen met het HC12-bereik.

Wat je kunt verwachten is een eenvoudige lcd-klok/datum met UNO en een 16x2 lcd. Ik heb een aantal aangepaste nummers gemaakt voor het lcd-scherm. De bibliotheek met 'GROTE nummers' neemt 3 velden in beslag, de mijne slechts 1. De 4-knop heeft een interne pull-up, dus het bouwen is eenvoudig. Ik heb hiervoor een hoesje en een 2 lcd en achterkanten.

De openbare bibliotheek hier in mijn kleine stad heeft een 3D-printer die iedereen kan gebruiken. Ga dus naar een bibliotheek bij jou in de buurt voor het maken van de lcd-behuizing.

Mijn tests tonen -+ seconde elke 24-48 uur. Dat is ongeveer een minuut vrij in twee maanden. Drie of vier aanpassingen zetten de klok op punt. Slechts ongeveer 12 seconden vóór MAAND uitgeschakeld. Herhaalde pogingen om naden te 'kalibreren' om alleen maar cijfers na te jagen. De enige SLECHTE functie die ELK 'menu' gebruikt, zet de seconden terug op 00. Dit verandert de huidige tijd. Ik heb een time-out van 60 seconden gelaten voor het indrukken van de knop om synk met een andere klok mogelijk te maken.

Stap 2: DE MOEREN EN BOUTEN

DE MOEREN EN BOUTEN
DE MOEREN EN BOUTEN
DE MOEREN EN BOUTEN
DE MOEREN EN BOUTEN
DE MOEREN EN BOUTEN
DE MOEREN EN BOUTEN
DE MOEREN EN BOUTEN
DE MOEREN EN BOUTEN

Dit project is een STAND ALONE klok zonder RTC alleen een uno en lcd. Met de 4 knoppen kunt u de tijd/datum instellen en de tijdzone aanpassen en kalibreren.

De 3D-printerbestanden hebben een één en twee lcd-behuizing voor andere projecten.

Het lcd-scherm heeft GROTE NUMMERS die slechts EEN ruimte innemen. Dit kostte me nogal wat tijd om te doen

De case heeft 8 gaten voor knoppen voor andere projecten.

Sluit gewoon een 5v-muurwrat aan voor stroom.

Controleer uw lokale BIBLIOTHEEK voor het gebruik van een 3D-printer !!

Stap 3: OVER HET GEBOUW

OVER HET GEBOUW
OVER HET GEBOUW
OVER HET GEBOUW
OVER HET GEBOUW
OVER HET GEBOUW
OVER HET GEBOUW

Alle Arduino-kaarten met MEGA 328 micros zouden moeten werken. Het heeft een 16 MHz-kristal nodig en moet op die snelheid werken. Een 3,3 volt op 8 MHz werkt mogelijk niet met de interrupt-timing. Voor de behuizing past een pro-mini het beste, maar je kunt er een nano in knijpen, maar de usb-kabel kan een probleem zijn. Dit is een Hitachi 16x2 lcd, erg populair. Sommige goedkope zijn saai en vallen gewoon flauw. Er is een randconnector nodig om op een populaire I2c-convertermodule te passen. Er zijn slechts 4 draden nodig om de uno aan te sluiten. Er zijn veel tutorials om te laten zien hoe je het lcd-scherm kunt aansluiten zonder een convertermodule als je er geen wilt. Voor de klok zonder knop is dat alles wat je doet.

Het lcd-scherm heeft een GROOT NUMMER aangepast teken. De grote getallen nemen slechts EEN breedte in beslag.

Stap 4: 4 KNOPPEN en CASE

4 KNOPPEN en HOESJE
4 KNOPPEN en HOESJE
4 KNOPPEN en HOESJE
4 KNOPPEN en HOESJE
4 KNOPPEN en HOESJE
4 KNOPPEN en HOESJE

Hetzelfde als hierboven, maar voeg de 4 schakelaars toe. Een standaard printplaat van 2 inch x 2,5 inch wordt gebruikt om in de behuizing te passen. Snijd gewoon doormidden en installeer de schakelaars zodat de poten van links naar rechts gaan. Als je de schakelaars met de pootjes omhoog plaatst, komen de gaten niet op één lijn te liggen in de behuizing. Test of ze op één lijn liggen met de gaten in de behuizing VOORDAT u gaat solderen. Aard de onderpoten (allemaal) en draai elke bovenpoot naar een pin op de uno. Zie bijgevoegd schema. Als u de behuizing 3D print, moet het knopgedeelte op de lcd-behuizing worden gelijmd. Het klikt NIET in zoals de achterkant. Alle kleine zelftappende schroeven houden het lcd-scherm op zijn plaats. TE groot en je zal de zaak kraken. Hete lijmstift is misschien wel de beste. Voordat u het lcd-scherm monteert, maakt u het led-gebied zwart met zwarte tape. Anders schijnt het door de behuizing. Ik gebruik 2 side foam tape in 2 lagen voor het monteren van de pro mini. Deze tape is een koopje bij 'dollar tree stores'. Ik gebruik massief gecoate magneetdraad van ongeveer 26 gauge. Ik heb een geweldige instructable over 'een arme mans soldeerpot' voor het gebruik van deze draad in aansluitingen.

Stap 5: DE LCD

HET LCD-scherm
HET LCD-scherm
HET LCD-scherm
HET LCD-scherm
HET LCD-scherm
HET LCD-scherm

lcd-problemen

Als u klaar bent met de build, downloadt en installeert u de schets. Het lcd-scherm licht mogelijk niet op. Hier zijn een paar tips. De lcd 'led' moet branden en het scherm blauwachtig maken. Als er geen led is, controleer dan de jumperpinnen tegenover de weerstandpot. Hiervoor is de jumper of 150 ohm weerstand nodig. De blauwe pot is altijd het probleem. Dus draai de pot totdat het display 2 rijen vierkanten toont. Ga dan terug totdat de vierkanten nauwelijks vervagen. Als er nog steeds geen display is, controleer dan de SDA- en SCL-verbindingen. Te gemakkelijk om ze achteruit te krijgen. Dat is A4 tot SDA en A5 tot SCL. Dit zijn A-pinnen en geen D-pinnen en sommige pro mini's hebben deze pinnen aan de binnenkant van de pc en niet aan de randen. De laatste optie is om het adres te controleren. Sommige lcd-convertermodules hebben verschillende adressen. Of bij het gebruik van meer dan één apparaat hebben ze allemaal verschillende adressen nodig. De meeste modules hebben 3 soldeerpennen om 3 verschillende adressen in te stellen. Onthoud dat de I2c slechts 2 draden naar alle apparaten leidt. Elk apparaat MOET dus een uniek adres hebben. Inbegrepen is een I2c-adresscanner. Download de scannerinstallatie en lees de seriële monitor uit. Het display toont het adres voor ELK I2c-apparaat. Controleer de klokschets voor de lijn bovenaan de schets. 'LiquidCrystal_I2C lcd (0x3F, 16, 2); ' 0x3F is het juiste adres voor mijn converter. Als uw adres afwijkt, wijzigt u naar het juiste adres vanuit de scanner. Let op: kopieer en plak het nieuwe adres bevat soms end-of-line of harde return. Typ gewoon het andere adres. De eerste letters zijn altijd nul en kleine letters x 0x. Dit vertelt C++ dat het een hex is. Na 0x is elke letter een hoofdletter.

Stap 6: AANSLUITINGEN

AANSLUITINGEN
AANSLUITINGEN
AANSLUITINGEN
AANSLUITINGEN
AANSLUITINGEN
AANSLUITINGEN

volg het schema en sluit de unit aan.

Stap 7: ANDERE FOTO'S

ANDERE FOTO'S
ANDERE FOTO'S
ANDERE FOTO'S
ANDERE FOTO'S
ANDERE FOTO'S
ANDERE FOTO'S

veel geluk zie mijn andere instructables

Stap 8: DE SCHETS

instructables laat me geen Arduino-bestand downloaden !!!! dus ik gebruikte tekst. U moet de tekst kopiëren en plakken in een NIEUW arduino open bestand op de IDE……. SORRY

en de tekstbestanden laden ook niet !!! en probeerde hier te plakken, maar gooide het door elkaar !!

Tenslotte !!! heb mijn schets hier te downloaden. 26-3-2020 Ook wat kleine dingen opgelost.

De mensen die betaald worden om code te schrijven, rollen over de grond als ze mijn code zien. Mijn schetsen beginnen meestal eenvoudig. Dan voeg ik meer dingen toe om te doen. Dus de schets wordt een puinhoop. Ik hoop dat je leert van mijn twee grootste fouten. Er moet aan het begin een gedefinieerd overzicht en doel zijn. Voeg niet heel veel dingen toe aan de schets. Mijn grootste fout is het misbruiken van een FUNCTIE. Het moet kort zijn en een som opleveren, en alleen worden gebruikt als het herhaalde coderegels in de schets vervangt. delay(100) is een goed voorbeeld.

Mijn gebruik van een FUNCTIE is om delen van de schets te scheiden. Hierdoor kan ik de hoofdtekst gemakkelijk volgen en kan ik afzonderlijke secties debuggen door gewoon de functie aan te roepen. Ik denk dat GOTO dit vroeger deed, maar het is uit de gratie geraakt en wordt NOOIT gebruikt. Genoeg gezegd. Ik heb de data en tijden zo goed mogelijk gecontroleerd. Dezelfde delen van de schets lopen jarenlang mijn 'TIME SQUARED' klokken. Als ik iets heb gemist of als er een bug is, laat het me dan weten. Voor het kalibreren van de 'geen knoppen schets' de regel met 'unsigned long tSec = 1000122; ' (regel 34) is wat je verandert. De constante van 277 per seconde per uur is correct. Maar in de praktijk breng ik slechts 2 tot 8 bedragwijzigingen aan in de 'tSec'-waarde. Bij 1000122 liepen veel van mijn klokken zo goed als een RTC. Wees geduldig een kleine verandering van slechts 2-8 kan een perfecte klok worden. De keerzijde van eventuele wijzigingen voor beide klokken betekent dat de huidige tijd ZAL worden gewijzigd. U moet veranderen naar de juiste huidige tijd/datum.

//// easy_one_lcd_clock_no_buttons // // arduino en lcd klok // gebruik timerOne 16 bit timer // om deze klok te kalibreren: // gebruik een goede seconden klok zoals een GPS. // gebruik uren als basislijn. Tel seconden // DIT staat uit. Als DIT achter een GPS zit // GPS=00.. THIS=58 SUBTRACT 277 voor elke // seconde/uur. Dus als het 2 sec langzamer is in // 3 uur… (277 * 2)/3 = 184 // AFTREKKEN van tSec. // als DIT vooruit is GPS=00…THIS=03 // dezelfde wiskunde gewoon TOEVOEGEN aan tSec. // waarschuwing, de meeste klokken staan correct op 00. // 20 sec is een betere timercontrole.

Stap 9: CASE STL-bestanden

Hier zijn de dossiers van de 3D-printercase. Het toetsenbord moet op de lcd-behuizing worden gelijmd. De achterkant klikt vast op zowel de voorkant van de behuizing met één als met twee lcd-schermen. Klik eerst de bovenkant erin en werk dan naar beneden om een mooie pasvorm te krijgen.

CONTROLEER uw lokale BIBLIOTHEEK voor het gebruik van een 3D-printer.

Aanbevolen: