En nybörjares guide till Arduino (8 / 15 steg)

Steg 8: Ännu mer blinkande lysdioder



Programmering i LED-sekvens

Öppna exempel blink7.

På linje 3, ser du en ny struktur: vi kallar detta en matris. En matris är i grunden en lista med variabler, i detta fall, det är en lista över variabler av typen int. Vi använder hakparenteser anger att det är en matris. För att initiera matrisen, vi använder krökt parenteser, och värdena avgränsas med kommatecken.

När vi vill använda ett värde från en matris, måste vi ange som placerar i arrayen vi vill ha värdet av. Låt oss använda matrisen i blink7 som ett exempel:

int array [] = {1,2,3,4,5,6,5,4,3,2}.

om vi vill få det första värdet i matrisen, använder vi

Array [0]

Noll mellan hakparenteser kallas index. Arrayer är nollbaserat, detta innebär att det första elementet i arrayen har index noll. Detta kan vara förvirrande först, till exempel, array [5] att returnera 6, där du förväntar dig att återvända 5.
Ni kan föreställa er att detta kan orsaka en hel del problem... Det är därför detta fel har sitt eget namn: ett av ett feleller OBOE för korta.

När du försöker läsa ett värde som inte är inuti matrisen, array [10] till exempel Arduino kommer bara läsa nästa plats i minnet, utan att inse att värdet den har behandlingen är inte en del av matrisen längre. Det kommer bara ge dig värdet hittas på den särskilda platsen i dess minne.
Men det blir ännu värre när du skriver till ett index utanför utbud, eftersom du kan skriva över andra data, som variabler eller bitar av kod som råkar vara på den platsen i minnet! En dålig idé...

Om du vill deklarera en array utan att initiera det ännu, kan du använda

Array [10].

Observera att 10 är antalet element, medan den sista delen kommer att vara array [9]!

Om du initiera den på samma rad, som i blink7, Arduino IDE räknas element för dig och du behöver inte ange något mellan hakparenteserna.

Om du vill veta antalet element i matrisen, kan du använda funktionen sizeof(array) . Den här funktionen returnerar matrisen, storlek i byte (1 byte = 8 bitar). Detta är dock inte mängden beståndsdelar, i blink7, sizeof(array) kommer tillbaka 20. Detta beror på att varje element är ett heltal, och en int är 2 byte lång. Så det totala antalet element är 20/2 = 10.
Vi använder detta för att lämna våra för-loop när vi har läst hela utbud: så länge index är lägre än antalet element, kan vi säkert läsa matrisen. Vi börja med i = 0, eftersom det första elementet har index 0. Denna tid vi bara öka jag med 1. Notationen "i ++" är exakt samma som skriver "jag = i + 1", det är bara kortare. Ett annat sätt att skriva det här skulle vara "jag += 1'.

Eftersom LED #1 är ansluten till stift 2, LED #2 till stift 4, 3 till 6 etc, multiplicera vi antalet LED med 2 för att få pin-kod.

Arduino referens: Array

Arduino referens: Sizeof

Arduino referens: ökning

Arduino referens: sammansatta tillägg

Du kan ändra värdena i matrisen till göra din egen sekvens, och du kan även lägga till eller ta bort element, eftersom vi gjort vårt program oberoende av längden på arrayen, med hjälp av funktionen sizeof().

Sammanfattning:

  • En matris är en lista över värden (eller tecken eller andra matriser) och använder hakparenteser]
  • Detta är förklaringen av en matris: "int array [10]."
  • Detta är den förklaringen och initiering av en matris: "int array [] = {1,2,3,4,5,6,5,4,3,2}.
  • Matris är nollbaserat, vilket innebär att det första elementet har index 0
  • sizeof(array) returnerar storleken i byte för matrisen
  • sizeof(data Type) returnerar storleken i byte för datatypen
  • sizeof (array) / sizeof (datatypen array) ger dig antalet element i matrisen

Extra: 2-dimensionell matriser (matriser)

I en matris kan elementen inte bara datatyper, liksom ints, men också andra matriser. Detta gör att du kan ha så kallade 2-dimensionell matriser, som kan jämföras med matriser.

