TheSUN, Arduino aangedreven design Wandklok (4 / 6 stap)

Stap 4: Code


U kunt nu laden de schets aan de Arduino. You´Re tevens kundig voor draad van de LED strips nu. Don´t sluit de BT Module!!! Wij willen eerst een blik op de code, moet u weten waar u verschillende dingen kunt tweak...

Download de Arduino IDE en de Librarys.
Arduino IDE, AdafruitNeoPixel, tijd, DS1307RTC

Installeer de IDE en zet de librarys in de Bibliotheek-omslag.
Open het bijgevoegde INO bestand en uploaden naar je arduino. De hier beschreven code is hetzelfde maar met aanvullende opmerkingen! Als je alles goed hebt gedaan, ziet u nu de "bootanimation". Het is mogelijk om de tijd over de serialmonitor. Typ bijvoorbeeld. (10:33).

Voel je vrij om te spelen met de code...

Ziek geven u hier een korte beschrijving van de Code (Setup zonder RTC!)

DEFINITIES:

#define PIN 6 //Hour LED Strip
#define MINPIN 5 //Singelminute LED
#define NUMPIXELS 12 //Number van Pixels voor uur
#define MINNUMPIXELS 4 //Number van Pixels voor één minuut
#define BAUDRATE 115200 / / Baudrate, moet overeenkomen met de baudrate van BT Module
#define utch "//start BYTE van TimeSync

int timeset = 0; vlag om op te slaan als de tijd was ingesteld na het opstarten
int delayval = 20; vertraging voor fading animatie
int clocktimer = 10000; tijd vernieuwen
int timebright = 250; helderheid van uur Strip
int mtimebright = 50; helderheid van singelmin
int initialiseren = 0; vlag van de clearpixels functie aanroepen na het opstarten
int ahour;
int oldahour = 0; winkel vorige uur
int aminute;
int oldamin = 0; winkels de vorige minuut voor vernieuwen
int de atweede;
int de adag;
int amonth;
int per;
int mmin;
tmElements_t tm;

Setup voor de 2 NeoPixel LED-arrays (naam = TYPE (nummer van PIXELS die PIN, formaat RGB of GRB, FREQ); Verwijzen naar de Adafruit guide voor meer informatie.

Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

SETUP:

VOID Setup {}

Serial.begin(BAUDRATE);
Wire.begin();
Initialice de strips, alle OFF
pixels.begin();
minpixels.begin();
pixels.show();
minpixels.show();

Een beetje animatie maken
Serial.println("Sunrise");
Sunrise();
delay(1000);
Serial.println("Sunset");
Sunset();
pixels.show();
Serial.println("Ready");
}

LUS:

void loop {}
selectievakje voor timesync
terwijl (Serial.available() > 0) {}
char c = Serial.read();
if(c == utch) //if bestaat een @ op de lijn, lees de komende bytes / ints
{
readtime();
}
}
initialice de LEDs, duidelijke boot animaties

if(Initialize == 0) {}
clearpixels();
initialiseren = 1;
}

ahour = uur();

aminute = minute();
Als (timeset == 1 || timeset == 0) / / hier kunt u controleren als de tijd is ingesteld, kunt u het programma hier stoppen als Timeset = FALSE, verwijder enkel "|| timeset == 0"!

{

Als (oldamin < aminute || oldahour < ahour) //check als de tijd is veranderd. TRUE = vernieuwen -> set alle als u wilt weergeven uit, nieuwe tijd
{
clearpixels();
ClockDisplay();
}
}
}

De klok weergeven

VOID ClockDisplay()
{

oldahour = ahour;

oldamin = aminute;
int xhour, xmin;

Als (ahour > = 12) {}
xhour = ahour-12; Wij hebben slechts 12 LED's voor 24h weergave
}
else {}
xhour = ahour;
}
schaal het in 5min stappen
xmin = (aminute / 5);
if(oldamin < aminute)
{
oldamin = aminute;
clearpixels();
}
Neem de rest van de divisie dor de singelmin LED
mmin = (aminute % 5); modulo operator bijv. 24% 5 = 4! zeer nuttig:-P
pixels.setBrightness(timebright);
pixels.setPixelColor (xmin, pixels. Color(5,125,255)); u kunt de kleuren hier! Speel rond!
pixels.setPixelColor (xhour, pixels. Color(255,50,0));
pixels.show();

de singel minuten weergeven
voor (int m = 0; m

minpixels.setBrightness(mtimebright);
minpixels.setPixelColor (m, pixels. Color(255,255,0));
minpixels.show();
}
}

Lezen en verwerken van de TIMEinformation van Serial

VOID readtime() / / als al we de toonaangevende "de komende gegevens verwerken en opslaan van het tijdstip voor de tijd-Lib kregen
{

ahour = Serial.parseInt();
aminute = Serial.parseInt();
atweede = Serial.parseInt();
adag = Serial.parseInt();
amonth = Serial.parseInt();
per = Serial.parseInt();
Serial.println("timeset");
Serial.Print(ahour);
Serial.Print(":");
Serial.println(aminute);
setTime(ahour,aminute,asecond,aday,amonth,ayear);
}

Alles wissen!

VOID clearpixels() / / set elke enkele PIXEL op uit om de weergave vernieuwen
{

pixels.begin();
minpixels.begin();
voor (int i=0;ipixels.setPixelColor (i, pixels. Color(0,0,0));
minpixels.setPixelColor (i, pixels. Color(0,0,0));
pixels.show();
minpixels.show();
}
}

Gerelateerde Artikelen

Acryl Fish Tank met Arduino aangedreven Feeder

