Doc Browns säkerhet portfölj (5 / 7 steg)

Steg 5: Kör sju segmenterar skärmar



En sju-segment display är bara en samling av sju (eller åtta om den har ett decimalkomma) lysdioder, som kan användas för att visa tal när rätt LED-LAMPORNA lyser.

Det finns två utmaningar att använda dem som jag kommer att diskutera min lösningar på

  • Driva 14 lysdioder utan att använda upp alla våra digitala utgångsstift
  • Bestämma vilket lysdioder att tända

Kör alla 14 lysdioder från 3 pins: SKIFT register

Intro

Det skulle kräva ca 14 digital utgång stiften för att driva två sju segmenterar skärmar, som bara inte är praktiskt, i stället vi göra använda av SKIFT register. Full drift av ett skiftregister är utanför omfånget för detta Instructable, men här är en länk till en bra tutorial, jag bygger min kod bort deras "Sample 2.3" koden.

Anslutningar från Linkit en till den första skiftregister är följande

latchPin 12 = latch = 12 på ard

skifta reg 11 = klocka = 11 på ard

skifta reg 14 = data = 13 på ard

STIFT 1-7, 15Q0 "Q7Utgångsstift
STIFT 8GNDMarken, Vss
PIN 9Q7 "Följetong ut
STIFT 10HERRMaster Reclear, aktiv låg
STIFT 11SH_CPShift registrera klocka pin
STIFT 12ST_CPLagring registrera klocka pin (spärren stift)
STIFT 13OEUtgången aktiveras, aktiv låg
STIFT 14DSSeriella data ingång
PIN 16VCCPositiv spänning

Se till att du vet om din visar är common-anoden eller common-katod. Mine var common-katoden vilket innebar att jag ansluten varje utgångsstiftet (Q0-Q7) skift register till en av LAMPORNA via ett motstånd och kopplas sedan common-katoden till marken.

När du väljer motstånden för bildskärmen, kom ihåg att en LinkIt använder 3.3V IO och inte 5.5V som Arduino. Jag valde 100 ohms motstånd för 17mA nuvarande (3.3 - 1.6V = 1.7V över resistor), men förmodligen har siktat för full 20mA eftersom de hamnade väldigt tråkig.

Bestämma vilka lysdioder att tända

Jag använde denna tabell för att bestämma segment för ett visst tecken.

Först gjorde jag en kolumn för varje utgångsstiftet SKIFT register, sedan en motsvarande colum, visar vilken pin 7-segment display den ansluter till.

Då jag brukade databladet 7-segment display motsvarar det är pin-koder till segment (segmenten är märkta a-g)

Du kan se att jag gjort en kolumn för varje tecken (0-9) och sedan skrev en 1 om ljuset måste vara på och 0 om det måste vara av (detta är faktiskt en sanning bordlägger). "x" är "bryr mig inte" eftersom det klämmer fast inte används.

Läst kolumnen nedifrån och upp resultaten i ett binärt tal (till exempel tecknet 2 ger oss X1101101) som vi kan konvertera hex och använda i vår kod (char 2 = 01101101 i binär = 0x6D i hex). Jag ersatte alla X med 0, men det spelar ingen roll.

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

Detta är den grundläggande kod som jag använde för att testa att jag hade rätt byte för de 10 olika karaktärerna, lyssnar på den seriella porten för flera och utgångar det till första registret, det finns ingen felkontroll om du matar in ett tecken som inte är 0-9.

/*
Skifta registrera exempelvis ändras för att köra en sju seg display

Hårdvara:
* 74HC595 SKIFT register
* Lysdioder kopplat till var och en av utgångarna av skiftregister

*/
PIN ansluten till ST_CP av 74HC595
int latchPin = 12;
PIN ansluten till SH_CP av 74HC595
int clockPin = 11;
PIN ansluten till DS för 74HC595
int dataPin = 13.

hållare för infromation du kommer att passera till skiftande funktion
byte data.
byte dataArray [10].