Detta används i exempel blink8: nu kan du både ledde numret och förseningen i matrisen.

int array [] [2] = {
{1, 600},
{2, 100},
{3, 100},
{4, 100},
{5, 100},
{6, 600},
{5, 100},
{4, 100},
{3, 100},
{2, 100}
};

Observera att vi har att ange alla mått utom det första mellan hakparenteser, när du deklarerar en flerdimensionell matris.

Syntaxen för få en värdet av matrisen är

Array [rad] [kolumn]

Öppna exempel matrix_sum. Detta exempel kommer inte göra något om du laddar upp det, det har inte alla utgångar, det är bara för lärandesyfte.

Det skapar 4 matriser (2D array), varav två har värden. Därefter beräknas det bara summan av de två matriserna och omkastade matrisen för den första.

Detta görs med hjälp av nästlade for-loopar. På bilden ovan kan du följa denna förklaring.
Siffrorna är den ordning de for-loop kommer att gå över dem. Jag används för raderna, j för kolumnerna. De börjar på första kolumnen och den första raden (1,1) i matrix notation, [0] [0] för array notation, sedan kolumnen är ökat (1,2) eller [1] [0], kolumnen ökas igen (1,3) eller [2] [0] när j ökas igen, j-loopen avslutas, eftersom j inte längre är mindre än tre. Jag ökas, j återställs till noll: (2,1) eller [0] [1], j ökas: (2,2) eller [1] [1], sedan (2,3) eller [2] [1]. Jag ökas, j återställs till noll: (3,1) eller [2] [0], sedan (3,2) eller [2] [1], och slutligen (3,3) eller [2,2]. Nu j avslutar, och jag avslutar också.

Beräkningen av omkastade matrisen är liknande, det swappar bara kolumnerna och raderna:

transposeMatrix [i] [j] = matrisen [j] [i];

Inuti dessa matriser, kan du använda flera matriser, i princip skapa flerdimensionella utrymmen. I teorin, han antal dimensioner är obegränsad, men när du använder mer än tre dimensioner, det blir mycket komplicerat, så andra metoder är att föredra.

Se Steg
Relaterade Ämnen

Nybörjare guide till installera och konfigurera Octoprint på en Raspberry pi för 3D utskrift

Om du har läst någon av mina andra instructables, mest namnkunniga komplett nybörjare steg för steg, 3D-skrivare med alla delar listor, vet du att jag kommer ihåg min egen frustration på ofullständiga instruktioner och guider även efter jag äntligen...

En nybörjare Guide till 35mm Film fotografering

Hej alla! Jag har nyligen verkligen kommit in film fotografering efter min far gav mig sin gamla Pentax K1000. Jag är relativt ny på film fotografering köpa har lärt mig en hel del hittills.Målet med detta Instructable är att ge en detaljerad, lätt a...

Nybörjare Guide till fotografi

detta instructable är för nybörjare, och tar dig genom 1) lätt saker att fotografera2) utveckla bilder för att vara anständig (oroa dig inte det är mycket lätt jag lärde min stora mormor att göra det)Steg 1: utrustning Om du har en trevlig kamera med...

En nybörjares Guide till Photoshop

jag gjorde denna guide till Photoshop med hjälp av programmet sig på min hem laptop. Det har varit ett projekt som jag har velat ta itu med eftersom jag har hittat liknande guider inte har inkluderat några av viktig information.Jag har gjort digital...

En nybörjare guide till setup ESP8266 med Arduino Mega 2560 eller Uno

För produkter med öppen källkod för att lyckas eller anta en masse "skaparna" / "DIY-na" / "dev" / "etc"; en aktuell och korrekt dokumentation eller snabbstart-guide som skall krävas. Användarens inlägg i diskussion...

En nybörjare Guide till Raw-filer och Raw-bearbetning

En av de första sakerna jag lärt mig om i fotografi var om en filtyp som kallas en Raw-fil. Ofta när någon börjar i fotografi, inser han eller hon inte potentialen i Raw-filer. Först såg jag inte användning för raw-filer, de tycktes erbjuda något som...

En nybörjares Guide till XSplit programföretag och Streaming på Twitch.tv (Windows 10)

