Arduino målövning (4 / 5 steg)

Steg 4: Display



Den följande delen är en detaljerad förklaring av hur du ställer in skärmarna används i projektet.

I detta avsnitt har vi använt fyra 8 x 8 ledde matriser från OOLOUT.com. Alla har 128 lysdioder. Det är 512 lysdioder. Koppla av; Vi använder endast hälften av dessa. Matriserna är bi-färgad med röda och gröna lysdioder. Vi valde att använda röda. En annan stor sak är att raderna och kolumnerna har gjorts gemensamt. Kolumnen rälsen beter sig som anoden och rad rälsen fungerar som katod. För ljus ansluta en enda LED rad järnväg krävs att 5Volts via motståndet och motsvarande kolumn järnväg till marken. Till exempel ledde ljus i rad 2- och 6.

När matrisen är vände över i motsvarar ena hörnet en liten 1 finns som stift 1 på matrisen.

"matrixone.jpg" visar matrisen, dess pin-koder och där 1 är tryckt under matrisen. Den andra schematiskt i bilden beskriver vilken pin kontrollerar varje järnväg. Observera att vi har valt den röda lysdioden så vi använder stift 2,5,8,11,14,17,20,23 för kolumner. Om vi använder den gröna lysdioden vi skulle använda stift 1,4,7,10,13,16,19,22 men rad järnväg förblir densamma.
Som sett i schematiskt har varje kolumn och rad en utsedda pin. I "matrixtwo.jpg" har kolumnerna och raderna varit numrerade för att förhindra ytterligare förvirring. Därför om du ville tända lampan i kolumn 6 och rad Anslut 2 krets in"step3.jpg".

Enkel matris guide finns på OOMLOUT hemsida. I guiden har de ansluten matris rad stiften via 1K motstånd till Arduino I/O stift och direkt ansluten kolumnerna till Arduino stiften. I programmet prov som de har använt en funktion kallad "showsprite" som tänds alla lampor i en kolumn ett vänder sig dem alla. Det sedan upprepas processen för nästa kolumn, och så vidare. Detta kan verka dumt men detta görs för att minska den nuvarande från Arduino. Sett som bearbetar den så snabbt, trots att lysdioderna lyser kolumnvis, händer allt så snabbt att det mänskliga ögat bild visas så konstant.

I föregående exempel för en matris vi använde sammanlagt 16 stift, och så om vi skulle använda 4 matriser skulle vi använda 64 stift. Som vi inte har, så den enda lösningen är att använda SKIFT register.

Skifta register: (74HC595) "step5.jpg"

Exempel program som finns tillgängliga på webbplatsen Arduino att få en grundläggande förståelse för hur SKIFT register arbete men jag ska göra mitt bästa för att sammanfatta det.

Skiftregister godkänner data som en puls tåg av 8 bitar. För att tillåta skiftregister att acceptera uppgifter skickar vi en låg ingång till dess spärren stift. Data skickas till data stift och sedan låset stängs med ett högt till spärr stiftet. För att synkronisera Arduino och SKIFT registrerar register skickar vi Arduinos klocka till SKIFT klockan pin. Allt detta kommer att täckas igen under förklaringen av koden.

Visar på en matris med 2 SKIFT register:

Nu när vi kan skicka data till ett skiftregister kan vi använda den för att köra matrisen. Från våra tidigare förståelse vi skicka en ingång till raden och en låg ingång till kolumnen Aktivera en LED.
Registren har 8 utgångar kan varje vi välja en kolumn genom att ange andra 1 och kolumnen krävs till 0. Sedan skicka data specifika till kolumnen till de rad SKIFT register. Till exempel om du ville ha följande mönster: 10101101 (visas i bilden) du kan skicka mönstret till rad skiftregister och 11011111 till kolumnen SKIFT register.

Nu när vi har tittat på hur SKIFT registret fungerar med en matris, kan vi titta på hur till använda den för att köra 4 skärmar. Skiftregister har 8 utgångar och därmed dess utgång kan direkt anslutas till matrisen.

Vi kom fram till två sätt att göra detta
1) har en rad och en kolumn SKIFT register för varje 4 skärmar. Data linjen är gemensam för alla som bara ett skiftregister data ska tas emot på en gång. Klockan är gemensamma för alla SKIFT register och de måste alla vara synkroniserad, men alla behöver separata lås så att de kan aktiveras separat. Vi behöver därför totalt 10 stift (8 lås, 1 klocka och 1 Data).
2) det andra alternativet att minska antalet stift används är att ha en gemensam kolumn SKIFT register för alla skärmar och har enskild rad register för varje matris. Detta är den metod vi valde eftersom det krävs ett mindre antal stift (5 spärren stift 1 data och 1 klocka).

