Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

11 Schritt:Schritt 1: Montieren Sie die Teile Schritt 2: Wie funktioniert die Uhr Schritt 3: Verdrahtung des Takt Schritt 4: Der Arduino Code Schritt 5: Die Programmierung der Uhr für Anfänger: Cap-Sensoren Schritt 6: Die Programmierung der Uhr für Anfänger: die Mathematik Schritt 7: Die Programmierung der Uhr für Anfänger: Einstellen der Zeit Schritt 8: Erstellen Sie das Gehäuse Schritt 9: Beenden Sie das Gehäuse Schritt 10: In der Elektronik an die Box Schritt 11: Abschließende Gedanken

Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

Dies ist ein weiterer Arduino LCD-Uhr, aber mit einem Twist; diese Uhr kennt einige Feiertage und Geburtstage und kann Berechnungen im laufenden Betrieb, wie alt jemand ist zu machen und zeigt dann die Informationen auf dem LCD-Bildschirm. Ich wurde inspiriert, diese Uhr zu machen, weil zwei liebe Freunde hatten eine große Geburtstagsparty und bat um "nur Geschichten" als Geschenk. Diese Uhr, die Geschichte ihrer Zeit aktualisiert ständig zusammen.
Die Uhr kann Leistung von einem USB-Kabel, 2 D-Batterien, oder ein Steckernetzteil (Eingang 7-12 Volt 500mA) zu erhalten. Es wird für ungefähr 2-3 Monaten auf den D-Zellen führen, so dass nicht die optimale Stromversorgung. Die Farbe der LCD-Hintergrundbeleuchtung kann geändert werden.
Dies ist mein zweiter Instructable, und wie die erste (eine Persönlichkeit Tester), ist es für Leute wie mich konzipiert; Anfänger mit Arduino Mikrocontroller, aber die haben einige rudimentäre handwerkliche Fähigkeiten. Diese Instructable wird im Wesentlichen in zwei Teile unterteilt; wie ich die Elektronik und wie ich das Gehäuse.

Schritt 1: Montieren Sie die Teile

  1. Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Für dieses Projekt habe ich:
    ein Arduino Uno a Tiny RTC 1307 (Echtzeituhr) Modul eine Adafruit Cap1188 8-Punktkapazitätssensor ein Adafruit Powerboost 500 -Modul (hilft dem Arduino ablaufen 2 D-Zellen-Batterien) eine Adafruit RGB 16x2 LCD-Display zur Anzeige der Uhrzeit 2 10k Töpfe, die ich kaufte billig bei Amazon (Packung mit 10 Tropfen von China) ein Single-Pole Single-Throw-Aus-Schalter, die ich herumliegen (wahrscheinlich kamen die gesamte Elektronik eines 2-D-Batteriezellenhalter einige Draht a) Box, die Uhr habe ich einige burled Ahornsperrholz Überbleibsel aus einem anderen Projekt und einige Schrott Redwood für die Beine und oben zu halten. Sie könnten eine Zigarrenkiste oder fast jede Box die Sie von einem Secondhand-Laden gefiel. Ich werde erklären, wie ich mein Gehäuse unten in diesem Instructable gemacht.

