Doc Brown's Beveiliging werkmap (5 / 7 stap)

Stap 5: Rijden de zeven Segment Displays


Een 7-segment display is slechts een verzameling van zeven (of acht als er een decimaalteken) LEDS, die kan worden gebruikt om getallen weergeven wanneer de juiste LEDS verlicht.

Er zijn twee uitdagingen aan met behulp van hen die ik zal bespreken mijn oplossingen voor

  • Drijvende 14 LEDS zonder gebruik te maken van al onze pins digitale uitgang
  • Bepalen van die LED's aan het licht

Alle 14 LEDS van 3 pins rijden: Shift registreert

Intro

Het zou vereisen ongeveer 14 pinnen van de digitale uitgang naar station de twee 7-segment displays, die is gewoon niet praktisch, in plaats daarvan maken we gebruik van shift registers. De volledige werking van een shift register valt buiten het bestek van dit Instructable, maar hier is een link naar een goede tutorial, in feite ik mijn code uit hun "Sample 2.3" code gebaseerd.

De verbindingen van de Linkit een met de eerste shift register zijn als volgt

latchPin 12 = klink = 12 op ard

verschuiving van reg 11 = klok = 11 op ard

verschuiving van reg 14 = data = 13 op ard

1-7, 15 PINSQ0 "Q7Output pinnen
PIN 8GNDGrond, Vss
PIN 9Q7 "Seriële Out
PIN 10MIJNHEERMaster Reclear, actieve laag
PIN 11SH_CPShift register klok pin
PIN 12ST_CPOpslag registreren klok pin (pin-nummer klink)
PIN 13OEUitvoer inschakelen, actieve laag
PIN 14DSSeriële data-ingang
PIN 16VCCPositieve voedingsspanning

Zorg ervoor dat u weet of uw beeldschermen common-anode of common-Kathode. Mijne waren common-Kathode, wat betekende dat ik elke uitgang pins (Q0-Q7) van het shift register op een van de LED's via een weerstand aangesloten en vervolgens verbinding met de common-Kathode op grond.

Bij het kiezen van de weerstanden voor uw beeldscherm, vergeet u niet dat de één LinkIt gebruikt 3.3V IO en niet 5.5V zoals de Arduino. Ik koos 100 ohm weerstanden voor 17mA huidige (3.3 - 1.6V = 1.7V over weerstand), maar waarschijnlijk moet hebben gericht voor de volledige 20mA aangezien ze uiteindelijk erg saai.

Bepalen van die LED's aan het licht

Ik gebruikt deze tabel om te bepalen van de segmenten voor een bepaald teken.

Eerst maakte ik een kolom voor elke uitgang pins van het shift register, vervolgens een overeenkomstige colum, tonen welke pin van het 7-segment display het verbindt met.

Dan ik de technische fiche van het 7-segment display gebruikte om te corresponderen haar pin nummers aan segmenten (de segmenten worden geëtiketteerd a-g)

U kunt zien dat ik een kolom voor elk teken (0-9 maakte) en dan schreef een 1 als het licht moet op en 0 als het moet uit (dit is eigenlijk een waarheidstabel). De 'x' zijn 'niet schelen' omdat deze pin wordt niet gebruikt.

Het lezen van de kolom van beneden naar boven de resultaten in een binair getal (bijvoorbeeld het teken 2 geeft ons X1101101) die we converteren kunt naar hex en gebruik in onze code (char 2 = 01101101 in binair = 0x6D in hex). Ik heb alle de X vervangen door 0, maar het maakt geen verschil.

SHIFT Pin Seg Pin Seg naam 0 1 2 3 4 5 6 7 8 9
Q02A1011011111
Q13F1000111011
Q25E1010001010
Q39D1011011010
Q413C1101111111
Q514G0011111011
Q615B1111100111
Q7NCNCXXXXXXXXXX