Så i grunden kan vi skicka data till varje raden registrera och sedan aktivera motsvarande kolumn, för att Visa 1 kolumnvisning varje av matriserna. Denna process är cyklade och data visas på varje skärm i höga hastigheter och därmed bilden visas konstant på alla 4 skärmar.

I Arduino programmeringsspråk är en speciell typ av heltal tillgänglig kallas en Bitmask som tillåter dig att skriva en rad i binärt, till exempel "int binary_integer = B11001010". Här kan du skriva vad varje rad av skärmen skulle se ut. Genom att göra en matris av dessa för varje kolumn kan du definiera vad en skärm ser ut för varje tecken som måste visas. För att lagra varje tecken och dess kolumner använder vi en matris med pekare som pekar på där i minnet är karaktär, så att det är lättare att få tillgång.

Vi behöver skicka data till önskat SKIFT register med hjälp av fördefinierade Arduino-funktionen för att visa på en skärm:
"digitalwrite (latchrow, låg); Att ange den obligatoriska skiftregister spärren låg.
shiftOut (datapin, clockpin, MSBFIRST, Rowmsk1); “
Skiftet ut funktionen skickar data till skiftregister. Den första ingången är pin-kod från vilken data skickas från arduino, då pin av arduino att klockan är skickade på, nästa format i vilka data som skickas, i detta fall är det den mest signifikanta biten först. Sist ingång är ett heltal (i antingen normala eller bitmask format) 8 bitar i längd som är data som skickas till skiftregister.
"digitalWrite (latchrowone, hög); Denna funktionen in spärren tillbaka till hög när data har skickats."

Vi behöver Visa tid för att träffa ett mål och vi behöver därför få tiden som en lång heltal ingång, konvertera det till sträng så att vi kan hitta motsvarande tecken ska visas på varje skärm.

Detta görs med konstruktorn sträng, en funktion tillgänglig som omvandlar ett långt heltal till en sträng som innehåller varje siffra. Strängen "timeString = String(123456,DEC);"
gör! timeString = {1,2,3,4,5,6}; ".

Vi använder en switch fall för att välja vilken mask bitmatris till Visa och sedan skicka det till funktionen display att mata den för skärmen.

Se Steg
Relaterade Ämnen

LED Dawn / Sunrise väckarklocka, nattlampa & säkerhet ljus - Arduino kompatibel

som nätterna förlängs successivt under hösten 2011, jag upptäckt glädjen med Arduino och trodde att det skulle vara ett bra sätt att genomföra något som jag har velat ha en lång stund - ett skonsamt sätt att vakna upp på en vintermorgon. Tyvärr, det...

Arduino blåsinstrument

jag ville skapa ett Arduino instrument som var lätt att spela, men skulle låta bättre med övning. "Wind" instrumentet kombinerar Sparkfun Elektret mikrofon breakout styrelsen med tonen biblioteket och 5 knappar på en analog stift. Musikern måste...

Autonomus vägg följande hinder att undvika Arduino Rescue Bot

jag är en ha som huvudämne elektroteknik och varje år mitt college gren av IEEE tävlar i en studenttävling hårdvara. Förra årets tävling var inspirerad av naturkatastroferna i Haiti och Chile (tävlingen hölls en vecka efter jordbävningen i Japan). De...

Arduino Nerf mål praxis

Arduino + 2 servon + laserSlå på den och servon flytta till en slumpmässig position och vrid på laser målet. Du har 2 sekunder för att slå den innan den stängs av och flyttar till en ny slumpmässig position. Servo positioner är begränsade till 0 till...

Båt Autopilot - baserat på Arduino

Här är hur man bygger en autopilot som kan styra en RC båt till waypoints! Det är enkelt att bygga, baserat på den populära Arduino plattformen och bra för amatörer som vill ha lite lödning övning! Med denna autopilot, kan en RC båt gå långa sträckor...

En resa av Palm Arduino Kit

