Arduino Target praktijk (4 / 5 stap)

Stap 4: Display


Het volgende deel is een gedetailleerde uitleg over het instellen van de schermen gebruikt in het project.

In deze sectie hebben we vier 8 x 8 LED matrices van OOLOUT.com gebruikt. Elk beschikt over 128 LED's. Dat is 512 LEDs. Ontspannen; Wij gebruiken alleen de helft hiervan. De matrices zijn bi-gekleurd met rode en groene LEDs. We kozen te gebruiken van de rode degenen. Een ander groot ding is dat de rijen en kolommen hebben geboekt gemeenschappelijk. De kolom rails gedragen zich als de anode en de rij-rails gedragen als kathoden. Om aan te steken een enkele LED sluit de rij spoor nodig is om te 5Volts via de weerstand en de overeenkomstige kolom spoor op grond. Bijvoorbeeld licht leidde in rij 2 en kolom 6.

Als de Matrix is omgedraaid een hoek, die een kleine 1 gevonden worden kunnen overeen met pin 1 op de matrix.

De "matrixone.jpg" bevat de matrix, de pin-codes en waarbij de 1 wordt afgedrukt onder de matrix. Het tweede schema in de afbeelding wordt beschreven welke pin controleert elk spoor. Merk op dat we de rode LED's hebt geselecteerd, dus we zijn met behulp van pennen 2,5,8,11,14,17,20,23 voor de kolommen. Als we de groene LED's gebruikten zouden we de pinnen 1,4,7,10,13,16,19,22 gebruiken maar de rij spoor blijft hetzelfde.
Zoals te zien in het schema heeft elke kolom en rij een aangewezen pin. In "matrixtwo.jpg" zijn de kolommen en de rijen genummerd, om eventuele verdere verwarring te voorkomen. Dus als je wilde licht de Led in kolom 6 en rij sluit 2 het circuit in"step3.jpg".

Een eenvoudige Matrix gids is beschikbaar op de website van de OOMLOUT. In de handleiding hebben ze de matrix rij pinnen via weerstanden van 1K met de Arduino i/o-pinnen verbonden en de kolommen direct aangesloten op de Arduino pinnen. Het steekproefprogramma geboden hebben ze een functie genaamd "showsprite", die op alle de LEDs in een kolom één voor één draait gebruikt de bochten hen allemaal af. Vervolgens wordt de procedure herhaald voor de volgende kolom, enzovoort. Dit lijkt misschien dom, maar dit wordt gedaan om het verminderen van de huidige getrokken van de Arduino. Gezien omdat het beeld zo snel, hoewel de LEDs zijn door de kolom kolom verlicht, het allemaal zo snel dat het beeld zo constant voor het menselijk oog verschijnt gebeurt.

In het vorige voorbeeld, voor een matrix hebben we een totaal van 16 pins gebruikt, en dus mochten we 4 matrices gebruiken we 64 pinnen zou gebruiken. Die we niet hebben, dus de enige oplossing is het gebruik van shift registers.

Verschuiving van registers: (74HC595) "step5.jpg"

Voorbeeld programma's zijn beschikbaar op de website van Arduino om een basiskennis van hoe shift werk registreert maar ik zal mijn best doen om samen te vatten het.

Het register verschuiving accepteert gegevens als een puls-trein van 8 bits. Het shift register om gegevens te accepteren zodat we sturen een lage input voor de klink pin. De gegevens worden verzonden naar de pin van de gegevens en vervolgens de hendel wordt afgesloten met een hoog op de klink stift. Om te synchroniseren van de Arduino en de verschuiving registreert registreren we sturen de verschuiving van de Arduino klok klok pin. Dit alles zal worden behandeld tijdens de uitleg van de code opnieuw.

Weergeven op een matrix met behulp van 2 shift registreert:

Nu kunnen we gegevens doorsturen naar een shift register we kunt gebruiken om te rijden de matrix. Van onze eerder begrijpen we sturen een hoge ingang naar de rij- en een lage input voor de kolom een LED inschakelen.
Zoals de registers 8 uitgangen hebben kan elke we één kolom selecteren door de anderen te stellen op 1 en de vereiste kolom op 0. Verzend de gegevens specifiek naar die kolom op de rij shift registers. Bijvoorbeeld als je wilde het volgende patroon: 10101101 (Zie de afbeelding) kunt u het patroon naar de rij shift register en 11011111 naar de kolom shift register.

