Animator Gadget voor NeoPixels (3 / 6 stap)

Stap 3: Code


Dit project maakt gebruik van "Tabs" om te helpen organiseren van de code binnen de Arduino IDE. Dit is echt de praktijk alleen ongebruikelijke codering in het hele project. Tabbladen zijn niet veel gebruikt, of misschien ik net geleerd over hen. Maar ze herinneren me aan technieken en mechanismen die worden gebruikt in meer geavanceerde programmeeromgevingen.

Ik gebruik ze meer als bladwijzers in dit project. Hun voornaamste functie hier is het om code te breken in stukken zodat ik gemakkelijk zonder zo veel scrollen navigeren kan. Dit is een belangrijk bijkomend voordeel. Ik ben een zeer lui programmeur, en als ik denk niet dat iedereen zal het zien van mijn code dat, dan ik zal vermijden scrollen en zal klap codefragmenten in willekeurige plaatsen, totdat het hele programma een onleesbaar puinhoop wordt. Het wordt prima uitgevoerd, maar als ik een maand later terugkomen ik zelfs kan niet lezen van mijn eigen code, veel minder wijzigen. Met behulp van tabbladen, blijft mijn code meestal beter leesbaar omdat ik snel naar het tabblad waarin verwante codefragmenten kunt krijgen. Zo blijft het hele programma beter georganiseerd. Tabbladen dwingen bijna me om na te denken meer modulair.

Dit helpt ook als ik nodig om de applicatie voor gebruik met andere onderdelen te wijzigen. In dit project is alle van de code voor het besturen van het display in een aantal tabbladen. Het was eenvoudig toen ik ported het aan een SPI-display. Ik wist waar alle gerelateerde code, en het was gemakkelijk voor mij om te vervangen door de nieuwe code in het programma zonder het bijhouden van het neer in een enkele spaghetti wirwar van code.

Tabs kunnen worden gemaakt met behulp van de kleine pijl in de rechterbovenhoek van de IDE-interface. Opmerking dat de laadvolgorde van de tabbladen belangrijk, net als een in één bestand programma is.

Hoe te gebruiken

Alle de voorbeeldbestanden downloaden en hen allemaal in een directory in je Arduino map plaatsen. Bel de nieuwe map/directory "Loop_Trainer" zodat deze overeenkomt met de naam van uw belangrijkste Ino bestand. Vracht naar de Loop_Trainer vijl, vervolgens compileren en uploaden naar uw hardware.

De code is goed commentaar (sommigen zouden zeggen commentaar), dus hopelijk zelfs beginners zullen kunnen begrijpen hoe het werkt.

Samenvatting

Kortom, de code leest de waarden van de potentiometers, kaarten van de waarden, indien nodig, en geeft vervolgens de waarde aan de functie van een animatie. De waarden worden ook weergegeven op het scherm. Eenvoudig, juist? Nou het is, laat niet de tabbladen indeling dingen verwarren.

Tabblad inhoud

  1. Loop_Trainer: Dit het hoofdbestand. Het heeft alle gebruikelijke initialisatie, de setup en de hoofdlus. De code stelt u de pin-codes en variabele namen, laadt de NeoPixel library en begint de seriële communicatie. De hoofdlus is zeer eenvoudig, slechts roept een functie om te lezen van de waarden op de potentiometers en uitvoeren van het menu.
  2. LCD_baseCommands: De LCD display gebruikt in dit project toepassingen starten en stoppen van codes geschiedde het opdrachten. Het is eenvoudig te begrijpen, maar de codes herhalende vervelend en bloats van het bestand. Dus ik een reeks van functies, creëerde zodat de codes kunnen alleen worden aangeroepen. Check out de Adafruit guide voor een volledige lijst met opdrachten.
  3. LCD_setup: Nu dat alle basis commando's hebben omgevormd tot functies, kunnen we gebruiken hen aan opstelling van het scherm voor gebruik. U moet deze tabbladen en LCD_baseCommand wijzigen als u een ander beeldscherm.
  4. Menu_functions: Dit is een eenvoudige case-statement. Afhankelijk van wat de toegewezen waarde van de menu-pot is, noemen we een functie (in de NeoPixel_Functions tab) om te animeren de NeoPixels. Ik heb sommige lege "slots" voor u om te vullen met uw eigen animaties.
  5. NeoPixel_Functions: Dit is het leuke deel. Dit bestand bevat de code van de werkelijke animatie. Deze animaties zijn functies vanuit het tabblad Menu_functions aangeroepen. De animaties de RGB en veranderlijke waarden van de gegevensset te verwerven door het tabblad Read_pots. De animaties ook verzenden gegevens naar het scherm met behulp van de functies op het tabblad LCD_baseCommands. Wanneer u uw eigen nieuwe animaties maken, noem ze vanuit het tabblad Menu_functions. Dit zijn de fundamentele animaties, maar ik heb een twee-parter en een paar andere excentrieke routines voor u om te spelen met.
  6. Read_Pots: Deze functies de potentiometers lezen en hun waarden aanpassen aan hun standaard doel in kaart. Bijvoorbeeld, moet het menu slechts 10-20 stappen, zodat wij aan die waarde koppelen. De RGB-waarde moet 0-255. Maar de "variabele" input wordt gebruikt in zoveel verschillende manieren dat wij de ruwe waarde verzenden en het toewijzen aan de huidige behoefte terwijl binnen de roepende functie. Als u wilt dat opiniepeiling een waarde anders, kunt u altijd een directe analogRead doen.

BELANGRIJKE opmerking: ergens. een of andere manier, zal ik heb verlaten "deelnemer" verlaten experimenten en andere fouten in deze voorbeeldcode. De code wordt uitgevoerd, maar als u vindt impasses, ze zijn waarschijnlijk overgebleven vanuit havens aan verschillende beeldschermen of "banken" van animaties niet bedoeld om te worden verstrekt in de voorbeeldcode.