jag skyldig detta instructable till min Palm Arduino Kit fläkt!Gjorde jag nämnde i min tidigare instructable "Palm Arduino Kit" att jag byggt i kit till följde med mig medan jag göra den resande.Och en riktig resa av min Palm Arduino Kit gjorde...

WiFi aktiverat Arduino - gränssnitt med webb-API: erna

Är du bekant med Arduino, men är ute efter lite mer connectivity i dina projekt? Detta Instructable går över en ny (och billigt) trådlös modul som har drabbat inbäddade världen hårt - ESP8266. Denna lilla modul är ett perfekt sätt att koppla din Ardu...

LED Arduino Clock

Efter byggnad mitt senaste projekt, ville jag bygga något med en Arduino. Bläddra Instructables månader såg jag en LED Arduino klocka som jag ville bygga. Efter några nykonstruktioner för min del satt jag på min erövring att bygga denna klocka.Först...

Arduino 101 grunderna

Syftet med detta instructable är att införa skriva grunderna till alla nykomlingar till världens Arduino skiss. Det är tänkt att vara en Nybörjarguide som innehåller detaljerad förklaring om basic uttalanden och funktioner. De flesta av de skisser so...

Arduino + TFT--> sköldpadda grafik

Inspirationen till detta Instructable kom från minnen av turtle grafiken som var en del av TI logotyp, ett program som gick på hemdatorn TI 99 4A. Och det kom från Grafikmöjligheterna på Adafruit 2.8" TFT Shield. Sätta en på din Arduino Uno, och låt...

BLDC Motor Control med Arduino, bärgades HD motor och hallgivare

det finns ett stort intresse dessa dagar bland hobbyister kontrollera borstlösa DC (BLDC) motorer, som har bättre prestanda och bättre energieffektivitet övertraditionella DC-motorer, är men svårare att använda. Många off-the-shelf produkter finns fö...

Arduino Tutorials-RFID-

lära sig hur man använder RFID-läsare med din Arduino. I denna delbetalning använder vi en RDM630 eller RDM6300 RFID-läsare. Om du har en innovationer ID-12 eller ID-20 RFID-läsare, har vi en annan tutorial för dig. Detta är kapitel femton av vår eno...

Arduino katapult

Hey, där. Detta är min detaljerade instruktioner om hur du skapar din egen micro-kontrollerade desktop katapult. Resan till bygga denna katapult kan vara mödosam, men du kommer att få evig lycka och tillfredsställelse av skräcken i ögonen på dina fie...

Jordbävning signalanordningen...!!!.

Hej beslutsfattare...Ni alla kan vara medveten om jordbävningen drabbade Nepal för en vecka sedan... Jag kände också att... Det var läskigt...Sedan tänkte jag på att göra en enhet som kan upptäcka en jordbävning och ljud larm... Så kunde vad annat gö...

Alfanumeriska laser projektor med arduino

IntroTanken var att göra en liten, billig och mycket bärbar (batteridriven) alfanumeriska hög effekt laser projektor. Detta skulle vara en enhet som du kan använda för att projektera ett meddelande på avlägsna mål. Det inte visar sig vara värt mödan...

RC bil RC Tank omställning med Arduino

Jag har alltid varit fascinerad av stora maskiner, tankar i synnerhet. Den tyska Tiger Tank, precis som i filmen Fury!, är en fantastisk maskin. Jag ville ha en! Jag gjorde något forskande och fann att RC Tiger Tank repliker kosta över $150, och gör...

ChipKit körs på Arduino kod

I denna inledning kommer jag visa hur man använder Arduino programmering med dp32 chipKit.Steg 1: Steg 1:-material som behövs någon chipKit styrelsenmikro-USB-kabelDin datorSteg 2: Hämta MP LAB X och Arduino IDE på din personlig bärbar datorFör att i...

Arduino Mega 8 x 8 x 8 RGB LED Cube

"Så du vill bygga en 8 x 8 x 8 RGB LED Cube"Jag har spelat runt med elektronik och Arduinos ett tag nu, inklusive bygga en hög amp switch controller för min bil och en sex körfält Pinewood Derby domare för våra scouter grupp.Jag var så fascinera...

Python/Arduino seriella styrenheten: Hemlagad masugn

Det som började som ett enkelt projekt att göra en liten bränning behållare för keramik experiment spiral utom kontroll i en skrot-konstruerade, kontrollerad CPU, syre-insprutning miniatyr masugn.Det färdiga projektet kombinerar ett GUI-gränssnitt, I...