Ping Pong Ball Full colour Binary Clock (2 / 3 stap)

Stap 2: Het programma uitgelegd


Ten eerste erop wil ik wijzen dat ik niet erg goed in programmeren, ben maar ik heb verbeterd! Mijn eerste poging om een binaire klok was zeer lange adem, en ik heb in geslaagd om de code aanzienlijk verbeteren.

Dus is het eerste wat dat we doen lezen de tijd, die zeer eenvoudig is.

(RTC.read(tm))

Vervolgens de volgende beetje is om elke waarde en het splitsen van eenheden en tientallen en als de waarde minder dan 10 Maak vervolgens de tientallen waarde nul. Deze routine is 3 keer uitvoeren voor de uren, minuten en seconden.

VOID binaryOutput(int number)

{

Als (nummer > = 10)

{

int tientallen = nummer/10;

int eenheden = aantal - (trans-Europese netwerken * 10);

setBinary(units,ROW);

RIJ = RIJ + 1;

setBinary(tens,ROW);

}

anders

{

int tientallen = 0;

int eenheden = nummer;

setBinary(ROW,units);

RIJ = RIJ + 1;

setBinary(ROW,tens);

}

}

U moet zitten kundig voor zien dat zodra u het nummer hebt verdeeld in tientallen en eenheden u vervolgens een andere routine om de waarde in een kolom weer te geven. Deze routine nemen de 0-9 nummer en zet deze om in een binair getal en schakelt in (en uit) de vereiste LED's

Dit deel van het programma was het stukje dat verbeterd zo veel van de laatste poging! in principe elke rij wordt behandeld de zelfde onafhankelijk van het aantal LED's in de rij. Wat betekent dat de eenheden rijen 4 LED's en het uur van de trans-Europese netwerken alleen heeft twee LED's maar loopt wel dezelfde routine, het Funduino niet weet dat er niet een LED in de positie en geen enkele manier de ongebruikte LED's zou worden ingesteld op uit.

VOID setBinary (int waarde, int whichRow)

{

RIJ = whichRow;

int XYZ = 8;

int COL = 3;

for (int i = 0; ik < 4; ik ++)

{

getColor(g);

Als (waarde > XYZ =)

{

Colorduino.SetPixel(ROW,COL,A,B,C);

waarde = waarde - XYZ;

}

anders

{

Colorduino.SetPixel(ROW,COL,0,0,0);

}

XYZ = XYZ / 2;

COL = COL - 1;

}

}

Dus hoe werkt dit codefragment?? De routine wordt geleverd met twee gegevenselementen, welke rij en het nummer. XYZ is in eerste instantie ingesteld op 8 en COL ingesteld op 3. Zodat je dan de kleurencode krijgen en 4 lussen doen, op elke lus u uw nummer met XYZ vergelijken en bepalen of het meer, als zijn meer dan het bovenste lampje moet worden ingeschakeld (het getal 8 geleid!) Dan 8 moet worden afgetrokken van uw nummer. Indien zijn niet groter dan 8 dan de Top LED moet worden uitgeschakeld. In beide gevallen u vervolgens XYZ door 2 deelt en decrement de kolonel dan u lus opnieuw deze tijd controleren als uw getal groter dan 4 is, enzovoort. Zie hieronder voor een voorbeeld.

Getal is 6.

Loop1 (ingang nummer = 6, XYZ = 8, Col = 3) is het gelijk is aan of meer dan 8? GEEN draai van boven licht, Half de XYZ, decrement de kolonel

Loop2 (ingang nummer = 6, XYZ = 4, Col = 2) is het gelijk is aan of meer dan 4? Ja het 3e licht inschakelen, aftrekken 4 uit als u de helft van de XYZ en decrement de kolonel

Loop3 (ingang nummer = 2, XYZ = 2, Col = 1) is het gelijk is aan of meer dan 2? Ja de 2e licht inschakelen, aftrekken 2 uit als u de helft van de XYZ en decrement de kolonel

