Digital/Analog Clock - Arduino + PaperCraft (10 / 11 stap)

Stap 10: Programing

- Algoritme

Hoofdlus

  1. RTC-module tijd ophalen (in uur en minuten)
  2. Als verschillende Tijd weergeven tijde
  3. Herhaal

Tijd weergeven

  1. Tijd verdeeld in vier cijfers. (met behulp van / div 10)
  2. Voor elk beeldscherm zeven segment, verhuizen segmenten naar cijfer weergeven

Display Digit

  1. Plaatst de decoder logica. Vertalen int in zeven segment bestellen.
  2. Benodigde servo's uit X mate verplaatsen  Zet overbodige servo's Y graden (waar X de uit positie en Y is de positie van het vliegtuig.

Monster

#include < Wire.h >
#include "RTClib.h"

RTC_DS1307 RTC;

korte segA = 0; Display pin 14
korte segB = 1; Display pin 16
korte segC = 2; Display pin 13
korte segD = 3; Display pin 3
korte segE = 4; Display pin 5
korte segF = 5; Display pin 11
korte segG = 6; Display pin 15

korte segA_OUT = 110;
korte segB_OUT = 110;
korte segC_OUT = 110;
korte segD_OUT = 110;
korte segE_OUT = 110;
korte segF_OUT = 110;
korte segG_OUT = 110;

korte segA_IN = 90;
korte segB_IN = 90;
korte segC_IN = 90;
korte segD_IN = 90;
korte segE_IN = 90;
korte segF_IN = 90;
korte segG_IN = 90;

int tijd = 2000;

DateTime datePast;
DateTime dateNow;

huis houden
VOID Setup {}
Serial.begin(9600);
Wire.begin();
RTC.begin();
RTC.adjust (DateTime (__DATE__, __TIME__));
datePast = RTC.now();
}

hoofdlus
void loop {}
dateNow = RTC.now();
Als (! () datePast.hour() == dateNow.hour() & & datePast.minute() == dateNow.hour()))
{
displayNumber(dateNow.hour()*100+dateNow.minute());
datePast = dateNow;
}
}

Krijgen een nummer, tonen we 10:22
Na het doornemen van de 4 cijfers, het display wordt overgelaten uitgeschakeld
VOID displayNumber (int om) {}
voor (int cijfer = 4 cijfers > 0; cijfer--) {}
lightNumber (om 10%, cijfers);
Om / = 10;
}

beginnen beweging
Serial.Print ("T"); Serial.println(time);
}

VOID verplaatsen (int servo, int positie) {}
Serial.Print("#");
Serial.Print(Servo);
Serial.Print ("P");
Serial.Print(Position);
}

Gezien een aantal, draait op die segmenten
Als getal == 10, schakel nummer
VOID lightNumber (int numberToDisplay, int segment) {}

int offset = (segment - 1) * 7;
schakelaar (numberToDisplay) {}

Case 0:
verplaatsen (segA + offset, segA_OUT);
verplaatsen (segB + offset, segB_OUT);
verplaatsen (segC + offset, segC_OUT);
verplaatsen (segD + offset, segD_OUT);
verplaatsen (segE + offset, segE_OUT);
verplaatsen (segF + offset, segF_OUT);
verplaatsen (segG + offset, segG_IN);
breken;

Case 1:
verplaatsen (segA + offset, segA_IN);
verplaatsen (segB + offset, segB_OUT);
verplaatsen (segC + offset, segC_OUT);
verplaatsen (segD + offset, segD_IN);
verplaatsen (segE + offset, segE_IN);
verplaatsen (segF + offset, segF_IN);
verplaatsen (segG + offset, segG_IN);
breken;

Case 2:
verplaatsen (segA + offset, segA_OUT);
verplaatsen (segB + offset, segB_OUT);
verplaatsen (segC + offset, segC_IN);
verplaatsen (segD + offset, segD_OUT);
verplaatsen (segE + offset, segE_OUT);
verplaatsen (segF + offset, segF_IN);
verplaatsen (segG + offset, segG_OUT);
breken;

Case 3:
verplaatsen (segA + offset, segA_OUT);
verplaatsen (segB + offset, segB_OUT);
verplaatsen (segC + offset, segC_OUT);
verplaatsen (segD + offset, segD_OUT);
verplaatsen (segE + offset, segE_IN);
verplaatsen (segF + offset, segF_IN);
verplaatsen (segG + offset, segG_OUT);
breken;