Nu dat we hebben gekeken hoe het shift register met een matrix werkt, kunnen we kijken hoe toe te passen om te rijden 4 schermen. Het shift register heeft 8 uitgangen en vandaar de uitvoer rechtstreeks kan worden aangesloten op de matrix.

We kwamen met twee manieren om dit te doen
1) hebben een rij en kolom shift register voor elk van de 4 schermen. De data lijn is gemeenschappelijk voor iedereen als slechts één shift register gegevens tegelijk worden ontvangen. De klok is gebruikelijk om alle registers van de verschuiving als ze moeten allemaal worden gesynchroniseerd, maar zij allen hendels scheiden moeten zodat ze afzonderlijk kunnen worden geactiveerd. Daarom moeten we een totaal van 10 pins (8 sloten, 1 klok en 1 gegevens).
2) de andere optie voor het verminderen van het aantal pinnen gebruikt is om een gemeenschappelijke kolom verschuiving registreren voor alle schermen en hebben afzonderlijke rij registreert voor elke matrix. Dit is de methode die we hebben gekozen aangezien het vereist een mindere aantal pinnen (5 klink pins, 1 gegevens en 1 klok).

Dus in wezen kunnen wij sturen gegevens aan elk van de rij registreren en vervolgens inschakelen de corresponderende kolom weer te geven van 1 kolomweergave elk van de matrices. Dit proces is gefietst en data wordt getoond op elk scherm bij hoge snelheden en vandaar de afbeelding verschijnt op alle 4 schermen constant.

In de Arduino programmeertaal is een speciaal type van integer beschikbaar genaamd een bitmasker waarmee u een nummer schrijven in binary, bijvoorbeeld "int binary_integer B11001010 =". Dit kunt u schrijven hoe elke regel van het scherm eruitziet. Door een matrix van deze voor elke kolom die u kunt definiëren wat een scherm ziet eruit als voor elk teken dat moet worden weergegeven. Als u wilt opslaan van elk teken en zijn kolommen gebruiken we een serie van wijzers die verwijzen naar waar geheugen het teken is, zodat er gemakkelijker toegankelijk.

Als u wilt weergeven op een scherm moeten we voor het verzenden van gegevens naar de gewenste verschuiving registreren met behulp van de vooraf gedefinieerde Arduino-functie:
"digitalwrite (latchrow, laag); Aan het vereiste shift register van Klink laag ingesteld.
shiftOut (datapin, clockpin, MSBFIRST, Rowmsk1); “
De shift functie verzendt gegevens naar het register van de verschuiving. De eerste ingang is het pin-nummer waaruit gegevens worden verzonden van de arduino, dan de pin van de arduino dat de klok wordt verzonden, daarna het formaat waarin gegevens wordt verzonden, in dit geval zijn de meest significante bit eerst. De laatste ingang is een geheel getal (in normale of bitmasker formaat) lengte die de gegevens verzonden naar het register van de verschuiving van 8 bits.
"digitalWrite (latchrowone, hoge); deze functie de hendel terug op hoog ingesteld zodra de gegevens zijn verzonden."

We moeten weergeven van de tijd die nodig is om een doel te raken en daarom moeten we te ontvangen van de tijd als een lange integer input, converteren naar tekenreeks zodat we het bijbehorende teken wilt weergeven op elk scherm kunt vinden.

Dit wordt gedaan met behulp van de constructor van de string, een functie beschikbaar die converteert een lang geheel getal naar een tekenreeks van elk cijfer. Tekenreeks "timeString = String(123456,DEC);"
maakt! timeString = {1,2,3,4,5,6}; ".

We een gebruiksvoorbeeld schakelaar om te selecteren welke bits masker array weergeven, dan stuur het naar de display functie voor de uitvoer van het ook het scherm.

Gerelateerde Artikelen

Target praktijk met Arduino en laseraanwijzer

Target praktijk met Arduino en laseraanwijzer

Dus laten we zeggen dat je een imperial stormtrooper. U bent voortdurend gunning voor rebel schuim, maar als je aangezicht tot aangezicht met de vijand niet kon je de volle laag van een AT-AT met uw geweer van de laser.Worry niet meer! In dit instruc
Arduino Nerf Target praktijk

Arduino Nerf Target praktijk

Arduino 2 servo's + laserHet inschakelen en de servo's verplaatsen naar een willekeurige positie en draai op het doel van de laser. Je hebt 2 seconden om het te slaan voordat het wordt uitgeschakeld en wordt verplaatst naar een nieuwe willekeurige po
Lego Micro-Manager Target praktijk