Dit is de fundamentele code die ik gebruikt om te testen dat ik had de juiste bytes voor de 10 verschillende personages, het luistert op de seriële poort voor een nummer en het-uitgang van het eerste register, is er geen foutcontrole als u een teken dat geen 0-9 invoeren.

 /* Shift Register Example, modified to drive a seven seg display Hardware: * 74HC595 shift register * LEDs attached to each of the outputs of the shift register */ //Pin connected to ST_CP of 74HC595 int latchPin = 12; //Pin connected to SH_CP of 74HC595 int clockPin = 11; ////Pin connected to DS of 74HC595 int dataPin = 13; //holders for infromation you're going to pass to shifting function byte data; byte dataArray[10]; void setup() { //set pins to output because they are addressed in the main loop pinMode(latchPin, OUTPUT); Serial.begin(9600); //Binary notation as comment dataArray[0] = 0x5F; //0b01011111 dataArray[1] = 0x50; //0b01010000 dataArray[2] = 0x6D; //0b01101101 dataArray[3] = 0x79; //0b01111001 dataArray[4] = 0x72; //0b01110010 dataArray[5] = 0x3B; //0b00111011 dataArray[6] = 0x3F; //0b00111111 dataArray[7] = 0x51; //0b01010001 dataArray[8] = 0x7F; //0b01111111 dataArray[9] = 0x73; //0b01110011 } void loop() { byte inByte = 0; if (Serial.available() > 0) { // get incoming byte: inByte = Serial.read() - '0'; inByte = max(inByte, 0); inByte = min(inByte, 9); //load the light sequence you want from array data = dataArray[inByte]; //ground latchPin and hold low for as long as you are transmitting digitalWrite(latchPin, 0); //move 'em out shiftOut(dataPin, clockPin, data); //return the latch pin high to signal chip that it //no longer needs to listen for information digitalWrite(latchPin, 1); } } // the heart of the program void shiftOut(int myDataPin, int myClockPin, byte myDataOut) { // This shifts 8 bits out MSB first, //on the rising edge of the clock, //clock idles low //internal function setup int i = 0; int pinState; pinMode(myClockPin, OUTPUT); pinMode(myDataPin, OUTPUT); //clear everything out just in case to //prepare shift register for bit shifting digitalWrite(myDataPin, 0); digitalWrite(myClockPin, 0); //for each bit in the byte myDataOut� //NOTICE THAT WE ARE COUNTING DOWN in our for loop //This means that %00000001 or "1" will go through such //that it will be pin Q0 that lights. for (i = 7; i >= 0; i--) { digitalWrite(myClockPin, 0); //if the value passed to myDataOut and a bitmask result // true then... so if we are at i=6 and our value is // %11010100 it would the code compares it to %01000000 // and proceeds to set pinState to 1. if ( myDataOut & (1 << i) ) { pinState = 1; } else { pinState = 0; } //Sets the pin to HIGH or LOW depending on pinState digitalWrite(myDataPin, pinState); //register shifts bits on upstroke of clock pin digitalWrite(myClockPin, 1); //zero the data pin after shift to prevent bleed through digitalWrite(myDataPin, 0); } //stop shifting digitalWrite(myClockPin, 0); } 

Gerelateerde Artikelen

Back to the Future: Doc Brown's gedachten lezen helm

Back to the Future: Doc Brown's gedachten lezen helm

Ik hou van de rug naar de toekomst serie. Het was absoluut een nietje opgroeien, en voor Halloween ik wilde een kostuum gebaseerd op het.Nu, ik ben geen Marty McFly, ik ben zeker meer het type van de Doc Brown. Ik kijk niet zoiets als hem, maar met s
Doc Brown tinten voor uw Gatto

Doc Brown tinten voor uw Gatto

Ja, dat is een gevulde koala. Mijn kat was niet momenteel beschikbaar voor een fotoshoot!Stap 1: materialenPlakband (hebt u zilver, kun je een stap overslaan :)KartonnenFolieNormale plakbandIets te tekenen metNaald/tack/puntige dingStap 2: De metinge
Awesome terug naar de toekomst kostuum (Doc Brown en Delorean)

Awesome terug naar de toekomst kostuum (Doc Brown en Delorean)

We verzamelen films en film memorabilia, met name 80films. Onze 6 jaar oude dochter houdt de meesten van hen ook. Haar favoriete karakter in de rug naar de toekomst film is Doc Brown. We besloten dat dit zou het komende jaar Maak een eerbetoon aan de
Doc Brown - Aquarelle schilderij

Doc Brown - Aquarelle schilderij

Aquarelle schilderij van Doc Brown in terug naar de toekomst.In de film toont Doc Marty, met behulp van een model, hoe krijgen bliksem voor staking de DeLorean en stuurt hem terug naar de toekomst. De kleine Modelauto vervolgens vangsten vuur og Doc
5min Doc Brown's tinten uit Back To The Future II

5min Doc Brown's tinten uit Back To The Future II

Morgen is de dag Doc en Marty komt uit 1985 tot 2015 van Hill Valley. De toekomst is nu, en moet je fancy daarvoor!U bent nog steeds in de tijd. In 5 minuten, met dingen die je zeker rond thuis hebt, kunt u deze zonnebril. Merk ze zijn alleen decorat
Doc Brown - tekening

Doc Brown - tekening

Emmett Lathrop "Doc" bruin uit Back to the Future 2 :-)Gemaakt dit tekenen met kleurpotloden (bruin-, oranje- en geeltinten).Stap 1: Stap 2: Stap 3: Stap 4: Stap 5: Stap 6:
DIY terug naar de Future Delorean

DIY terug naar de Future Delorean

Allereerst, Happy Halloween iedereen!Voor dit jaar besloten mijn vriend en ik om te doen een terug naar het thema van de toekomst. In plaats van gewoon verkleden als Marty McFly en Doc Brown, wilden we gaan de extra mijl en bouwen een Delorean. Nu he
Back to the Future: Flux condensator

Back to the Future: Flux condensator

Sinds ik voor het eerst zag de Back to the Future-trilogie, was ik verbaasd over de gadgets die werden gebruikt. Een die altijd trof me zo fascinerend was Doc Brown's uitvinding van de Flux condensator. Ik wilde altijd al om te bouwen van een replica
3D gedrukte Back to the Future tijd Circuit klok

3D gedrukte Back to the Future tijd Circuit klok

De timerklok circuit verschijnt de volgende via de LED-displays.Bestemming tijd – (Top-rood)De bestemming tijd is een gebied dat een vaste datum en tijd worden weergegeven. Gebruik dit gebied om een belangrijke datum in je leven zoals bruiloft, verja
De macht van uw auto met een REACTOR FISSION!

De macht van uw auto met een REACTOR FISSION!

Zijn nu het jaar 2015 en de mensheid begint te maken van vooruitgang in de productie en toepassing van alternatieve brandstoffen. In de beroemde trilogie, terug naar de toekomst, waren we overdonderd door de gedachte van de technologie van de toekoms
Volkswagen Van van BTTF - Kitty Edition

Volkswagen Van van BTTF - Kitty Edition

Iemand waarschuwen beter Doc Brown over de schattige kitty komt recht voor hem.Deze kat hideaway is gewoon een kartonnen doos te laten uitzien als de Libiërs van geschilderd. De achterdeuren openstaan, maar ik vond dat mijn poesjes liever te betreden
Terug naar de toekomstige fiets aanhangwagen

Terug naar de toekomstige fiets aanhangwagen

Ooit moest jazz omhoog uw jonge geitjes fiets aanhangwagen voor een aankomende rit? Ik heb het nodig elk jaar wanneer wij in Utah's Antelope door maanlicht fietstocht participeren. Het is een 24 mijl rijden die om 10 uur begint en kostuums worden aan
Houten AT-AT Walker (handgemaakt met gemeenschappelijke instrumenten!)

Houten AT-AT Walker (handgemaakt met gemeenschappelijke instrumenten!)

Dit is een schaal houten AT-AT Walker uit Star Wars die ik als een cadeau voor mijn kinderen gemaakt.Het bestaat bijna geheel uit kladjes van Baltische berken multiplex en is 20 inch hoog (ongeveer 51 cm).Hier zijn enkele van de functies:volledig pos
Terug naar de toekomst "Plutonium Fuel Cell"

Terug naar de toekomst "Plutonium Fuel Cell"

hoe te bouwen van het Plutonium brandstofcel gebruikt door Doc Brown in de film "Back to the Future".Mijn zoon vond een omzet wordt weergegeven voor de oorspronkelijke prop op het Internet. Helaas, de brandstofcel werd verkocht, zodat we beslote