Case 4:
verplaatsen (segA + offset, segA_IN);
verplaatsen (segB + offset, segB_OUT);
verplaatsen (segC + offset, segC_OUT);
verplaatsen (segD + offset, segD_IN);
verplaatsen (segE + offset, segE_IN);
verplaatsen (segF + offset, segF_OUT);
verplaatsen (segG + offset, segG_OUT);
breken;

Case 5:
verplaatsen (segA + offset, segA_OUT);
verplaatsen (segB + offset, segB_IN);
verplaatsen (segC + offset, segC_OUT);
verplaatsen (segD + offset, segD_OUT);


verplaatsen (segE + offset, segE_IN);
verplaatsen (segF + offset, segF_OUT);
verplaatsen (segG + offset, segG_OUT);
breken;

Case 6:
verplaatsen (segA + offset, segA_OUT);
verplaatsen (segB + offset, segB_IN);
verplaatsen (segC + offset, segC_OUT);
verplaatsen (segD + offset, segD_OUT);
verplaatsen (segE + offset, segE_OUT);
verplaatsen (segF + offset, segF_OUT);
verplaatsen (segG + offset, segG_OUT);
breken;

Case 7:
verplaatsen (segA + offset, segA_OUT);
verplaatsen (segB + offset, segB_OUT);
verplaatsen (segC + offset, segC_OUT);
verplaatsen (segD + offset, segD_IN);
verplaatsen (segE + offset, segE_IN);
verplaatsen (segF + offset, segF_IN);
verplaatsen (segG + offset, segG_IN);
breken;

zaak 8:
verplaatsen (segA + offset, segA_OUT);
verplaatsen (segB + offset, segB_OUT);
verplaatsen (segC + offset, segC_OUT);
verplaatsen (segD + offset, segD_OUT);
verplaatsen (segE + offset, segE_OUT);
verplaatsen (segF + offset, segF_OUT);
verplaatsen (segG + offset, segG_OUT);
breken;

Case 9:
verplaatsen (segA + offset, segA_OUT);
verplaatsen (segB + offset, segB_OUT);
verplaatsen (segC + offset, segC_OUT);
verplaatsen (segD + offset, segD_OUT);
verplaatsen (segE + offset, segE_IN);
verplaatsen (segF + offset, segF_OUT);
verplaatsen (segG + offset, segG_OUT);
breken;

zaak 10:
verplaatsen (segA + offset, segA_IN);
verplaatsen (segB + offset, segB_IN);
verplaatsen (segC + offset, segC_IN);
verplaatsen (segD + offset, segD_IN);
verplaatsen (segE + offset, segE_IN);
verplaatsen (segF + offset, segF_IN);
verplaatsen (segG + offset, segG_IN);
breken;
}
}

Andere
Je moet ook klok in te stellen u RTC de eerste keer. Hierdoor krijgt het een begintijd gelijk aan op uw computer. U moet de RTC-bibliotheek de volgende code uit te voeren.

#include
#include "RTClib.h"

RTC_DS1307 RTC;

void setup () {}
Serial.begin(57600);

Wire.begin();

RTC.begin();

if (!. RTC.isrunning()) {}
Serial.println ("RTC is NOT running!");
RTC.adjust (DateTime (__DATE__, __TIME__));
}
}

Gerelateerde Artikelen

De NerdClock: Een RGB-Binary Clock [Arduino Software]

De NerdClock: Een RGB-Binary Clock [Arduino Software]

IntroductieBinaire klokken zijn een werkelijk koele manier om aan te tonen van de tijd op een mysterieuze manier. En voor degenen die niet weten hoe om te lezen dat soort klok is een eenvoudige, maar effectieve manier omhoog uw nerdiness niveau hemel
KY-013 analoge thermistor (Arduino)

KY-013 analoge thermistor (Arduino)

Ik had een harde tijd vinden van de "plug & play" info en codes, pinouts, etc. met betrekking tot de KY-013 analoge temperatuursensor. Ik ben geen programmeur, want ik doe veel proeven en fouten, meestal fouten, maar ik eindelijk iets gaat h
How to: meerdere knoppen op 1 analoge Pin - Arduino tutorial Arduino Tutorial

How to: meerdere knoppen op 1 analoge Pin - Arduino tutorial Arduino Tutorial