Lego Micro-Manager Target praktijk

Lego liefdevolle bezig met 9 jaar oud zijn verjaardagspartij in het huis hebben en willen een partij met een bos van andere 8/9-jarigen (plus zijn 6-jarige zus). Thema is Lego natuurlijk. Scheurde uit elkaar de achtertuin als u wilt maken van een Leg
Star Trek Target praktijk

Star Trek Target praktijk

originele hier: http://tsjwang.blogspot.com/2013/09/star-trek-target-practice.htmlIk denk dat ik keek een beetje teveel Star Trek met mijn broer. Heb ik besloten om een phaser.Sommigen van u wellicht weet zijn er meerdere soorten fasers. Ik mijne gem
Bottlecap Target praktijk spel

Bottlecap Target praktijk spel

Hallo! I 'm gonna worden leer je--Ja, u! --hoe een eenvoudige, snelle en leuke spel met niets maar een bottlecap en sommige beetje stand-up dingetjes te spelen!Stap 1: BenodigdhedenU zult het volgende nodig:1. een vlakke ondergrond om op te spelen2.
MakeyMakey Build nacht--Target praktijk

MakeyMakey Build nacht--Target praktijk

We waren gelukkig genoeg om het addertje onder het gras een januari Instructables MakeyMakey bouwen Kit. We hebben 5 MakeyMakey kitsen dacht dat die we in vet stad waren. Vervolgens werd ons weer een realiteit. Onze eerste twee geplande MakeyMakey Bu
K'NEX pistool Target praktijk (HD)

K'NEX pistool Target praktijk (HD)

Hallo.Gewoon een oude video.
Target praktijk... misgegaan

Target praktijk... misgegaan

dit is niet noodzakelijkerwijs mijn idee. het gedaan vóór en waarschijnlijk op instructables. in principe tape je een doelwit gevestigd in krijt op de urinoirs op school, werk of willekeurige Wal-Marts in de hele natie. Toen ik dit op mijn middelbare
Licht gewicht draagbare boogschieten Target voor onder $25

Licht gewicht draagbare boogschieten Target voor onder $25

Dit project is snel, gemakkelijk en goedkoop. Het duurt slechts ongeveer 20 minuten om te maken en zul je een grote boogschieten-doel dat een lange tijd zal duren. Niet alleen dat, het is lichtgewicht en draagbaar.Deze doelstelling werd getest met ve
Arduino ISP - LOG

Arduino ISP - LOG

Arduino ISP - LOGDeze lui oude Geek (LOG) heeft dus een heleboel moeite Arduino bootload op Atmega chips.Kon ik niet krijgen van beide werken met Arduino UNO Rev3.http://Arduino.CC/en/tutorial/ArduinoISPhttp://letsmakerobots.com/node/35649Zo ontwikke
Vuurwapen veiligheid: De "do's" en "don'ts" van kanons veilig te genieten.

Vuurwapen veiligheid: De "do's" en "don'ts" van kanons veilig te genieten.

Dit instructable leert u enkele fundamentele vuurwapens veiligheid voorzorgsmaatregelen. Ik ben dit zeer fundamentele en to-the-point opzettelijk te houden, maar kunnen gaan in meer detail in een toekomst instructable. Hanteren van een vuurwapen, zoa
Chopstick kruisboog pijlen

Chopstick kruisboog pijlen

In dit instructable ik zal u tonen hoe te maken eenvoudige pijlen van stokjes. Deze pijlen zijn niet zeer scherp dus ze kleine veilig zijn maar ze nog steeds scherp genoeg voor doel praktijk zijn. Opmerking: Door target praktijk bedoel ik schieten op
Veiligheid backstop voor een pellet geweer pellet trap

Veiligheid backstop voor een pellet geweer pellet trap

benodigdheden nodig -Drie - houten pallets (strip de boven- en ondermarge (pallet) latten uit één en reserve)Negen - 5/8 in. x 5-1/2 inch x 6 ft. houten hek palenVier - betonblokken voor een baseÉén-geribde zwarte kunststof tapijt loper (2 ft x 6 ft)
Maken van een "Engelse fit" pistool geval uit een sigaar doos

Maken van een "Engelse fit" pistool geval uit een sigaar doos

ik kreeg onlangs een lege cigar box, en was op zoek naar iets om op te slaan in het toen ik dacht dat van de BB pistool die ik gebruik voor target praktijk in de garage.  Ik had kocht onlangs een laser zicht en de rode stip zicht voor het, en nodig e