IntroduktionLive Streaming är en växande bransch där alla och envar kan dela deras spelupplevelse med världen. Om du bara titta på andra spela och prata med din favorit serpentiner i chatten, eller live streaming själv, Twitch.tv skapar en enorm, sam...

Nybörjare Guide till fiberoptik

Fiberoptik! Fiberoptik! Jag är visserligen lite besatt med fiberoptik, och av goda skäl. De är en slitstark, mångsidig och relativt enkelt sätt att lägga till vackra ljuseffekter till något du gör. Titta bara på några av de underbara projekt kan du s...

En nybörjares Guide till Stirlingmotorer

Förra året var jag en IB elev i MYP programmet. I slutet av året hade vi att göra ett forskningsprojekt om något som intresserar oss. Göra lite forskning på internet, kom jag över något som kallas en Stirlingmotor."Så, vad i helsike är en Stirlingmot...

En nybörjares Guide till papper skära

Här är en enkel guide för att komma igång att göra papper nedskärningar.Jag har gjort dem i flera år nu och har upptäckt att de är ett riktigt bra sätt att göra en vacker kort, särskilt när tiden är mot dig. Jag gör detta varje gång en födelsedag ell...

En nybörjares guide till Kolrosing, av en nybörjare.

* Detta är mitt inträde till tävlingen "Trä". Om du gillar vad jag har gjort här rösta! Tack! *Så du är nästan färdig med din woodworking projekt, har kanske du gjort några skedar, en trevlig låda, en vacker skärbräda eller några otherreally coo...

En komplett nybörjare guide till airsoft

denna guide är inte som andra instructables, denna guide innehåller allt du behöver veta för att gå ut och ha lite kul. Nu, tack vare några tips kommenterade denna sida, jag kommer att lägga till lite nya grejer... Kolla upp det!Steg 1: Komma igång A...

Nybörjare Guide till Airsoft

så du vill starta airsoft det är en rolig sport för att ta upp jag tycker det är ett steg från sittande runt att få fett spelar TV-spel. Men innan du går ut och köpa en hel kostym av redskap och toppmodellen airsoft vapen du behöver ställa dig själv...

Nybörjares Guide till att köpa Airsoft Field Gear

Så du har köpt din AEG, men din blå jeans har inte tillräckligt fickor för att hålla alla dessa extra tidningar. Det är dags att köpa några nya redskap.Problemet med att köpa nya redskap är att jag kan inte berätta exakt vad du ska köpa.Chanserna är...

Nybörjare guide till Morel svamp

Det är en helgdag som finns i såväl landsbygden söder som Mellanvästern som bara känns igen av lokalbefolkningen: svamp säsong. Det finns en uppsjö av svamp som växer under hela året, det finns bara en svamp som gör det en nödvändighet för hårt arbet...

En nybörjare Guide till spela gitarr Del1

Hej alla! Jag kommer idag att vad man ska packa i ditt gitarr fall.Steg 1: #1. Strängar En bra uppsättning strängar är lifesavers du behöver dem!Steg 2: #1. Tuner Det är uppenbart vad du gör med detta. : DSteg 3: #3. Plockar och Capo Dessa kommer i h...

Nybörjarens guide till ESP8266 och tweeting med ESP8266

Jag lärde mig om Arduino 2 år sedan. Så började jag spela runt med enkla saker som lysdioder, knappar, motorer etc. Då tänkte jag skulle inte det vara häftigt att ansluta för att göra saker som visar dagens väder, aktiekurser, träna timings på en LCD...

Arduino Anti Theft Alarm (med polis Siren): Komplett nybörjares Guide

Är du rädd för tjuvar som kan stjäla alla dina projekt??? :) :) Då detta den perfekta INSTRUCTABLE för dig. Detta är ett stöldskydd larm. När det finns ingen tjuv runt, sedan en blå LED kommer att blekna på och av; men om en tjuv försöker passera av...

Bygga en DIY Quadcopter: en nybörjare Guide

Detta är ett riktigt kort klipp på min quadcopter svävar upp och ner och rörelse i sidled. Jag försökte hålla höjden så minimal som möjligt eftersom jag är inne i mitt vardagsrum, men som ni kan se, även med som det flyger upp till huvudet (ca 6 fot)...