Läs binär/Hex miniatyrhjul växla med en AVR Microcontroller (2 / 3 steg)
Steg 2: Binary växlar andTruth tabeller
En kort binära utvikning
För att förstå hur fyra bitar kan representera 16 olika nummer, måste vi veta lite om hur binära kodning gör sitt jobb för denna switch (och i allmänhet).
Från den första bilden bör du kunna se finns det faktiskt fem kuddar kommer ut från baksidan av växeln. Dessa är märkta 1, 2, 4, 8 och C. C anses vara en gemensam terminal. Det vill säga, är det en del av växlingen kretsen som alltid är ansluten till oavsett växlar är vänt på i växeln. I min setup, jag har "C" pad ansluten till marken och någon ström kommer att flyta från de öppna växlarna och ut C terminalen och ner till marken. Därför bidra "C" pad inte till bitar används i kodning siffran på framsidan ratten; Detta är diskbänken för aktuell för växling kretsar inuti växeln tumhjulet.
1, 2, 4 och 8 kuddar koda bitarna för nummer. I binärt, placering och antal 1 och 0 i en byte används för att fastställa identiteten hos en enskild enhet i en teckenuppsättning eller för våra ändamål, antalet markerat på ratten. Eftersom vi har fyra bitar i vår uppsättning, det maximala antalet unika kombination av ettor och nollor är 24 = 16. Det bästa sättet att komma ihåg detta är att öka antalet möjligheter (här har vi två möjligheter: en 1 eller 0) av antalet bitar (här har vi fyra bitar: kuddar 1, 2, 4 och 8). om vi skulle skriva ut alla unika kombinationer av 1 och 0 på fyra ställen det skulle se ut så här:
Nr 1 en 1 två 1 tre 1 fyra 1---------------0000 0001 0011 0111 1111 0010 0101 1011 0100 1001 1101 1000 0110 1110 1010 1100
Så vi har 16 unika möjligheter arrangera 0 och 1 och bekvämt, denna växel counter går från 0 till 15. Det är trevligt när en plan kommer tillsammans. Men du kanske undrar om det finns ett mönster för hur var och en av dessa fyra bitars arrangemang (kallas en Nibble, förresten) representera siffrorna. Jag är glad att du frågade.
Kom ihåg 1, 2, 4 och 8 beteckningar för pads? Det är inte nyckfull märkning av marknadsföring folk. Låt oss titta igen på våra mönster av siffror. Varje bit plats har en "plats" som kan ses som det är "makten av två" läge behandlingen med den minst signifikanta biten till höger börjar på 0. lite. Det vill säga, vi använder ett 0-baserade index och börja räkna från noll till en till två, etc, i stället för inventering i den vernacular där vi skulle börja med en. I så fall 20 = 1, 21 = 2, 22 = 4, och så vidare. Ordna detta från höger till vänster har vi något som ser ut så här för fyra-bitars mönster 0101:
Plats -> 8 4 2 1 0 1 0 1
För att avgöra vilket nummer de "0101" representerar, är allt vi behöver göra hitta varje plats som har en 1 i den och lägga till det är kraften i två nummer. I vårt exempel finns det de i 1 och 4 plats. Lägga till 1 + 4 och du får 5, så, det binära talet 0101 representerar decimal nummer 5. Är inte det spännande? Låt oss prova en, här en en full 8 bitar, även om vår växel har endast fyra bitar. Det är god praxis och är något du kan imponera med din nästa dag.
Vad är decimalt nummer som 01101110 föreställer? Här är det på sina ställen:
128 64 32 16 8 4 2 1 0 1 1 0 1 1 1 0
Hitta de platser som har 1: s och lägg dem placera siffror tillsammans. Det skulle vara 64 + 32 + 8 + 4 + 2 = 110. Ganska lätt, va? Att veta detta nu vi kan ta vår 4-bitars switch och göra en matris av pin-koder som har en 1 (logiska i digital är en högre spänning än en logisk nolla, i vårt fall 5V och 0V respektive) mot ett decimaltal som de representerar. Se 2: a bilden nedan för en tabell som jag gjorde för att representera kuddar på växeln som skulle vara en logisk 1 beroende på antalet valts på framsidan av ratten.
Nu kan vi börja bygga saker. Följ mig till nästa steg!