Hoe maak je Zelda de boog (7 / 8 stap)

Stap 7: Arduino


De Arduino-code van het ZIP-bestand op de GEMMA laden. Moet u de bibliotheek van de Neopixel van Adafruit geïnstalleerd dus volg de instructies in de link.

U kunt de volledige code van de Arduino uit het ZIP-bestand in de Arduino IDE, openstellen dus ik zal niet plak hier het hele codebestand. In plaats daarvan ga ik uitleggen alles in secties. Vergeef de opmaak van het plakken van de code hier. Ik beloof dat er veel mooier in het werkelijke codebestand.

#include < Adafruit_NeoPixel.h >

#define LED 1
#define BTN1 0
#define BTN2 2

int lastButton1State = laag;
int lastButton2State = laag;

Deze sectie bevat de Neopixel library waarmee de controlemethoden voor de verlichting. De pin van de LED op de Gemma is 1 en de knoppen zijn op 0 en 2. Als u een verschillende Arduino of bedrading schema gebruikt, moet u deze hier wijzigen. Ten slotte, we slaan de laatste stand van elk van de knoppen, zodat we niet voortdurend het gedrag van de knop activeren als u de knop ingedrukt. We willen alleen dat dat gebeurt eenmaal per klik.

int ledCount = 56;

Parameter 1 = aantal pixels in strip
Parameter 2 = pin-nummer (de meeste zijn geldig)

Parameter 3 = pixel type vlaggen, wens samen toevoegen:
NEO_KHZ800 800 KHz bitstream (de meeste NeoPixel producten w/WS2812 LEDs)
NEO_KHZ400 400 KHz (klassieke 'v1' (niet v2) FLORA pixels, WS2811 drivers)
NEO_GRB Pixels zijn bedraad voor GRB bitstream (de meeste NeoPixel produkten)
NEO_RGB Pixels zijn bedraad voor RGB bitstream (v1 FLORA pixels, niet v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel (ledCount, LED, NEO_GRB + NEO_KHZ800);

Ik gebruikte 56 LEDs in mijn lichaamsbouw, zodat ik dat als een variabele instellen. De strip-object wordt geïnitialiseerd als 56 LEDs, de gedefinieerde LED-pin en de waarden voor Gemma en WS2812b LEDs.

uint32_t kleuren [5] = {strip. Kleur (255, 255, 0), / / geel
strip. Kleur (127, 0, 255), / / paars
strip. Kleur (0, 0, 255), / / groen
strip. Kleur (255, 0, 0), / / rood
strip. Kleur (0, 0, 255)}; blauw

int currentColor = 0;
int maxColor = 5;
int defaultBrightness = 50;

Ik besliste te gebruiken 5 kleuren in de cyclus. Geel is de standaard kleur, Zelda draagt paars, en de rest keek cool. De waarden currentColor en maxColor laten doorlopen van de 5 kleuren. De max helderheid is 255, zodat ik het aan 50 plaatste dat veel ruimte om te groeien in de vuur modus.

VOID Setup {}
Initialiseer de drukknop pin als input:
pinMode (BTN1, INPUT_PULLUP);
pinMode (BTN2, INPUT_PULLUP);

strip.begin();
for (int i = 0; ik < ledCount; i ++)
{
strip.setPixelColor (i, colors[currentColor]);
}
Get helderder
for (int i = 5; ik < defaultBrightness; ik += 2).
{
strip.setBrightness(i);
strip.show();
delay(50);
}
}

Dit is de methode aangeroepen wanneer de boog is ingeschakeld. Het initialiseert de knoppen en de verlichting, wordt de kleur ingesteld op geel en geleidelijk vergroot de helderheid van 0 tot en met 50.

void loop {}
for (int i = 0; i < 2000; i ++)
{
int button1State = digitalRead(BTN1);

Als (button1State! = lastButton1State)
{
lastButton1State = button1State;

Als (button1State == laag)
changeColor();
}

int button2State = digitalRead(BTN2);

Als (button2State! = lastButton2State)
{
lastButton2State = button2State;

Als (button2State == laag)
fireArrow();
}

delay(5);
}
Pulse();
}