Schritt 2: Wie funktioniert die Uhr

  1. Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Es gibt zwei dicken Kupferdraht Bands auf der Vorderseite der Uhr. Berühren Sie das auf der linken Seite (wie Sie das Zifferblatt), und es werden Informationen über eine Person. Berühren Sie den Kupferdraht auf der rechten und Informationen einer anderen Person wird angezeigt. Drücken Sie beide Drähte gleichzeitig und Informationen über ihre kombinierten Zeit zusammen angezeigt.
    Um die Zeit einzustellen, die Rückseite der Uhr hat eine Vielzahl von Kupfer-Sensorkabel. Ändern der Zeit beinhaltet gleichzeitig berühren die entsprechenden Kupferdrähte auf der Rückseite der Uhr - zum Beispiel, um die Minuten wieder um 5 Mal pro Sekunde eingestellt, einfache Berührung des Drahtes Minuten und dann auf den Minuspol 5 mal. Die Uhr ist eingerichtet, um nur die Zeit voranzubringen um eine Einheit pro Sekunde, so dass, wenn Sie die Uhr vor 30 Minuten einstellen müssen sie 30 Sekunden Halten der Drähte zu nehmen. Einstellen des Jahres erfordert gleichzeitig berühren drei Leitungen; Monat und Tag Drähte und dann die Plus- oder Minus-Draht.
    Der Akku Ein / Aus ist nützlich für das Speichern von Batterien und zum Rücksetzen der Uhr. Dies sollte ausgeschaltet, wenn die Uhr empfängt Leistung von einem Steckernetzteil oder USB umgeschaltet werden. Zwei 10k-Ohm-Potentiometer steuern die LCD-Helligkeit und Farbe.

Schritt 3: Verdrahtung des Takt

  1. Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Verdrahtung der Uhr ist ziemlich einfach, so scheint es (als meine zweite Arduino build).
    Es gibt die beiden Teile, dass "sprechen" zu dem Arduino mit I2C; die Uhr und die cap1188 Sensor Ausbrüche. Ich telegraphierte die Uhr Erste, Stifte A4 und A5 des Arduino. Dann habe ich "Daisy-Chain" die cap1188 Breakout-Board in durch Anbinden an die SDA und SCK outs von der Takt Breakout-Board (im Wesentlichen sind sie parallel verdrahtet).
    Ein Schaltplan für die genaue RTC Board I verwendet wird, ist hier:
    http: //smart-prototyping.com/Arduino-Tiny-RTC-I2C -...
    Es gibt zwei 10 k-Ohm-Potentiometer zur Steuerung der Hintergrundbeleuchtung Farbe und Kontrast. Sie bekommen 5V und Masse an den Außenpfosten (spielt keine Rolle, auf welcher Seite das, was kommt) und der Mittel Themen Zur entweder A3 des Arduino oder auf Pin 3 des LCD-Bildschirms.
    Der LCD-Bildschirm wird genau verdrahtet, wie auf der Website Adafruit erklärt:
    https://learn.adafruit.com/character-lcds
    so ist die CAP1188 Sensor:
    https: //learn.adafruit.com/adafruit-cap1188-breako ...
    Wie üblich habe genug Komponenten gekauft, um einen Takt auf dem Steckbrett und ein anderes "für echte" zu machen. So hatte ich eine Arbeits breadboarded Version an, wie ich verdrahtet die reale in der Uhr Gehäuse suchen.