Gerelateerde Artikelen

$5 drywall stof Water Filter Gadget voor winkel vacuüm

$5 drywall stof Water Filter Gadget voor winkel vacuüm

Gipsplaten stof zal vaak filters verstoppen of rip uw filter. Gipsplaten stof zal ook uw vacuüm motor wrak.Meestal het stofzuigen van gipsplaten met een winkel vacuüm zal ook eindigen wordt verspreid door de lucht uit je vacuüm.Dit is een goedkope ga
De slimste Gadget voor u! Video-opname.

De slimste Gadget voor u! Video-opname.

Zeer handige gadget voor wie voert masterclasses en opleidinglessen.Weinig slimme robot voor docenten en studenten.We willen presenteren verschillende video's waarin Selfibot de mogelijkheden worden getoond.Deel van een lezing (Microsoft Azure, tijde
Gids voor Neopixel

Gids voor Neopixel

He, makers en LED liefhebbers!Ik ben terug met een ander leuk project dat een interessant verhaal erachter heeft.Ik wist over deze Neopixel LEDs voor een lange tijd, maar nooit gaan ronde kopen en gebruiken van hen. Dus op een dag, ik kocht enkele LE
Spy Gadget voor licht schakelaar

Spy Gadget voor licht schakelaar

We zijn gaan maken van een gadget die van lichten met helemaal geen geluid, perfect voor een spion of een geheim agent uitschakelen kan. Dit hulpprogramma is zeer eenvoudig te maken en is zeer nuttig.Stap 1: De materialen verkrijgen Uw alleen gonna m
Top 5 Minecraft Animated liedjes voor 2016!

Top 5 Minecraft Animated liedjes voor 2016!

mensen heeft mij gevraagd op youtube te maken een minecraft top 5 nummers dus ik deed en ik wil delen met u weten.Stap 1:5: super natuurlijke mobs. parodie van katy perry's california gurls. Stap 2:4: wat zegt de squide. een parodie van wat de vos ze
IPhone gadgets (lamp, ventilator, docking station, etc...)

IPhone gadgets (lamp, ventilator, docking station, etc...)

Ik ben een grote fan van gadgets, dus heb ik besloten om mijn eigen gadgets voor mijn iPhone 4.Dit instructable zal werken met alle iDevices met de oude 30-pins dock connectors. Hebt u een iDevice met de Apple lightning connector, wees niet verdrieti
Maak uw fiets '' slimme en groene '' voor een ultieme rit

Maak uw fiets '' slimme en groene '' voor een ultieme rit

In dit instructable ik zal u tonen hoe te maken van sommige nuttige elektronische gadgets voor uw fiets. De instructable bevat een zonne-energie-bank met een zeer hoge 7000mAh capaciteit die kan worden opgeladen met een ingebouwde 5v zonnepaneel of m
ESP8266 controle WS2812 Neopixel LEDs met behulp van de Arduino IDE - A Tutorial

ESP8266 controle WS2812 Neopixel LEDs met behulp van de Arduino IDE - A Tutorial

Hallo iedereen,Als u als me bent, hebt u zoekend rond het internet een goede tutorial over het gebruik van de ESP8266 met neopixel LEDs (AKA de WS2812 of WS2812b), geprogrammeerd via de Arduino IDE. Ik heb niet gevonden het allen in één plaats, in he
NeoPixel 24 Ring Arduino Shield

NeoPixel 24 Ring Arduino Shield

Hebt u een NeoPixel Ring met 24 NeoPixels zou u het recht om op te monteren uw Arduino zodat het niet wordt flopping rond. Ik wil dat mij stevig gemonteerd op de Arduino, omdat ik zal middelbare scholieren programmeren en ik wil dat het makkelijk te
Neopixel, ESP8266 en aangepaste 3D-gedrukte houder

Neopixel, ESP8266 en aangepaste 3D-gedrukte houder

Dit project werd samengesteld over een natte zondagmiddag om drie technologieën te combineren in één project.Een ESP8266 draadloze apparaatEen ring van Adafruit NeopixelEen 3d-gedrukte frame voor het project.Het ontwerp kunt u de patronen en kleuren
Laser show voor de arme man

Laser show voor de arme man

hier is nog een nutteloze maar cool uitziende "moet bouwen" gadget voor elke romantische geek.Laat me introduceren PIC microcontroller gebaseerd drie assen laser spirograaf....Check onderstaande link als je wilt om meer patronen te zien
Hoe een pin-up girl voor halloween

Hoe een pin-up girl voor halloween

of op elk gewenst moment, denk ik.Ik koos om te doen een Bettie Page versie zodra ik realiseerde dat ze pruiken gemaakt. ;)Dit is vrij betrokken kostuum, en ik hoop dat u zult kunnen om te voorkomen dat veel van de fouten die ik maakte!Stap 1: Stukke
Epic gebruikt voor een oude Android telefoon

Epic gebruikt voor een oude Android telefoon

Een oude Android telefoon die is het verzamelen van stof hier zijn een uitstekende manier om te hergebruiken zonder het nemen van het uit elkaarStap 1: Maak het een thuismedia controllerZelfs de junkiest oude Android apparaat ruime bevoegdheid heeft
Tegel Neopixel ketting

Tegel Neopixel ketting

Dit leerprogramma zal u tonenHoe maak je deze ketting! Net als een disclaimer, ik ben geen expert in het werken met elektronica, dit zo verbeteren zoals u zult! :)Dit project is geprogrammeerd met behulp van de Arduino IDE. Het maakt gebruik van een