Turinys:
- Prekės
- 1 žingsnis: teorija
- 2 žingsnis: grandinės testavimas
- 3 žingsnis: viso papildymo PCB projektavimas
- 4 žingsnis: kitų PCB projektavimas
- 5 žingsnis: komponentų litavimas prie PCB
- 6 veiksmas: PCB apdailos krovimas
- 7 žingsnis: grandinių maitinimas
- 8 veiksmas: pagrindo 3D spausdinimas
- 9 žingsnis: Surinkimas
- 10 žingsnis: skaičiavimas ir palyginimas
- 11 žingsnis: Išvada
Video: 4 bitų dvejetainis skaičiuotuvas: 11 žingsnių (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Susidomėjau tuo, kaip kompiuteriai veikia iš esmės. Norėjau suprasti diskrečių komponentų naudojimą ir grandines, būtinas sudėtingesnėms užduotims atlikti. Vienas iš pagrindinių procesoriaus komponentų yra aritmetinis loginis blokas arba ALU, kuris atlieka operacijas su sveikais skaičiais. Norėdami atlikti šią užduotį, kompiuteriai naudoja dvejetainius skaičius ir loginius vartus. Viena iš paprasčiausių atliktų operacijų yra dviejų skaičių sujungimas sumavimo grandinėje. Šis „numberphile“vaizdo įrašas puikiai paaiškina šią sąvoką per „Domino“papildymą. Mattas Parkeris praplečia šią pagrindinę koncepciją ir sukuria „Domino“kompiuterio grandinę, naudodamas 10 000 domino. Viso asmeninio kompiuterio kūrimas iš domino yra absurdas, bet aš vis tiek norėjau suprasti diskrečių komponentų naudojimą šiai pridėjimo užduočiai atlikti. Vaizdo įrašuose loginiai vartai buvo sukurti iš domino, tačiau jie taip pat gali būti pagaminti iš pagrindinių komponentų, būtent tranzistorių ir rezistorių. Šio projekto tikslas buvo panaudoti šiuos atskirus komponentus, norint išmokti ir sukurti savo 4 bitų sumavimo skaičiuoklę.
Mano tikslai, susiję su šiuo projektu, buvo šie: 1) Sužinokite, kaip sukurti ir pagaminti pasirinktinį PCB2) Padarykite, kad dizainas būtų lengvai suvokiamas pridedant dvejetainius skaičius
Daug šio projekto įkvėpimo ir supratimo sėmėsi Simonas Innsas.
Prekės
Aš naudoju „Fritzing“kurdamas schemas, kurdamas ir gamindamas PCB
1 žingsnis: teorija
Skaičiuoti 10 bazėje yra paprasta, nes yra skirtingas sveikasis skaičius, reiškiantis dviejų sveikųjų skaičių sumą. Paprasčiausias pavyzdys:
1 + 1 = 2
Skaičiuojant 2 arba dvejetainėje bazėje naudojami tik 1 ir 0. Skaičiai 1 ir 0 naudojami skirtingiems sveikiesiems skaičiams ir jų sumoms atvaizduoti. Skaičiavimo 2 bazėje pavyzdys:
1+1 = 0 ir perkeliate 1 į kitą bitą
Sudėjus du bitus (A ir B) kartu, galima gauti 4 skirtingus rezultatus naudojant sumos ir perkėlimo (Cout) rezultatus. Tai parodyta lentelėje.
Loginiai vartai priima įvestis ir generuoja išvestį. Kai kuriuos pagrindinius loginius vartus sudaro vartai NOT, AND ir OR, kurie visi naudojami šiame projekte. Juos sudaro skirtingi tranzistorių ir rezistorių deriniai ir laidai. Pateikiamos kiekvieno vartų schemos.
Grįžtant prie lentelės, šių vartų derinys gali būti naudojamas norint gauti lentelės sumos rezultatus. Šis logikos derinys taip pat žinomas kaip išskirtiniai OR (XOR) vartai. Įvestis turi būti tiksliai 1, kad išvestis būtų 1. Jei abi įvestys yra 1, gaunama išvestis yra 0. Nešančiųjų bitų rezultatus galima pavaizduoti paprastu AND varteliu. Taigi, naudojant XOR su AND vartais, galima pavaizduoti visą lentelę. Tai žinoma kaip pusės papildymo priemonė, o schema parodyta aukščiau.
Norint pridėti didesnių dvejetainių skaičių, nešiklis turi būti įtrauktas kaip įvestis. Tai pasiekiama derinant 2 pusės papildymo grandines, kad būtų sukurtas pilnas papildiklis. Tada visus priedus galima kaskaduoti, kad būtų pridėti didesni dvejetainiai skaičiai. Savo projekte aš kaskadavau 4 pilnus priedus, kurie man leido turėti 4 bitų įvestis. „Full Adder“schema pateikta aukščiau.
Simonas Innsas turi puikų ir nuodugnesnį rašymą apie šią teoriją. Taip pat yra keletas PDF failų, kurie man pasirodė naudingi.
2 žingsnis: grandinės testavimas
Pirmasis žingsnis supratus, kaip veikia loginiai vartai ir „Full Adder“teorija, yra grandinės sukūrimas. Pradėjau rinkdamas visus reikalingus komponentus: 10K ir 1K rezistorius, NPN tranzistorius, „Breadboard“, „Jumperwires“. Aš sekiau kartu su viso papildymo atspaudu. Procesas buvo nuobodus, bet man pavyko gauti pilną pridėtojo veikimo grandinę. Aš susiejau įvestis aukštas arba žemas ir naudoju multimetrą, kad išbandyčiau išėjimus. Dabar buvau pasiruošęs išversti duonos lentą ir schemą į PCB.
3 žingsnis: viso papildymo PCB projektavimas
Norėdami sukurti PCB, naudoju tik „Fritzing“. Tai buvo mano pirmas kartas kuriant PCB ir ši programa atrodė patogiausia ir intuityviausia, turinti mažiausią mokymosi kreivę. Yra ir kitų puikių programų, tokių kaip „EasyEDA“ir „Eagle“, padedančios sukurti PCB. Naudodami „Fritzing“, galite pradėti kurti virtualioje duonos lentelėje arba schemoje, tada pereiti prie PCB. Šiam projektui panaudojau abu šiuos metodus. Kai būsite pasiruošę gaminti PCB, tai paprasta, kaip spustelėti mygtuką, kad galėtumėte eksportuoti failus ir įkelti juos tiesiai į „Ariter“, bendradarbiaujantį „Fritzing“gamintoją.
Pradėkite nuo schemos skirtuko, kad pradėtumėte procesą. Pirmiausia radau ir įterpiau visus komponentus į darbo vietą. Tada aš nupiešiau visus pėdsakus tarp komponentų. Aš būtinai pridėjau 5V įvestį ir įžeminau į atitinkamas vietas.
Sukurkite PCBI, spustelėję skirtuką PCB. Kai pereinate tiesiai iš schemos, susiduriate su netvarka su visais komponentais, sujungtais „ratsnest“linijomis, remiantis schemoje pėdsakais. Pirmas dalykas, kurį padariau, buvo pakeisti pilkos spalvos PCB dydį iki norimo dydžio ir pridėti montavimo skyles. Aš taip pat pridėjau 16 kaiščių įėjimui ir išėjimui. Tada aš pradėjau logiškai išdėstyti komponentus. Bandžiau sugrupuoti komponentus su jungtimis, kurios buvo arti viena kitos, kad būtų kuo mažiau atstumų. Aš žengiau papildomą žingsnį ir sugrupavau komponentus pagal loginius vartus. Vienas iš mano tikslų buvo vizualizuoti grandinės veikimą ir sekti „bitą“per grandinę. Po to aš panaudojau automatinio maršruto parinkimo funkciją, kuri vyksta automatiškai ir atkreipia optimizuotą sekimą tarp komponentų. Buvau skeptiškai įsitikinęs, kad šis procesas užbaigė visus reikiamus atsekimus, todėl aš dar kartą patikrinau ir perbraižiau atsekimus ten, kur jie turėjo būti. Laimei, automatinio nukreipimo funkcija padarė gana gerą darbą, ir aš turėjau ištaisyti tik keletą pėdsakų. Autorouteris taip pat padarė keletą keistų kampų su pėdsakais, o tai nėra „geriausia praktika“, bet man tai buvo gerai ir viskas vis tiek veikė gerai. Paskutinis dalykas, kurį padariau, buvo pridėti tekstą, kuris būtų atspausdintas kaip šilkografija. Įsitikinau, kad visi komponentai buvo paženklinti. Taip pat importavau pasirinktines loginių vartų nuotraukas, kad pabrėžčiau komponentų grupavimą. Paskutiniame paveikslėlyje aukščiau pavaizduotas šilkografija.
Sukurkite PCBI spustelėję mygtuką „Pagaminti“ekrano apačioje. Tai tiesiogiai nukreipė mane į „Aisler“svetainę, kur galėjau sukurti paskyrą ir įkelti visus savo „Fritzing“failus. Palikau visus numatytuosius nustatymus ir pateikiau užsakymą.
4 žingsnis: kitų PCB projektavimas
Likusios PCB, kurių man reikėjo, buvo įvesties/išvesties sąsajos plokštė ir IC plokštė. Aš sekiau šių lentų 3 žingsnį. Schemų pdf yra paskelbtas žemiau. IC atveju visus ryšius sukūriau naudodamas virtualios duonos lentos funkciją. Aš įtraukiau išsamumo schemą, bet galėjau pereiti tiesiai iš duonos lentos į PCB skirtuką, kuris buvo gana kietas. Prieš įkeliant ir užsisakant „Aisler“, prie šiluminio ekrano I/O sąsajos plokštėje taip pat pridėjau 10 bazę prie 2 bazės konversijų diagramos.
5 žingsnis: komponentų litavimas prie PCB
Visi PCB atvyko ir buvau tikrai sužavėtas kokybe. Aš neturėjau jokios patirties su kitais gamintojais, bet nedvejodamas vėl naudosiu „Aisler“.
Kita užduotis buvo lituoti visus komponentus, o tai buvo sunkus procesas, tačiau mano litavimo įgūdžiai labai pagerėjo. Pradėjau nuo pilnų sumavimo plokščių ir lituodavau komponentus, pradedant nuo tranzistorių, tada 1K rezistorių, tada 10K rezistorių. Aš laikiausi panašaus metodo likusiems komponentams lituoti ant I/O ir IC plokštės. Užbaigus kiekvieną „Full Adder“plokštę, išbandžiau juos tuo pačiu metodu, kaip ir „Full Adder“duonos lentos. Keista, bet visos plokštės veikė teisingai be problemų. Tai reiškė, kad lentos buvo nukreiptos teisingai ir kad jos buvo lituojamos teisingai. Į kitą žingsnį!
6 veiksmas: PCB apdailos krovimas
Kita užduotis buvo lituoti visus antraštės kaiščius prie kiekvienos plokštės. Man taip pat reikėjo pridėti jungiamuosius laidus tarp tinkamo antraštės kaiščio ir „Full Adder“plokščių įėjimų/išėjimų (A, B, Cin, V+, GND, Sum, Cout). Šio žingsnio būtų galima išvengti, jei kiekvienam papildymo grandinės lygiui sukurtumėte skirtingas PCB, tačiau norėjau sumažinti dizainą ir išlaidas, sukurdamas tik vieną pilną papildomą PCB. Dėl to, norint prisijungti prie šių įėjimų/išėjimų, reikia jungiamųjų laidų. Pateikta schema yra tai, kaip aš atlikau šią užduotį ir kokie smeigtukai buvo naudojami kiekvienam „Full Adder“plokščių lygiui. Vaizdai rodo, kaip aš lituodavau kiekvienos plokštės trumpiklius. Pradėjau lituoti laisvus laidus prie tinkamų kaiščių antraštėje. Tada lituosiu antraštę prie PCB. Po to, kai antgalių kaiščiai su jungiamosiomis vielomis buvo lituojami vietoje, laisvus jungiamųjų laidų galus litavau prie tinkamų PCB laidų. Aukščiau esančiame paveikslėlyje pavaizduotas antraštės kaiščių iš arti vaizdas, prie jų prilituoti jungiamieji laidai.
7 žingsnis: grandinių maitinimas
Aš planavau šiam projektui naudoti 12 V nuolatinės srovės statinės lizdo maitinimo šaltinį, todėl suprojektavau įvesties/išvesties sąsajos plokštę, kad būtų galima įvesti nuolatinės srovės statinės lizdą/jungtį. Kadangi aš naudoju tą pačią įvesties/išvesties plokštę ir norėjau naudoti vienintelį maitinimo šaltinį, man reikėjo reguliuoti įtampą iki 5 V, nes tai yra maksimali SN7483A IC įvestis. Norėdami tai padaryti, man reikėjo 5 V reguliatoriaus ir jungiklio, galinčio perjungti nuo 12 V iki 5 V. Aukščiau pateiktoje schemoje parodyta, kaip sujungiau maitinimo grandinę.
8 veiksmas: pagrindo 3D spausdinimas
Dabar, kai visi laidai ir litavimas yra baigti, turėjau išsiaiškinti, kaip visa tai bus laikoma kartu. Aš pasirinkau CADing ir 3D spausdinimą, kuris atitiktų ir parodytų visas šio projekto dalis.
Man reikėjo vietų PCB montuoti varžtais ir atramomis. Sudėtiniai priedai yra vizualiai patraukliausi ir norėjau, kad jie būtų rodomi, kai jie nenaudojami, todėl norėjau vietos, kur būtų galima laikyti IC PCB. Man reikėjo pritaikyti maitinimo grandinę su jungiklio išjungimais ir nuolatinės srovės statinės lizdu/jungtimi. Galiausiai norėjau kažkokio korpuso vitrinos, kad dulkės nesikauptų atvirose PCB, todėl man reikėjo vietos, kurioje būtų galima sėdėti.
3D modeliavimas Aš panaudojau „Fusion360“kuriant pagrindą. Pradėjau nuo PCB matmenų ir tvirtinimo angų tarpo. Po to aš naudoju keletą eskizų ir ekstruzijų, kad nustatyčiau pagrindo aukštį ir dydį su PCB tvirtinimo taškais. Tada aš padariau gaubto ir maitinimo grandinės išpjovas. Tada aš padariau vietą, kur laikyti IC PCB, kai nenaudojamas. Galiausiai pridėjau keletą apdailos briaunos detalių ir nusiunčiau į „Cura“, mano pjaustymo programinę įrangą.
Spausdinimas Pasirinkau juodą PLA giją. Spausdinimas užtruko šiek tiek daugiau nei 6 valandas ir pasirodė puikus. Keista, kad visi matmenys buvo teisingi ir viskas atrodė taip, kaip dera. Aukščiau esančiame paveikslėlyje parodyta spauda po to, kai pridėjau atramas į tvirtinimo angas. Jie puikiai tiko!
9 žingsnis: Surinkimas
Įdėkite atramas. Visas atramas įdėjau į pagrindo tvirtinimo angas.
Įdėkite maitinimo grandinę į pagrindą. Aš viską sujungiau ir ištraukiau visus komponentus per jungiklio angą. Tada įkišau maitinimo lizdą/adapterį į pagrindo galą. Įkišau 5V reguliatorių į jo angą ir galiausiai jungiklį buvo galima įstumti į padėtį.
Sumontuokite įvesties/išvesties plokštę. Įdėjau IC PCB į jo saugyklą ir ant įvesties įvesties/išvesties sąsajos PCB. Aš prisukau PCB, naudodamas 4x M3 varžtus ir šešiakampę tvarkyklę. Galiausiai aš prijungiau DC statinės lizdą prie PCB.
Sujunkite sumavimo PCB. Aš sudėjau pirmąjį papildymą į vietą. Aš įsukau PCB galinę dalį į galines tvirtinimo angas su 2 atramomis. Aš kartojau šį procesą, kol paskutinis papildiklis buvo vietoje ir pritvirtinau dar 2 M3 varžtais.
Padarykite aptvarą. Korpusui naudojau 1/4 colio akrilą. Išmatavau galutinį projekto aukštį ir, atsižvelgdamas į CAD matmenis, išpjoviau 5 gabalus šonams ir viršuje, kad būtų paprasta dėžutė su atviru dugnu. Klijavimui naudoju epoksidą Galiausiai dešinėje pusėje nušlifavau mažą pusės apskritimo išpjovą, kad tilptų jungiklis.
Paruošta skaičiuoti
10 žingsnis: skaičiavimas ir palyginimas
Prijunkite naują skaičiuotuvą ir pradėkite pridėti! Diagrama nuo 10 iki 2 bazės gali būti naudojama greitai konvertuoti tarp dvejetainių ir sveikųjų skaičių. Man labiau patinka nustatyti įėjimus, tada paspausti „lygus“, pasukant maitinimo jungiklį ir stebint dvejetainį šviesos diodų išėjimą.
Diskrečių komponentų palyginimas su integruotu grandynu. Dabar galite išardyti visus priedus ir prijungti SN7483A IC prie įvesties/išvesties plokštės. (Nepamirškite pasukti jungiklio priešinga kryptimi, kad IC maitintų 5 V, o ne 12 V įtampa). Galite atlikti tuos pačius skaičiavimus ir gauti tuos pačius rezultatus. Gana įspūdinga manyti, kad tiek atskirieji komponentai, tiek pridėtoji ir IC veikia vienodai tik labai skirtingo dydžio skalėje. Nuotraukose rodomi tie patys grandinių įėjimai ir išėjimai.
11 žingsnis: Išvada
Tikiuosi, kad jums patiko šis projektas ir sužinojote tiek, kiek aš. Labai malonu išmokti kažką naujo ir paversti jį unikaliu projektu, kuriam taip pat reikia išmokti naujų įgūdžių, tokių kaip PCB projektavimas/gamyba. Visos schemos yra išvardytos žemiau. Visiems besidomintiems taip pat galiu susieti savo PCB „Gerber“failus, kad galėtumėte pasidaryti savo 4 bitų dvejetainį skaičiuotuvą. Laimingas kūrimas!
Rekomenduojamas:
„Arduino“skaičiuotuvas naudojant 4X4 klaviatūrą: 4 žingsniai (su paveikslėliais)
„Arduino“skaičiuotuvas naudojant 4X4 klaviatūrą: Šioje pamokoje mes sukursime savo skaičiuoklę su „Arduino“. Vertės gali būti siunčiamos per klaviatūrą (4 × 4 klaviatūra), o rezultatus galima peržiūrėti LCD ekrane. Šis skaičiuotuvas gali atlikti paprastas operacijas, tokias kaip sudėjimas, atėmimas, daugiklis
„Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro pamoka: 4 žingsniai
„Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio pagreičio matuoklio pamoka: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromašinis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis
8 bitų „Arduino“dvejetainis skaitiklis: 6 žingsniai
8 bitų „Arduino“dvejetainis skaitiklis: 8 bitų „Arduino“dvejetainis skaitiklis skaičiuoja nuo 0 iki 255. Šis projektas yra skaitiklis su 8 šviesos diodais, skirtas prijungti prie „Arduino“kaiščio 5, 3, 4, 7, 10, 11, 12 & 13, kad būtų skaičiuojama iš dešinės į kairę generuojant kodus nuo nulio iki 255
4 bitų dvejetainis skaitiklis aukštyn/žemyn: 11 žingsnių
4 bitų dvejetainis skaitiklis aukštyn/žemyn: Skaitiklis yra 4 bitų dvejetainis skaitiklis aukštyn/žemyn. Tai reiškia, kad šis skaitiklis gali skaičiuoti nuo 0 iki 15 arba nuo 15 iki 0, nes jis skaičiuojamas aukštyn arba žemyn. Projektas yra dvejetainis skaitiklis, pagamintas naudojant 4029, 555 ir 4-10 mm LED, daugiausia naudojant dvigubą panardinimą
4 bitų dvejetainis papildymas: 3 žingsniai
4 bitų dvejetainis papildinys: Sveiki visi! Sveiki atvykę į mūsų pirmąjį pamoką! Šiandien mes jums parodysime, kaip sukurti 4 bitų dvejetainį papildymą su paprastais loginiais vartais. Tai yra serijos dalis, kurią mes darome, kad sukurtume funkcionalų skaičiuotuvą, todėl laukite daugiau