De Arduino uno board heeft 12 beschikbare digitale I/O pinnen en 6 analoge input pinnen, soms, op complexe of 'grote' projecten, we lopen uit digitale pinnen. In deze tutorial leert u hoe het gebruik van meerdere knoppen op een analoge pin.Bijvoorbee
Bacon Alarm Clock - Arduino

Bacon Alarm Clock - Arduino

Dit is een project dat ik kwam met dat werd geïnspireerd door mijn liefde voor spek!Dit is een wekker die is ontworpen om je wakker met de geur van bacon. Met behulp van een arduino die de wekker zal al het spek aroma vult de kamer om wakker wilt u u
DIGITAL WORD CLOCK FROM A CHEAP PHOTO FRAME

DIGITAL WORD CLOCK FROM A CHEAP PHOTO FRAME

ik heb gehouden van 2 grote ideeën en leg ze samen.Ik wilde een super cool 'Word Clock', zoals hier te zien:Maar ik heb niet die gemakkelijk beschikbare middelen.Maar ik heb een goedkope fotolijstjes en een beetje tijd. Dus ik dit idee gebruikte:http
Cuckoo Clock (arduino)

Cuckoo Clock (arduino)

"Dit instructable ontstond vervulling de project-eis van de Makecourse bij de Universiteit van Zuid-Florida (www.makecourse.com)"Voor dit project besloten heb ik om te gaan naar mijn roots, het Zwarte Woud in Baden-Württemberg en maakt. Er maken
The Word Clock - Arduino version

The Word Clock - Arduino version

**************************************************************************Belangrijke updates - een veel betere behuizing voor deze klok heeft ontwikkeld - Bekijk**************************************************************************Vorige maand i
Charliexplexed LED Clock - Arduino

Charliexplexed LED Clock - Arduino

Een van mijn klokken gestopt met werken – en het is er gebeurd met een klok die mijn vrouw veel houdt. Ging naar de reparatiewerkplaats en de man zei dat hij niet de reserveonderdelen en dit niet kon herstellen. Dus-ik dacht-waarom niet bouwen van ee
Arduino, 2 servo's + analoge stick (joystick)

Arduino, 2 servo's + analoge stick (joystick)

In mijn andere 2 Arduino tutorials heb ik help nieuwe gebruikers om te spelen tonen en het maken van 2 servo's verplaatsen met een muis.Ditmaal die zal ik helpen verplaatsen u de dezelfde 2 servo's met een analoge stick.En weer heb ik surfen op het i
Arduino analoge stick controller

Arduino analoge stick controller

In dit project zal ik helpen u samen te stellen een eenvoudige en van kras analoge stick Arduino controller, waarmee uw projecten (servo's & gelijkstroommotoren). Dit is een eenvoudige gids om te helpen nieuwe Arduino gebruikers aan hun projecten, ma
Mijn Arduino binaire klok

Mijn Arduino binaire klok

Hallo uit ItaliëHoewel veel horloges binaire gemaakt zijn, was mijn project geïnspireerd voornamelijk aan dit:http:// zeer slim en grappig.Ik heb geprobeerd om het ontwerp en om toe te voegen iets persoonlijks.Ik denk dat het een goed resultaat aan h
Arduino zelf evenwicht Controller met behulp van digitale IMU, eindelijk!

Arduino zelf evenwicht Controller met behulp van digitale IMU, eindelijk!

Wat is het?DIY Segway/balans controller met moderne digitale IMU sensor.Software voor een Arduino waarmee het standpunt om gegevens te lezen van een van de nieuwere digitale accelerometer/gyroscoop eenheden, processen, de gegevens met behulp van Kalm
Arduino Street verkeerslicht - Breadboard Edition

Arduino Street verkeerslicht - Breadboard Edition

bouwen van een eenvoudige Arduino aangedreven verkeerslicht met ons! Dit instructable moet u bijna elke stap te doorlopen, maar er zijn enkele veronderstellingen. Lees over de intro en de eerste stap om ervoor te zorgen dat u volledig bereid bent! Di
4WD alle terrein Arduino Robot voor iedereen

4WD alle terrein Arduino Robot voor iedereen

Ik heb altijd graag robots die zich in ruw terrein verplaatsen kunnen. Deze keer heb ik besloten dat ik zal gebruik maken van kant en klare chassis enigszins wijzigen en het toevoegen van een paar extra onderdelen. Met behulp van een klaar chassis ko