Schritt 4: Der Arduino Code


  1. Laden Sie die Arduino Code hier ein und öffnen Sie es in der Arduino-Editor (ich schrieb es mit Version 1.6.3). Sie sind ein paar Standard-Bibliotheken (wire.h und LiquidCrystal.h) und SPI.h ist im Preis inbegriffen (aber ich glaube nicht, dass ich es, es Erbe aus dem ursprünglichen Code, den ich zusammen mit Kopfsteinpflaster, um die Uhr zu machen ist).
    Sie müssen auch zwei Spezialbibliotheken. Ich habe sie hier zum Download bereit gestellt, nur weil ich wollte, dass Sie die genauen Versionen I verwendet (so dass alles funktionieren wird) haben. Allerdings empfehle ich, dass Sie sich bemühen die Originaldateien von Adafruit (Cap1188) und von David H Brown (für den Echtzeit-Uhr-Bibliothek) , weil sie aktualisiert werden kann und weil diese Leute in einem großen Aufwand machen diese Bibliotheken für setzen Leute wie wir.
    Hier ist die grundlegende Logik der Uhr:
    Der Kapazitätssensor bestimmt, was passieren soll, so überprüfen Sie, ob es berührt wurde.
    Cap berührt? NO = zeigen die Zeit in der oberen Zeile überprüfen, ob es ein Geburtstag oder ein anderer besonderer Tag? YES = Anzeige eine besondere Botschaft in der 2. Zeile NO = Anzeige des Datums in der zweiten Zeile JA, die Nummer 1 der Kappe Sensordraht berührt wurde Berechnen Dinge über 1 Person und zeigt sie für ein paar Sekunden YES, das # 2-Sensor berührt wurde berechnen und anzuzeigen Dinge über Person 2 Ja, beide Deckel 1 und 2 berührt! Berechnen und Informationen darüber, wie lange das Paar zusammen gewesen.
    (Jetzt suchen wir nach Kappe berührt, die Zeitmessung zu tun haben)
    JA Kappen 3 und 7 wurden berührt; bewegen Stunden vor 1 YES Kappen 3 und 8; bewegen Stunden zurück 1 YES Kappen 4 und 7; bewegen Minuten vor 1 YES Kappen 4 und 8; bewegen Minuten zurück 1 YES Kappen 5 und 7; bewegen Monaten 1 YES Kappen 5 und 8; bewegen Monate zurück 1 YES Kappen 6 und 7; bewegen kommenden Tagen 1 YES Kappen 6 & 8; bewegen Tagen zurück 1 YES Kappen 5,6 & 7; bewegen Jahren 1 YES Kappen 5,6 & 8; bewegen Jahre zurück 1 JA aber die Berührungen nicht oben beschrieben; nichts tun, und ziehen weiter.
    Schließlich prüfen, ob die Drehknöpfe auf der Rückseite für Farb wurden verschoben - wenn ja, ändern Sie die Farbe des LCD-Bildschirms.
    Dann die Schleife zurück zu dem Anfang des Programms.

Schritt 5: Die Programmierung der Uhr für Anfänger: Cap-Sensoren

  1. Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Kapazitätssensoren sind nette kleine Geräte; sie die ganze Zeit sehen, weil sie für Dinge wie Lampen, die Helligkeit nur durch Berührung zu ändern verwendet. Die Breakout-Board I eingesetzt, von Adafruit, Ausgänge, ob die Drähte wurden mit I2C berührt und sendet Zahlen als Potenzen von 2 (Ich bin nur zu lernen, diese, vielleicht sind Sie auch). Für die meisten von Ihnen ist dies die zu einfach sein, aber es mich immer noch verwirrt, also machte ich eine Tabelle, wie die Kappe reagiert auf Berührung.
    Der Anruf, um zu sehen, wenn etwas berührt worden ist "berührt" und kann wie folgt codiert werden:
    if (berührt == 1) {etwas tun, wenn der erste Draht -und nur der erste Ein- berührt}
    Zum Beispiel, wenn die 5. Draht berührt wird, "sieht" das Arduino die Zahl 16 zu, nehme an, dass die 3. und 6. Draht Drähte gleichzeitig berührt, die Arduino würde die Zahl 36. Warum sehen? da die Drähte mit dem Kapazitätssensor angebracht sind von 0-7 nummeriert und die 3. Leitung die Zahl 2 ^ 2 = 4 und 6. Draht hat die Nummer 2 ^ 5 = 32, und die Summe der beiden Zahlen ist 4 + 32 = 36.
    Immer noch verwirrt? Versuchen Sie dieses Video als Ort, um ... (es hat mir geholfen).
    Also, mit 8 Adern an den Kapazitätssensor angeschlossen ist, können wir viele verschiedene Kombinationen [(2 ^ 8) -1 = 255 Kombinationen], um verschiedene Dinge zu tun. I kodiert nur den Takt für 13 verschiedene Dinge. Es sind dies: etwas über 1 Person, etwas über 2 Person, etwas über sie zusammen, zzgl Stunden minus Stunden plus Minuten minus Minuten plus Tage, minus Tagen, zzgl Monaten minus Monate, Jahre, und minus Jahren.
    Wenn man sich die Arduino-Code sehen Sie, wo ich die Arduino-Check für die verschiedenen Kombinationen, die Bedeutung haben. Jeder kleine Schnipsel wie diese:
    else if (berührt == 36)
    {K = PLUSMIN (); }
    fordert eine winzige Unterprogramm etwas Bestimmtes zu tun. Das obige Beispiel fordert das Unterprogramm, um die Minuten Vorsprung von einer Minute eingestellt.