Dit is waar de Arduino zal zal looping allermeest naar de tijd, wachten op een knop drukt. Ik wilde de knoppen te spelen, zodat het knop klikken voor ongeveer 10 seconden (2000 iteraties keer een 5ms vertragen) gecontroleerd voordat het toont het inactief pulse-effect. Als een knop is ingedrukt, toont het dat effect alvorens terug te keren naar deze methode en de voortzetting van de lus.

VOID pulse()
{
Krijgen iets dimmer
for (int i = defaultBrightness; ik > defaultBrightness / 2; ik-= 5)
{
strip.setBrightness(i);
strip.show();
delay(50);
}

Get helderder
for (int i = defaultBrightness / 2; ik < defaultBrightness; ik += 5)
{
strip.setBrightness(i);
strip.show();
delay(50);
}
}

Dit is de inactieve effect. Wij willen worden snel, zodat we niet een knop wordt geklikt missen. Het treedt de helderheid af door 5 elke 50 MS, totdat het aan de helft van de inactiviteit helderheid krijgt, dan keert terug naar normaal.

VOID changeColor()
{
currentColor ++;

Als (currentColor == maxColor)
{
currentColor = 0;
}

int i1 = 2;
int i2 = 27;
int i3 = 28;
int i4 = 55;

Doorlopen en wijzigen van de kleur
for (int i = 0; ik < 14; i ++)
{
Set kleuren
strip.setPixelColor (i1, colors[currentColor]);
strip.setPixelColor (i2, colors[currentColor]);
strip.setPixelColor (i3, colors[currentColor]);
strip.setPixelColor (i4, colors[currentColor]);

Update iterators
Als (ik == 3)
I1 = 1;
else if (i == 4)
I1 = 6;
anders als (ik == 5)
I1 = 0;
anders als (ik == 6)
I1 = 7;
anders
I1 ++;

I2--;
i3 ++;
I4--;

Bijwerken en een beetje wachten
strip.show();
delay(50);
}
}

Wanneer op de knop kleur wijzigen wordt geklikt, worden de LEDs gewijzigd naar de volgende kleur in de lus. Ik maakte de lichten beginnen bij het midden van de boog en snel veranderen van kleur in een domino-effect naar buiten gaan. Dit stukje code is raar want de lichten in een lange reeks zijn, maar wij hebben ze verdeeld in 4 delen. De eerste sectie is anders wired van de andere 3 delen, dus de iterator i1 speciale behandeling moet te volgen van de juiste volgorde.

VOID fireArrow()
{
Krijgen iets dimmer
for (int i = defaultBrightness; ik > 20; ik-= 5)
{
strip.setBrightness(i);
strip.show();
vertraging(20);
}

Get helderder
for (int i = 20; ik < 250; ik += 5)
{
strip.setBrightness(i);
strip.show();
delay(30);
}

Een beetje helder blijven
delay(800);

Krijgen dimmer
for (int i = 250; ik > defaultBrightness; i-= 10)
{
strip.setBrightness(i);
strip.show();
delay(30);
}
}

Tot slot, het vuur-effect wordt de boog ingesteld op volledige helderheid voor gewoon verlegen van een seconde, dan dimt terug naar stationair.

Hopelijk is dit alles zinvol. Als u wijzigen van de kleuren of de effecten wilt, moet het vrij gemakkelijk te passen.

Gerelateerde Artikelen

Hoe maak je een vilt boog

Hoe maak je een vilt boog

ik ga onderwijzen u hoe maak je een vilt boog te zetten ik je haar. Volg gewoon deze eenvoudige stappen, en als je een paar keer deze bogen, kunt u hen in minder dan 3 minuten! In feite, kostte de boog die ik heb in de foto's voor deze instructies ge
Hoe maak je een Mini boog en pijl (vlammend pijlen!)

Hoe maak je een Mini boog en pijl (vlammend pijlen!)

Stap voor stap tutorial video voor hoe maak je een mini boog en pijl met brandende pijlen uit huis items bevatten.
Hoe maak je een mini boog en pijl uit een pen

Hoe maak je een mini boog en pijl uit een pen