Loop4 (ingang nummer = 0, XYZ = 1, Col = 0) is het gelijk is aan of meer dan 1? GEEN turn off van de bodem licht, de helft van de XYZ en decrement de Col

Op dit punt u vervolgens de rij reset verhogen de XYZ en Col, en doen dezelfde routine voor de trans-Europese netwerken. Herhaal vervolgens voor de minuten en uren.

Tot slot voor de code hebt vervolgens ' Spiegelen ' van de Colorduino-pagina weer te geven van de nieuwe tijd, of wijzig de kleur als de tijd niet is gewijzigd.

void loop

{

tmElements_t tm;

Als (RTC.read(tm))

{

binaryOutput (tm. Seconde);

RIJ = RIJ + 1;

binaryOutput (tm. Minuut);

RIJ = RIJ + 1;

binaryOutput (tm. Uur);

RIJ = 0;

}

Colorduino.FlipPage();

}

Dus die behandelt de lezing en het weergeven van de tijd, nu laten we eens een kijkje op de kleuren. Elke kolom is ingesteld op een kleur en de volgende kolom wordt gewijzigd door een waarde bepalen door "increment" hoe groter het getal hoe beter de kleurvariatie over de 6 kolommen. Ik vond dat rond 8-12 is een goed nummer. De kleur wordt besloten door een routine die neemt de waarde van "g" (dan wel regenboog genoemd) één kleur wordt verhoogd, een ander is verlaagd en de 3e is ingesteld op nul, deze vervolgens cycli op en neer door alle kleuren en geeft een mooie regenboog-effect (Zie de grafiek voor een beter uitleg). Één probleem dat ik had die nam een zeer lange tijd uit de zeer eenvoudige soloution te werken was hoe maak je de regenboog Beweeg langzaam in de kolommen. omdat ik de kleur tussen elke rij, stapte als ik nu wil verhogen van elke kolom met slechts 1, dan heb ik om rekening te houden met wat de oorspronkelijke kleur nummer was en reset Voeg "g" naar dat nummer dan een. Ik denk dat is logisch.

Dus het laatste wat is hoe pas je de tijd???

Ik was niet echt zeker hoe ik ging om te passen deze klok toen ik begon te bouwen deze klok, maar omdat er geen ingangen beschikbaar op het bord colorduino, maakte ik een GPS-klok die u kunt verbinding maken met de RTC-eenheid aan en corrigeren de tijd. Ik zal toevoegen andere instructable op hoe ik heb dit gemaakt!

Gerelateerde Artikelen

Ping Pong Ball Launcher

Ping Pong Ball Launcher

Dit Instructable zal u tonen hoe om te zetten van een fundamentele bladblazer in een ping pong bal launcher.(Bekijk Video)Ik begon te nemen naast de buis uit mijn bladblazer.Ik gebruikte een elektrische bladblazer, zodat dit project kan worden gebrui
Motorized Ping Pong Ball Guns

Motorized Ping Pong Ball Guns

Dit Instructable leert u hoe maak je een gemotoriseerde ping pong ball gun.  Deze ping pong bal wapens zijn een heleboel plezier te bouwen, maar leuker om te schieten.  Ik maakte dit als een kerstcadeau voor mijn zoon.UV-LED-lampjes zijn ingebouwd in
Hoe maak je een ping pong ball gun

Hoe maak je een ping pong ball gun

ben je moe van office/klas/achtertuin oorlogen zonder stijlvolle of efficiënte wapens?Moe van het krijgen schot met een goedkoop plastic bb gun dat doet pijn als hel en pauzes na 5 schoten?Wilt u uw collega's / vrienden zonder zorgen over het gevaar
Ping Pong Ball Hand kanon

Ping Pong Ball Hand kanon