Schritt 6: Die Programmierung der Uhr für Anfänger: die Mathematik

  1. Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Uhr hat diese raffinierte (zumindest ich denke, es ist nifty) Funktion, wo, wenn Sie einen der Drähte auf der Vorderseite der Uhr zu berühren, berechnet er, wie alt die Uhr Eigentümer ist und stellt sie entweder in Jahren, Monaten oder Tagen. Die Rechnung ist ziemlich einfach, aber wenn Sie nicht getan haben Mathematik mit einem Arduino, hier ist ein wenig Anleitung. Wie bei dem vorherigen Schritt, überspringen Sie diesen, wenn Sie bereits ein Experte sind.
    Das Bild oben ist der 'calcs' Unterprogramm. Es wird berechnet und speichert das Alter der zwei Takt Besitzer in 6 verschiedene ganze Zahlen sind und auch berechnen, wie lange sie schon zusammen (3 Zahlen). Das geht so:
    Ist es vor oder nach Ruth Geburtstag dieses Jahr? Nach: Berechnung ihres Alters als 35 + Jahre (wo 35 ist, wie alt Ruth war an diesem Tag zurück in das Jahr 2000, und "Jahre" ist, welches Jahr es jetzt ist) Bevor: Berechnung ihres Alters als 34 + Jahre (weil ihr Geburtstag noch nicht in diesem Jahr kamen). Bewahren Sie diese Berechnung als eine ganze Zahl als "ruth_y" Konvertieren von Jahren auf Monate (Sie sollten dies dem Namen der Person, die Sie machen Ihre Uhr zu ändern) und speichern Sie diese Nummer. Verwenden Sie diese Formel: "ruth_y '* 12 +, wie viele Monate seit ihrem Geburtstag Konvertieren von Monaten auf Tage und speichern Sie diese Zahl. Here I 'betrogen' und verwendet die durchschnittliche Anzahl der Tage in einem Monat über einen Zeitraum von 4 Jahren (unter Berücksichtigung des Schaltjahres = 30.43), und dann hinzugefügt die Anzahl der Tage im aktuellen Monat. Es ist nicht ganz richtig, aber na ja ...
    Wiederholen Sie dies für die anderen Dinge zu berechnen.