Acryl Fish Tank met Arduino aangedreven Feeder

Heb je ooit wilde een meer handen op gevoel bij het ophalen van een vis? Of wilde iets anders dan de gemiddelde aquaria gevonden in de winkels? Dit aquarium is volledig aangepast en afgestemd op uw grootte kan worden gewijzigd en heeft een Arduino aa
Arduino aangedreven raket geleidingssysteem

Arduino aangedreven raket geleidingssysteem

dit is mijn eerste Instructable dus geduld met mij.Dit is een Arduino aangedreven raket geleidingssysteem. Ik heb dit voor de Google Global Science Fair. Mijn project van de wetenschap is op https://sites.google.com/site/arduinorocket/ . Het kostte m
Arduino-aangedreven A-10 stok grip externe w/Emergency Party Button!

Arduino-aangedreven A-10 stok grip externe w/Emergency Party Button!

ik Plama2002 de "Emergency Party Button" bouwen een tijdje terug kwam en wilde iets gelijkaardig voor mijn bar. Ik had ook een oude USAF B-8 stok greep uit een A-10A die ik in mijn vorige leven opgepikt. Ik dacht dat in plaats van gewoon een ges
Maken van een Arduino aangedreven gordijn automatisering

Maken van een Arduino aangedreven gordijn automatisering

In deze video ik aan de slag op het toont u hoe te maken van een Arduino aangedreven apparaat dat zal openen en sluiten van gordijnen!Met behulp van een touw en een continue rotatie servo ben ik kundig voor wekken een katrol systeem dat als de backbo
Arduino aangedreven Verwarmde Glove Liners

Arduino aangedreven Verwarmde Glove Liners

Arduino aangedreven Verwarmde handschoenenDit project is over hoe te maken van de's werelds slimste verwarmde handschoen liners voor extreem koude omstandigheden zoals die in Minnesota of mensen die beschikken over Raynaud van syndrome(like me). Deze
Het BlokClok-Concept - Arduino aangedreven RGB abstracte klok

Het BlokClok-Concept - Arduino aangedreven RGB abstracte klok

Arduino aangedreven klok concept. Uniek concept met behulp van een 8 x 8 RGB-Dot Matrix-scherm. De tijd wordt aangegeven met behulp van blokken van kleur. Het centrale 6 x 6 raster is verdeeld in 4 x (3 x 3) rasters en elk blok van 3 x 3 is een ander
Arduino aangedreven RC tank

Arduino aangedreven RC tank

dit is mijn eerste instructable dus neem aub met mij. Mijn naam is Stanley Deakins en ik heb gespeeld met elektronica al geruime tijd, al was het jaren geleden. Ik heb die passie weer op te rakelen vanwege mijn recente werk. Ik heb mijn handen op enk
Het engste, arduino aangedreven, knipperen en schreeuwen halloween pompoen!

Het engste, arduino aangedreven, knipperen en schreeuwen halloween pompoen!

Hier is een instructable een middag project dat net gedaan moest worden: een knipperend, schreeuwen, arduino aangedreven halloween pompoen. Het is een erg leuk, een klein beetje van het solderen omvat en is geweldig voor het leren over sensoren en li
Arduino DCF77 Master Wandklok

Arduino DCF77 Master Wandklok

Arduino Master Wandklok.Tijd weergegeven op grote 1"(26mm) 7 segment displays met secundaire 4 x 20 LCD-informatieweergave. De klok kan worden gebruikt alleen staan of biedt de volgende pulsen slaaf klokken 1 sec afwisselend, 30 sec, 1 min, 1 uur, 24
CO2 Laser Water Flow Monitor - Arduino aangedreven / Windows Controlled

CO2 Laser Water Flow Monitor - Arduino aangedreven / Windows Controlled

CO2 Laser Water Flow Monitor- en AlarmAangedreven door een Arduino en gereguleerde door aangepaste software op een Windows PCOm het verlengen van de levensduur van een CO2 -laser-buis is het noodzakelijk aan pomp koelwater doorheen actief is. Als de
Een Arduino-aangedreven 4-as parallel-mechanisme robotarm

Een Arduino-aangedreven 4-as parallel-mechanisme robotarm

uArm is een miniatuur 4-as parallel-mechanisme robotarm, gemodelleerd naar de industriële robotarm van ABB PalletPack IRB460.Het is samengesteld uit laser gesneden van acryl- of houten delen, aangedreven door standaard RC hobby servo's, en gecontrole
2 Arduino aangedreven RC vliegtuig

2 Arduino aangedreven RC vliegtuig

Hallo, Welkom op mijn instructable op het opbouwen van een RC vliegtuig, volledig vanaf nul, met Arduino.Ik heb wilde een RC-vliegtuig te bouwen voor een tijdje, en de onderdelen voor gebouw voor ontvangen. De zender en ontvangers, echter, kunnen ext
Automatische Arduino aangedreven Pet Feeder

Automatische Arduino aangedreven Pet Feeder

Dit is mijn automatische pet feeder. Aangedreven door arduino, met behulp van een 3D afgedrukt auger en programmeerbare met twee keer vervoederen een gebruiker instellen hoeveelheid voedsel, met een batterij back-up interne klok.Mijn katten drijven m
CARduino - Arduino-aangedreven, LabVIEW bestuurde voertuig

CARduino - Arduino-aangedreven, LabVIEW bestuurde voertuig

De CARduino is een op afstand bediende voertuig dat wordt bestuurd door een controller aangesloten op een computer met LabVIEW. Het voertuig wordt aangedreven door de Arduino, en kan worden uitgebreid door de toevoeging van sensoren of andere apparat