dit is een instructable die je laat zien hoe maak je een eenvoudige boog en pijl uit alledaagse voorwerpen die je rond het huis of kantoor vinden kunt.Materialen:1 bic pentape1 paperclip1 rubber bandNaald-neus plyersNota: i geen camera hebt, dus moes
Hoe maak je een frabric boog

Hoe maak je een frabric boog

Hey daar!Hier is mijn video tutorial over hoe maak je een super makkelijk en super leuke stof boog!Hope u like it!
Hoe maak je een zelfgemaakte boog Rack DIY

Hoe maak je een zelfgemaakte boog Rack DIY

Zoals zoveel als we 'd love to houden onze boog in onze vrachtwagen 24/7 dus we elke dag schieten konden, de waarheid is, is we hoeven een mooie en veilige opslagruimte voor het wanneer we gaan een paar dagen moeten zonder schieten. En laten we eerli
Hoe maak je een Mini-boog en pijlen

Hoe maak je een Mini-boog en pijlen

zag dit op Pintrest: http://almostunschoolers.blogspot.com/search/label/craft%20projects?updated-max=2010-11-27T14%3A36%3A00-08%3A00&max-results=20 (scroll naar beneden naar de onderkant).  Voor mij was het een geweldig idee voor Cub Scouts, met name
DIY pols Sling stappen bij de boog deel 1 Paracord Braid deel 2 Hoe maak lederen deel op boog.

DIY pols Sling stappen bij de boog deel 1 Paracord Braid deel 2 Hoe maak lederen deel op boog.

Items wilt aanbrengen paracord boog sling(3) de lengtes van 30-36″ lang 550 paracord(1) stuk van schroot lederen ten minste 1 3/4 â € ³ breed x 4 1/4 lange en ten minste 1/8″ dikke (dikker is beter).(2) lengtes 12″ lang kleine draad of koord.(2) de l
Hoe maak je een gemakkelijk boog en pijl

Hoe maak je een gemakkelijk boog en pijl

een snelle en gemakkelijke manier een eenvoudige boog en pijl maken.Stap 1: materialen ten minste 2 spiesen {afhankelijk van hoeveel pijlen je wilt om}elastiekjesen scharen.Stap 2: Bereid de spiesjes Gesneden van de uiteinden van de spiesjes, dan u t
Hoe maak je een geschenk boog

Hoe maak je een geschenk boog

Cadeau strikken zijn iets wat die ik nooit bij de hand hebben. NOOIT. De laatste keer was het 11 PM en ik moest een geschenk boog ik vond een perfecte tutorial voor het maken van geschenk bogen op Twig & Thistle. Het werkte zo goed dat ik wist dat ik
Hoe maak je een decoratieve boog van het papier (met sjabloon).

Hoe maak je een decoratieve boog van het papier (met sjabloon).

Ja mensen! Het is die tijd van het jaar al! En als je iets als ons u gebonden bent aan de overgebleven restjes van inpakpapier van het voorgaande jaar hebben de Yuletide seizoen!In plaats van het uitbannen van deze gift tot de recycling bin echter...
DIY: Hoe maak je een stoel boog

DIY: Hoe maak je een stoel boog

Deze prachtige stoel boog zal het maken van een stoel elegante kijken. Het is makkelijk om te maken, en u hoeft alleen een paar materialen;4 in Wired jute in natuurlijke kleur4 in ivoor Lace lintHete lijmpistool met stokken van de lijmStap 1: Snij de
Hoe maak je een Origami boog

Hoe maak je een Origami boog

Me een Origami boog maken
Hoe maak je een eenvoudige boog

Hoe maak je een eenvoudige boog

Wilt u een boog gemaakt door jezelf? Wilt u een goedkoop een zonder de aanschaf van een heleboel dingen? Nou, is dit de juiste instructable voor u! Het is eenvoudig en handig.Moeilijkheidsgraad: 2Carefullness tarief: 5Materialen:1 bezemsteel (die met
Hoe maak je een anjer boog

Hoe maak je een anjer boog

deze instructies begeleidt u stap voor stap door het proces van het maken van een Anjer boog met satijn lintStap 1: Materialen die nodig zijn twee werven van lint, schaar, ééndelig van smalle strook of floral draad.Stap 2: Stap 1 Vormen een lus van l