Schritt 7: Die Programmierung der Uhr für Anfänger: Einstellen der Zeit


  1. Ich gebe zu, es dauerte eine ganze Weile, um dies herauszufinden. Es scheint nun einfach ... Hier ist einer der Unterprogramme die ich benutze:
    // Unterprogramm zum Setzen Tag vor
    int plusday () {
    RTC.setDay (Termine + 1);
    RTC.setClock ();
    Verzögerung (500);
    }
    Es funktioniert wie folgt: die "Tage" Nummer eingestellt Vorsprung von 1 ist, dann stellen Sie die Uhr, dann verzögern für 1/2 Sekunde, bevor es wieder tun. Zwei Dinge zu beachten: Sie müssen die Sache, die Sie einrichten zu setzen und dann stellen Sie die Uhr (zB haben die beiden Aussagen in dort zusammen und in der richtigen Reihenfolge). Wenn Sie sie haben in der falschen Reihenfolge, oder wenn Sie die SetClock weglassen (); Rechnung, wird es nicht funktionieren. Zweitens ist die zweite Verzögerungs 1/2 in es, die Uhr aus der Addition viel, viel Zeit von einer kurzen Berührung der Drähte zu halten.
    Hier sind die Anrufe, die Sie, wenn Sie die RealTimeClockDS1307.h Bibliothek verwenden können:
    getHours getMinutes getSeconds getYear getMonth getDate getDay GetDayOfWeek (ziemlich selbsterklärend)
    SetClock (müssen nach jeder der folgenden Dinge zu verwenden, aber nicht für die oben Anrufe)
    setSeconds setMinutes setHours
    Setam setPM set24h switchTo24h switchTo12h
    setDayOfWeek setDate SetDay setMonth setYear
    Stop Start (zum Starten und Stoppen der Uhr, wenn Sie das tun wollen)
    sqwEnable sqwDisable writedata readdata (Rechteckwellenausgang Sachen habe ich nicht benutzt)
    is12hour ISPM isStopped getFormatted getFormatted2k (nützlich für das Gespräch um die Uhr über die serielle Schnittstelle)
    Es gibt zwei Möglichkeiten, um zunächst zu der Uhr gehen.
      Verwenden Sie ein separates Programm, um die Uhr zu starten. Das ist, was ich tat - unten ist ein Link für Sie das kleine Programm, das ich verwendet, um herunterzuladen. Bestimmen Sie Zeit im Programm und führen Sie es einmal. Oder Sie können einfach vorübergehend fügen eine Zeile Code in das Hauptprogramm zu Beginn der Leere Schleife. Fügen Sie diese: beginnen Takt (); führen Sie das Programm einmal und es sollte sagen, dass es am 00.00.00 1. Januar 2000. Dann kommentieren Sie die Zeile, das Programm erneut, und verwenden Sie die Tasten auf der Rückseite der Uhr, um die Zeit einzustellen. Dies wird langsam sein.

Schritt 8: Erstellen Sie das Gehäuse

  1. Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Alle 14 Artikel anzeigen

    Sie können fast alles als Beilage verwenden - Ich baue eine mit einer Zigarrenkiste, aber für dieses Projekt mein Gehäuse wurde von einigen Schrott 1/4 Zoll Spanplatte, die einen schönen Ahornholz furniert auf einer Seite konstruiert. Ich schnitt es so, dass ein 4-D-Zellen-Batteriehalter hinein passen würde (I Liquidation nur mit einem 2-Batteriehalter) und machte die Tiefe der Box etwas größer als der Arduino. Ich teste-passen es mehrmals, dann für die Platzierung des LCD-Bildschirms gemessen. Ich bohrte eine Reihe von Löchern und verwendet eine Datei, um die rechteckige Öffnung langsam zu gestalten, so dass der LCD-Bildschirm in sie passen sich exakt dann.
    Für die Beine, nahm ich ein Stück Schrott Rotholz und in einer gekrümmten Form mit Bleistift, schneiden Sie die Beine auf einer Bandsäge und dann verwendet werden, doppelseitiges Klebeband, um die 4 Beine in einem Stück zusammen zu halten. Dann, in einem Stück, geformt ich es auf einem Bandschleifer. Dieser Trick ist groß, weil es hilft, alle 4 Beine identisch zu sein (sie waren nicht identisch, nachdem die Bandsäge schneiden).
    Dann habe ich einen Router mit einem Bit, um eine 90-Grad-Nut in die Beine abgeschnitten. Ich erinnere mich nicht, der mir diesen Trick beigebracht, aber es hilft, fügen Sie die Beine an die Box und hält die Kastenkonstruktion einfach. Ich teste fit alles mehrmals, dann verklebt die Box zusammen, dann verklebt die Beine auf den Beinen.
    An diesem Punkt wurde mir klar, dass ich die Löcher für die Arduino USB und Netzkabel. Zu spät! Es wurde bereits aufgeklebt. Sie so schneide ich mit der Hand, und wenn man die Bilder an zu sehen, dass dieser Fehler führte zu der Furnierschäl auf diesen Schnitten. Es sieht schlecht; glücklicherweise ist es auf der Rückseite der Uhr und nicht die Front.

Schritt 9: Beenden Sie das Gehäuse

  1. Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Der Deckel für die Uhr ist ein weiteres Stück Schrott Redwood. Ich habe auch schneiden Sie zwei kleine Holzstücke, um Schienen zu bilden, um es an den Takt halten. Stellen Sie sich eine Upside-Down-Bahnstrecke. Der Deckel wird durch Reibung und einer Messingschraube an der Rückseite, die eine der Schienen an den Takt innehat. Ich habe dann geschliffen die ganze Sache so war es glatt. I besprüht alles mit Schellack, mehrere Schichten, und dann lassen Sie alles trocknen. Zeit, um die Elektronik hinzuzufügen!

Schritt 10: In der Elektronik an die Box

  1. Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    Die Geschichte Uhr: Arduino LCD w / cap-Sensoren

    I gemessen und dann erneut gemessen, wobei der Kupferdraht für die Kapazitätssensoren gehen sollte, dann bohren kleine Löcher, um den Draht zu akzeptieren. Der Kupferdraht ist von Home Depot, aber es war einfach etwas, das ich hatte, um von einem anderen elektrischen Arbeit liegen. Es ist 14 Gauge. Ich beugte sie zu formen, dann schob sie durch die Löcher und bog die Rückseiten. Dann gelötet ich einige farbige Litzen, um es für die Verbindung zum cap1188 Breakout-Board.
    I gebohrt auch zwei Löcher für die 10K Potentiometer und verlötet Drähte zu ihnen. Schließlich gebohrt I ein Loch für den Ein / Aus-Schalter. Zu diesem Zeitpunkt war die Uhr nur ein Gewirr von Kabeln ragte aus der Oberseite des Gehäuses ohne Elektronik im Inneren.
    Ich habe einen Eispickel, um "Pre-drill" einige kleine Löcher in das Feld ein und schraubte die Arduino und die RTC-Uhr Platten anstelle dann. Ich verdrahtet, dass alle bis zum Arduino zugegeben die Kappe Sensor und Kabel, dass bis zuletzt. Ich habe es so, weil ich faul war und hatte keine Lust, die mehr kleine Löcher für die Kappe Sensor an den Innenwänden der Uhr Gehäuse verschraubt werden. Es sitzt einfach oben auf allen Leitungen.
    Getestet habe ich es mehrmals auf dem Weg und bemerkte, dass die Kappe Sensoren sehr empfindlich auf Bewegung der Verdrahtung in der Box. Glücklicherweise setzt der Ein- / Ausschalter der Sensoren und der Deckel hilft, alles an seinem Platz schön und gemütlich.
    Schließlich I verlötet der Starthilfe auf die 2 D-Zellen-Akku, verdrahtet sie auf und schob es in die Unterseite der Uhr. Es wird durch Reibung und einen kleinen Schrott aus Holz, die ich auf den Boden geklebt statt. Ich sollte, dass ein Teil durch mehr gedacht haben, aber na ja, es funktioniert gut, und niemand kann es sehen, es sei denn, sie aktiv zu suchen.

Schritt 11: Abschließende Gedanken


  1. Ich genoss den Aufbau dieser Uhr für unsere Freunde, und ich werde für meine eigene Familie zu bauen. Einfache Dinge, die ich hinzufügen, werden mehr Urlaub und Familie Geburtstage zu sein, und ich werde wahrscheinlich eine Summer-Alarm und ein wenig Lichtsensor automatisch die Helligkeit nach unten in der Nacht hinzufügen. Es gibt viele Tutorials hier auf Instructables für das Hinzufügen, diese Dinge und jetzt, wo ich bin ein wenig vertraut mit der Echtzeit-Uhr-Bibliothek, indem mehr Funktionalität sollte in meiner Reichweite sein.