Inhoudsopgave:

Binair naar decimale rekenmachine - Ajarnpa
Binair naar decimale rekenmachine - Ajarnpa

Video: Binair naar decimale rekenmachine - Ajarnpa

Video: Binair naar decimale rekenmachine - Ajarnpa
Video: binair naar decimaal omzetten 2024, Juli-
Anonim
Binaire naar decimale rekenmachine
Binaire naar decimale rekenmachine

Voor klas elf computertechniek moest ik beslissen over een afstudeerproject. In het begin wist ik niet wat ik moest maken omdat er bepaalde hardwarecomponenten in moesten. Na een paar dagen zei mijn klasgenoot dat ik een project moest doen op basis van de vier-bits opteller die we een paar maanden geleden hadden gemaakt. Na die dag kon ik met mijn vier-bits opteller een binair naar decimaal converter maken.

Het maken van dit project vereist veel onderzoek, waarbij vooral wordt begrepen hoe een volledige en halve opteller werkt.

Stap 1: Benodigde materialen

Voor dit project heb je de volgende materialen nodig:

  • Arduino UNO
  • vier breadboards
  • negen volt batterij
  • zeven XOR-poorten (2 XOR-chips)
  • zeven AND-poorten (2 AND-chips)
  • drie OF-poorten (1 OF-chip)
  • vijf LED's
  • acht weerstanden van 330 ohm
  • LCD scherm
  • vier mannelijke-vrouwelijke draden
  • veel mannelijke-mannelijke draden
  • draad stripper
  • gemeenschappelijke anode RGB LED

Kosten (exclusief draden): $ 79,82

Alle materiaalkosten werden gevonden op ABRA-elektronica.

Stap 2: 4 Bit Adder begrijpen

4 Bit Adder begrijpen
4 Bit Adder begrijpen

Voordat we beginnen, moet u begrijpen hoe een vier-bits opteller werkt. Wanneer we voor het eerst naar deze schakeling kijken, zult u merken dat er een halve optellerschakeling en drie volledige optellerschakelingen zijn. Omdat een vier-bits opteller een combinatie is van een volledige en een halve opteller, heb ik een video geplaatst waarin wordt uitgelegd hoe de twee soorten optellers werken.

www.youtube.com/watch?v=mZ9VWA4cTbE&t=619s

Stap 3: De 4-bits opteller bouwen

De 4-bits opteller bouwen
De 4-bits opteller bouwen
De 4-bits opteller bouwen
De 4-bits opteller bouwen

Uitleggen hoe je een vier-bits opteller moet bouwen is erg moeilijk, omdat er veel bedrading bij komt kijken. Op basis van deze foto's kan ik je wat trucjes geven om dit circuit te bouwen. Ten eerste kan de manier waarop u uw logica-chips rangschikt erg belangrijk zijn. Om een nette schakeling te hebben, bestelt u uw chips in deze volgorde: XOR, AND, OR, AND, XOR. Door deze volgorde te hebben, wordt uw circuit niet alleen netjes, maar kunt u het ook heel gemakkelijk organiseren.

Een andere geweldige truc is om elke opteller één voor één en van de rechterkant naar de linkerkant te bouwen. Een veelgemaakte fout die veel mensen hebben gemaakt, is dat ze alle adders tegelijkertijd doen. Door dit te doen, zou je de bedrading kunnen verknoeien. Een fout in de 4-bits opteller kan ervoor zorgen dat het hele ding niet werkt,

Stap 4: Stroom en aarde leveren aan het circuit

Gebruik de 9-volt batterij om stroom en aarde te leveren aan het breadboard dat de vierbits-opteller gaat bevatten. Voor de resterende 3 breadboards, zorg voor stroom en aarde via de Arduino UNO.

Stap 5: Bedrading LED's

Bedrading LED's
Bedrading LED's

Voor dit project zullen de vijf LED's worden gebruikt als invoer- en uitvoerapparaat. Als uitvoerapparaat zal de LED een binair getal oplichten, afhankelijk van de invoer die in de vierbits-opteller is geplaatst. Als invoerapparaat kunnen we, afhankelijk van welke LED's aan en uit zijn, het geconverteerde binaire getal als een decimaal getal op het LCD-scherm projecteren. Om de LED te bedraden, sluit je een van de sommen gevormd door de vier bits opteller aan op de anodepoot van de LED (lange LED-poot), maar plaats tussen deze twee een weerstand van 330 ohm. Verbind vervolgens de kathodepoot van de LED (korte ledpoot) met de grondrail. Sluit tussen de weerstand en de somdraad een mannelijke naar mannelijke draad aan op een digitale pin op de Arduino UNO. Herhaal deze stap voor de drie resterende bedragen en de carry-out. De digitale pinnen die ik gebruikte waren 2, 3, 4, 5 en 6.

Stap 6: Bedrading Common Anode RGB LED

Bedrading Common Anode RGB LED
Bedrading Common Anode RGB LED