void setup() {
ställa in stift att produktionen eftersom de behandlas i de viktigaste loopen
pinMode (latchPin, produktionen);
Serial.BEGIN(9600);

Binära notation som kommentar
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;

om (Serial.available() > 0) {
få inkommande byte:
inByte = Serial.read() - '0';
inByte = max (inByte, 0);
inByte = min (inByte, 9);

Ladda rätt ljus ordning från array
data = dataArray [inByte];
marken latchPin och hålla låg för så länge du överföring
digitalWrite (latchPin, 0);
flytta dem ut
shiftOut (dataPin, clockPin, data);
spärr stiftet hög retur till signal chip att det
inte längre behöver lyssna information
digitalWrite (latchPin, 1);
}
}

hjärtat av programmet
void shiftOut (int myDataPin, int myClockPin, byte myDataOut) {
Detta skiftar 8 bitar ut MSB först,
på stigande kanten av klockan,
klockan går på tomgång låg

inställningar för inre funktion
int jag = 0;
int pinState;
pinMode (myClockPin, produktionen);
pinMode (myDataPin, produktionen);

rensa allt ut i fall att
utarbeta skiftregister för lite skiftande
digitalWrite (myDataPin, 0);
digitalWrite (myClockPin, 0);

för varje bit i byte myDataOut
MÄRKA att vi är räknar ner i våra for-loop
Detta innebär att % 00000001 eller "1" kommer att gå igenom sådana
att det blir pin Q0 som lyser.
för (jag = 7; jag > = 0; i--) {
digitalWrite (myClockPin, 0);

om värdet som skickas till myDataOut och en bitmask resultatet
sant då... så om vi är på jag = 6 och vårt värde är
% 11010100 det skulle koden jämför det till % 01000000
och intäkterna till sätta pinState till 1.
om (myDataOut & (1 << jag)) {
pinState = 1;
}
annat {
pinState = 0;
}

Anger PIN-koden till högt eller lågt beroende på pinState
digitalWrite (myDataPin, pinState);
registret skiftar bitarna på upstroken av klocka pin
digitalWrite (myClockPin, 1);
noll data stift efter skift för att förhindra att blöda genom
digitalWrite (myDataPin, 0);
}

stoppa skiftande
digitalWrite (myClockPin, 0);
}

Se Steg
Relaterade Ämnen

Awesome tillbaka till framtiden kostym (Doc Brown och Delorean)

Vi samlar in filmer och film minnessaker, särskilt 80filmer. Vår 6-åriga dotter älskar de flesta av dem också. Hennes favorit karaktär i tillbaka till framtiden filmer är Doc Brown. Vi beslutade att detta skulle vara året för att göra en hyllning til...

Tillbaka till framtiden: Doc Browns tankeläsning hjälm

Jag älskar tillbaka till framtiden-serien. Det var definitivt en stapelvara växer upp, och för Halloween jag ville ha en kostym som grundar sig på denna.Nu, jag är ingen Marty McFly, jag är definitivt mer Doc Brown typ. Jag ser inte något liknande ho...

Doc Brown - akvarell målning

Akvarell målning av Doc Brown i tillbaka till framtiden.I filmen Doc visar Marty, med hjälp av en modell, hur man få lightning strike DeLorean och skicka honom tillbaka till framtiden. Lilla modellen bil sedan börjar brinna og Doc respons genom att g...

Doc Brown nyanser för ditt Gatto

Ja, det är en uppstoppad koala. Min katt var inte tillgängliga för en fotosession!Steg 1: material Silvertejp (om du har silver, kan du hoppa över ett steg :)Kartong Folie Normala tejp Något att rita med Nål/tack/spetsiga sakSteg 2: Mätningarna Att h...

5min Doc Browns nyanser från tillbaka till framtiden II

I morgon är dagen Doc och Marty ankommer från 1985 till 2015's Hill Valley. Framtiden är nu, och du måste vara fancy för det!Du är fortfarande i tid. I 5 minuter, med saker du har säker runt hemma, kan du göra dessa solglasögon. Observera de är bara...

Doc Brown - dra

Emmett Lathrop "Doc" brunt från tillbaka till framtiden 2 :-)Skapade denna ritning med hjälp av färgpennor (brunt, orange och gult).Steg 1: Steg 2: Steg 3: Steg 4: Steg 5: Steg 6:...

Tillbaka till framtiden "Plutonium Fuel Cell"

hur man bygger Plutonium bränslecellen används av Doc Brown i filmen "Tillbaka till framtiden".Min son hittade en försäljning uppvisning av den ursprungliga prop på Internet. Bränslecellen såldes tyvärr så att vi beslutat att bygga vår egen repl...

Driva din bil med FISSION REAKTORN!

Dess nu år 2015 och mänskligheten börjar göra betydande framsteg i produktionen och tillämpningen av alternativa bränslen. I den berömda trilogin, tillbaka till framtiden, var vi awestruck av tanken på framtidens teknik... Jo, är det här!I den minnes...

DIY tillbaka till den framtida Delorean

För det första, Happy Halloween alla!För detta år beslöt min pojkvän och jag att göra en tillbaka till temat framtid. Istället för att bara klä upp som Doc Brown och Marty McFly, ville vi gå den extra milen och bygga en Delorean. Nu det faktiskt tar...

3D tryckt tillbaka till framtiden tid Circuit klockan

Krets klocka visas följande via LED-displayer.Destination tid – (topp-röd)Destination är ett område som visar ett fast datum och tid. Använd det här området för att visa ett viktigt datum i ditt liv som bröllop, födelsedag eller det datum du först up...

Tillbaka till framtiden: Flux kondensator

Ända sedan jag först såg tillbaka till framtiden, blev jag förvånad över de prylar som användes. En som alltid slog mig lika fascinerande var Doc Browns uppfinning av Flux kondensatorn. Jag ville alltid bygga en replika av flux kondensatorn och detta...

Volkswagen Van från BTTF - Kitty Edition

Någon bättre varnar Doc Brown den bedårande kattunge kommer rätt för honom.Denna katt hideaway är bara en kartong målade för att se ut libyerna van. Tillbaka dörrarna är öppna men jag fann att min kattungar föredrog att gå in och avsluta van genom fö...

Tillbaka till den framtida Cykelkärra

Någonsin behövt till jazz upp din barnen Cykelkärra för en kommande rida? Jag har behov av varje år när vi deltar i Utahs antilop av Moonlight cykeltur. Det är en 24 mil tur som börjar kl 10 och kostymer uppmuntras. Årets tema var tillbaka till framt...

DIY Heavy Duty Craft knivar/skalpeller/Exactos/träbearbetning knivar/Carving verktyg/ETC

Jag älskar knivar. Det var allt. enkelt verktyg för 1, 2 delar, men så många fonctions. Jag fick en idé medan jag försökte hitta en skalpell för leatherworking och inte lyckas. Så, som min första instructable, jag visar dig hur man gör själv DIY tung...

Mini pajer!!!

Ett par dagar sedan jag hade skitkul hjärnan som endast kan jämföras med Doc Brown slår huvudet och uppfinna flux kondensatorn: om cupcakes är bättre än kakor, cup-pajer vore bättre än pajer??? Jag var inte säker, men fick reda. Och så, efter flera m...

Trä AT-AT Walker (handgjorda med gemensamma verktyg!)

Detta är en skala trä AT-AT Walker från Star Wars som jag gjort som en present till mina barn.Det görs nästan helt från rester av baltiska björkplywood och är 20 inches tall (ca 51 cm).Här är några av funktionerna:helt poseablePivotera "gull-wing&quo...

Läder portfölj

På papper ser ut en portfölj som ett mycket enkelt projekt. Det finns endast ett par bitar av läder och en bit av hårdvara. Det bör inte vara som hårt men det var flera små frågor som måste lösas längs vägen. Också när att göra ett mönster från klösa...

Hur man gör en läder handtag för en kartong art portfölj...

Någonsin försökt göra en 80 av 61 cm art portfölj utan handtag? Om man råkar vara välsignad med armar som en apa... inga problem.För att vara på den säkra sidan, men (och som en överraskning till min fru) gjorde jag en läder handtag att bära den förb...

Säkerhet Sensor

Vi har ett problem med brownie's på vårt hus. Min fru är en fantastisk kock och ofta gör bakade godsaker för hennes medarbetare. Problemet är att vi har flera munnar i huset, vilket innebär ännu mer händer att gå stjäla dem innan hon kan ta dem att a...