Hier is een eenvoudig te maken van ping pong ball launcher, dat u van dingen die u bouwen kunt wellicht leggen rond uw huis. Het zal gemakkelijk brand ping pong ballen meer dan 25 voet.Stap 1: Verzamelen van uw middelenHebt u nodig:Een wc-papier roll
Ping Pong Ball Bazooka

Ping Pong Ball Bazooka

In dit Instructable gaan we bouwen een Ping Pong bal Bazooka. Een waanzinnig leuk speelgoed voor iedereen om te spelen met. Het speelgoed kan houden tot 12 ping pong ballen tegelijk en hen meer dan 25 ft weg kan lanceren!Het speelgoed kan gemakkelijk
Ping Pong Ball goudvis

Ping Pong Ball goudvis

dit is een grote goedkope kinderen ambacht voor Chinees Nieuwjaar!  De Chinezen overwegen goudvis een symbool van rijkdom en overvloed.  Haal jou vandaag uit oranje papier, een ping pong bal, een twist stropdas, googly ogen en een sharpie.oranje papi
Ping Pong Ball Sparkler

Ping Pong Ball Sparkler

Ik vonk beetje.Stap 1: verzamelen Verzamelen een ping pong bal en een doos of twee van de Sprite bommenStap 2: Maak een gat Maakt een klein gaatje in de balStap 3: Plaats ballen In Plaats van de kleine bommen binnenStap 4: gooien Kunt u over 5-6 grot
Knex Ping Pong Ball Retriever klauw

Knex Ping Pong Ball Retriever klauw

ik dit in mijn vrije tijd om te helpen mijn vader die een slechte rug heeft gebouwd. We pingpong samen zou spelen en de bal zou komen van de tafel, en hij zou altijd moeten bukken en oprapen. Ik heb uitgevonden dus de ping pong bal ophalen klauw.Stap
Ping Pong Ball Catapult

Ping Pong Ball Catapult

geïnspireerd door alle de creatieve geesten hier op instructables, maakte ik een ping pong katapult voor mijn kinderen om mee te spelen.Gebruikte materialen:Diverse 1/2 inch x 1/2 inch stokjes (ongeveer 7 of 8). Het langste stuk is 12 inch lange.2 ve
Ping Pong Ball Minigun

Ping Pong Ball Minigun

instructievideo over het bouwen van een Ping Pong bal machinegeweer met behulp van een oude bladblazer!
LED Ping Pong Ball (verbeterde)

LED Ping Pong Ball (verbeterde)

dit is in principe hetzelfde ontwerp, maar ik heb het meer netter en het ziet er veel beter!!Dit is de oude:Stap 1: Tools Zal u het volgende nodig:1. boor2. boor Bits3. de schaar4. de duct TapeStap 2: materialen Zal u het volgende nodig:1. LED Throwi
Ping Pong ball gun van een pallet

Ping Pong ball gun van een pallet

Ik ben geweest in ontzag van enkele van de pallet ibles, dus hier is een project dat ik heb gehad in de werken. Ik was willen imponeren van mijn neef en gebruiken van een pallet.Stap 1: onderdelen en tools De pallet!!!puzzel, een sleutelgat of hand z
Ping - Pong Ball Launcher / kanon

Ping - Pong Ball Launcher / kanon

Voor dit instructable moet u het volgende:-Duct Tape (of een andere sterke tape)-Schaar-Een ZeeBeez Popper-Een buis van de wc-rol-De munitie (kleine bal)Stap 1: Snij de buis van de wc-rolMet behulp van de schaar het einde afgesneden derde van de wc-r
Ping Pong Ball Cannon

Ping Pong Ball Cannon

Dit is een leuk project om te doen met PBC en een klep.Hebt u nodig:koperen draad / rubber hamer / druk meter / nozzle voor lucht compressie / PVC pijp / batterij pack / aan / uit-switch / boren / 9 volt batterijen / snelle droge lijm / tape maatrege