Voor dit project is het doel van deze RGB-LED om van kleur te veranderen wanneer een nieuw decimaal getal op het LCD-scherm wordt gevormd. Als je voor het eerst naar de gemeenschappelijke anode RGB-led kijkt, zul je merken dat deze 4 pootjes heeft; een roodlichtbeen, een kracht(anode)been, een groenlichtbeen en een blauwlichtbeen. De voedingspoot (anode) wordt verbonden met de voedingsrail en ontvangt 5 volt. Verbind de overige drie gekleurde poten met weerstanden van 330 ohm. Gebruik aan het andere uiteinde van de weerstand een mannelijke naar mannelijke draad om deze aan te sluiten op een PWM-digitale pin op de Arduino. De digitale PWM-pin is elke digitale pin met een kronkelende lijn ernaast. De PWM-pinnen die ik gebruikte waren 9, 10 en 11.

Stap 7: Bedrading van het LCD-scherm

Bedrading van het LCD-scherm
Bedrading van het LCD-scherm

Voor dit project projecteert het LCD-scherm het geconverteerde binaire getal in een decimaal. Als we naar het LCD-scherm kijken, ziet u 4 mannelijke pinnen. Die pinnen zijn VCC, GND, SDA en SCL. Gebruik voor de VCC een mannelijke naar vrouwelijke draad om de VCC-pin aan te sluiten op de voedingsrail op het breadboard. Dit levert 5 volt aan de VCC-pin. Sluit de GND-pin aan op de grondrail met een mannelijke naar vrouwelijke draad. Verbind de SDA- en SCL-pinnen met een analoge pin met een mannelijke naar vrouwelijke draad. Ik heb de SCL-pin aangesloten op analoge pin A5 en de SDA-pin op analoge pin A4.

Stap 8: De code schrijven

Nu ik het bouwgedeelte van dit project heb uitgelegd, laten we nu beginnen met coderen. Ten eerste moeten we eerst de volgende bibliotheken downloaden en importeren; LiquidCrystal_I2C-bibliotheek en de draadbibliotheek.

#include #include

Zodra u dit hebt gedaan, moet u alle benodigde variabelen declareren. In elk type code moet u eerst uw variabelen declareren.

const int cijfer1 = 2;

const int cijfer2 = 3;

const int cijfer3 = 4;

const int cijfer4 = 5;

const int cijfer5 = 6;

int cijfersom1 = 0;

int cijfersom2 = 0;

int cijfersom3 = 0;

int cijfersom4 = 0;

int cijfersom5 = 0;

char array1="Binair naar Decimaal";

char array2="Converter";

int-tim = 500; //de waarde van de vertragingstijd

const int redPin = 9;

const int greenPin = 10;

const int bluePin = 11;

#define COMMON_ANODE

LiquidCrystal_I2C lcd (0x27, 16, 2);

In de void setup() declareer je het pintype voor al je variabelen. Je zult ook een serieel begin gebruiken omdat we analogWrite() gebruiken

ongeldige setup()

{

Serieel.begin(9600);

pinMode(cijfer1, INPUT);

pinMode(cijfer2, INPUT);

pinMode(cijfer3, INPUT);

pinMode(cijfer4, INPUT);

pinMode(cijfer5, INPUT);

lcd.init();

lcd.achtergrondverlichting();

pinMode (redPin, UITGANG);

pinMode(greenPin, OUTPUT);

pinMode (bluePin, UITGANG);

In de void setup() heb ik een for-lus gemaakt om een bericht te maken met de naam van dit project. De reden waarom het niet in de lege lus() is, is dat als het zich in die lege ruimte bevindt, het bericht zich blijft herhalen

lcd.setCursor(15, 0); // zet de cursor op kolom 15, regel 0

for (int positionCounter1 = 0; positionCounter1 < 17; positionCounter1++)

{

lcd.scrollDisplayLeft(); // Schuift de inhoud van het scherm één spatie naar links.

lcd.print(array1[positionCounter1]); // Druk een bericht af op het LCD-scherm.

vertraging (tijd); // wacht 250 microseconden

}

lcd.wissen(); // Wist het LCD-scherm en plaatst de cursor in de linkerbovenhoek.

lcd.setCursor (15, 1); // zet de cursor op kolom 15, regel 1

for (int positionCounter = 0; positionCounter < 9; positionCounter++)

{

lcd.scrollDisplayLeft(); // Schuift de inhoud van het scherm één spatie naar links.

lcd.print(array2[positionCounter]);// Druk een bericht af op het LCD-scherm.

vertraging (tim);//wacht 250 microseconden

}

lcd.wissen(); // Wist het LCD-scherm en plaatst de cursor in de linkerbovenhoek.

}

Nu we klaar zijn met de void setup(), gaan we verder met de void loop(). In de void-lus heb ik verschillende if-else-instructies gemaakt om ervoor te zorgen dat wanneer bepaalde lampjes aan of uit zijn, een bepaald decimaal getal op het display wordt weergegeven. Ik heb een document bijgevoegd dat laat zien wat er in mijn void-lus zit en de vele andere voids die ik heb gemaakt. Klik hier om naar het document te gaan

Nu hoef je alleen nog maar de code uit te voeren en te genieten van je nieuwe binaire naar decimale converter.

Aanbevolen: