Inhoudsopgave:
- Benodigdheden
- Stap 1: Verzamel uw benodigdheden op TinkerCad
- Stap 2: Regel uw benodigdheden
- Stap 3: De draden aansluiten
- Stap 4: De code schrijven
- Stap 5: De code doorbreken
- Stap 6: Hoe werkt de hardware van deze rekenmachine?
- Stap 7: Volledig voorbeeld van de rekenmachine
- Stap 8: Mijn inspiratie voor deze code
Video: LCD-rekenmachine door Jai Mishra - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Tinkercad-projecten »
Dit is een zeer nuttig project dat u leert hoe u uw eigen rekenmachine kunt maken. Je kunt deze rekenmachine online of in het echt maken met behulp van extra benodigdheden, maar voor nu gaan we ons alleen concentreren op het maken van een online rekenmachine.
Benodigdheden
- Arduino Uno R3
- 220 Ohm weerstand
- 4*4 toetsenbord
- 16*2 LCD
- Stelletje draden om het circuit aan te sluiten
Stap 1: Verzamel uw benodigdheden op TinkerCad
Zorg ervoor dat al uw benodigdheden beschikbaar zijn voordat we beginnen met stap 2 om stress en fouten te verminderen. Zorg ervoor dat u ook de juiste benodigdheden gebruikt, sommige componenten op deze afbeelding hierboven zijn vergelijkbaar met andere componenten, dus meng u er niet tussen. Gebruik de afbeelding hierboven als leidraad.
Stap 2: Regel uw benodigdheden
Het regelen van uw benodigdheden is de beste manier om een voorbeeld te zien van hoe uw rekenmachine eruit zou kunnen zien. U kunt elk type rekenmachineontwerp maken dat u maar wilt, maar zorg ervoor dat de rekenmachine er natuurlijk uitziet en dat gebruikers het ontwerp kunnen begrijpen en niet in de war raken. Ik gebruikte een typisch stijlvol rekenmachineontwerp dat voor iedereen effectief en begrijpelijk is. Je kunt mijn ontwerp kiezen of je eigen ontwerp maken, maar wat het ook is, wees creatief en veel succes!
Stap 3: De draden aansluiten
Het aansluiten van de draden is een lastige klus als je de betekenis erachter niet begrijpt. In deze bedrading proberen we alle vier de componenten met elkaar te verbinden, zodat ze als een groep kunnen werken wanneer het tijd is om de code te schrijven. Als er geen draden zijn, gaat er geen stroom vloeien, wat leidt tot een mislukt project. Zorg ervoor dat uw draden goed zijn aangesloten zonder misverstanden.
Nadat u klaar bent met het aansluiten van de draden, moet u ervoor zorgen dat uw draden netjes en georganiseerd zijn, zodat het voor u en anderen gemakkelijker is om te begrijpen wat er precies aan de hand is in de hardware van deze rekenmachine. Zoals ik al eerder zei, je kunt mijn techniek gebruiken om je draden te ordenen of je kunt er zelf een maken, maar wat je ook besluit te doen, zorg ervoor dat ze met wat ruimte worden gemonteerd.
Stap 4: De code schrijven
#erbij betrekken
#include #include
LiquidCrystal-lcd (13, 12, 11, 10, 9, 8);
lange eerste = 0; lange seconde = 0; dubbel totaal = 0;
teken customKey; const byte RIJEN = 4; constbyte COLS = 4;
char keys [ROWS][COLS] = { {'1', '4', '7', '/'}, {'2', '5', '8', '+'}, {'3', '6', '9', '-'}, {'C', '0', '=', '*'} }; byte rowPins [ROWS] = {7, 6, 5, 4}; // maak verbinding met de rij-pinouts van de toetsenbordbyte colPins [COLS] = {3, 2, 1, 0}; // verbind met de kolom pinouts van het toetsenbord
// initialiseer een instantie van klasse NewKeypad Keypad customKeypad = Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS);
void setup() { lcd.begin (16, 2); // start lcd voor (int i=0;i<=3;i++); lcd.setCursor(0, 0); lcd.print("Rekenmachine"); lcd.setCursor(0, 1); lcd.print("Door Jai Mishra"); vertraging (4000); lcd.wissen(); lcd.print("Eindproject"); vertraging (2500); lcd.wissen(); lcd.setCursor(0, 0); }
lege lus() {
customKey = customKeypad.getKey(); switch(customKey) { case '0' … '9': // Dit blijft de eerste waarde verzamelen totdat een operator wordt ingedrukt "+-*/" lcd.setCursor (0, 0); eerste = eerste * 10 + (customKey - '0'); lcd.print(eerste); pauze;
geval '+': eerste = (totaal != 0 ? totaal: eerst); lcd.setCursor(0, 1); lcd.print("+"); tweede = SecondNumber(); // haal het verzamelde tweede nummer totaal = eerste + tweede; lcd.setCursor(0, 3); lcd.print (totaal); eerste = 0, tweede = 0; // reset waarden terug naar nul voor de volgende gebruikspauze;
geval '-': eerste = (totaal != 0 ? totaal: eerst); lcd.setCursor(0, 1); lcd.print("-"); tweede = SecondNumber(); totaal = eerste - tweede; lcd.setCursor(0, 3); lcd.print (totaal); eerste = 0, tweede = 0; pauze;
case '*': eerste = (totaal != 0 ? totaal: eerst); lcd.setCursor(0, 1); lcd.print("*"); tweede = SecondNumber(); totaal = eerste * tweede; lcd.setCursor(0, 3); lcd.print (totaal); eerste = 0, tweede = 0; pauze;
case '/': eerste = (totaal != 0 ? totaal: eerst); lcd.setCursor(0, 1); lcd.print("/"); tweede = SecondNumber(); lcd.setCursor(0, 3);
seconde == 0 ? lcd.print("Ongeldig"): totaal = (float)first / (float)second;
lcd.print (totaal); eerste = 0, tweede = 0; pauze;
geval 'C': totaal = 0; lcd.wissen(); pauze; } }
lang SecondNumber() { while(1) { customKey = customKeypad.getKey(); if (customKey >= '0' && customKey <= '9') { second = second * 10 + (customKey - '0'); lcd.setCursor(0, 2); lcd.print (tweede); }
if(customKey == '=') breken; // keer terug; } keer terug als tweede; }
Stap 5: De code doorbreken
We hebben de waarden voor de computer geïnitialiseerd om te begrijpen
#erbij betrekken
#include #include
LiquidCrystal-lcd (13, 12, 11, 10, 9, 8);
lange eerste = 0; lange seconde = 0; dubbel totaal = 0;
teken customKey; const byte RIJEN = 4; constbyte COLS = 4;
We vertelden de computer met welke cijfers en tekens het toetsenbord zou moeten werken
char-toetsen [ROWS][COLS] = { {'1', '2', '3', '/'}, {'4', '5', '6', '+'}, {'7', '8', '9', '-'}, {'C', '0', '=', '*'} };
We hebben de rijen en kolommen van het toetsenbord gefinaliseerd en welk nummer in welke kolom komt, enz
byte rowPins [ROWS] = {7, 6, 5, 4}; byte colPins [COLS] = {3, 2, 1, 0};
We hebben de intro gemaakt, of het aan/uit-scherm voor de computer (je kunt er je eigen naam op schrijven)
void setup(){ lcd.begin (16, 2); for(int i=0;i<=3;i++); lcd.setCursor(0, 0); lcd.print("Rekenmachine"); lcd.setCursor(0, 1); lcd.print("Door Jai Mishra"); vertraging (4000); lcd.wissen(); lcd.print("Eindproject"); vertraging (2500); lcd.wissen(); lcd.setCursor(0, 0); }
We creëren de betekenis en de formule voor elke bewerking in de rekenmachine, zodat de computer begrijpt welke formule moet worden gebruikt wanneer de gebruiker op "+" op de rekenmachine drukt, enz
{ case '0' … '9': lcd.setCursor(0, 0); eerste = eerste * 10 + (customKey - '0'); lcd.print(eerste); pauze;
case '/': eerste = (totaal != 0 ? totaal: eerst); lcd.setCursor(0, 1); lcd.print("/"); tweede = SecondNumber(); lcd.setCursor(0, 3);
seconde == 0 ? lcd.print("Ongeldig"): totaal = (float)first / (float)second;
lcd.print (totaal); eerste = 0, tweede = 0; pauze; geval '+': eerste = (totaal != 0 ? totaal: eerst); lcd.setCursor(0, 1); lcd.print("+"); tweede = SecondNumber(); lcd.setCursor(0, 3); lcd.print (totaal); eerste = 0, tweede = 0; pauze;
geval '-': eerste = (totaal != 0 ? totaal: eerst); lcd.setCursor(0, 1); lcd.print("-"); tweede = SecondNumber(); totaal = eerste - tweede; lcd.setCursor(0, 3); lcd.print (totaal); eerste = 0, tweede = 0; pauze;
case '*': eerste = (totaal != 0 ? totaal: eerst); lcd.setCursor(0, 1); lcd.print("*"); tweede = SecondNumber(); totaal = eerste * tweede; lcd.setCursor(0, 3); lcd.print (totaal); eerste = 0, tweede = 0; pauze;
geval 'C': totaal = 0; lcd.wissen(); pauze; } }
De code is heel eenvoudig, je hoeft hem alleen maar te proberen te begrijpen en dan kan alles eenvoudig worden gedaan. Als er problemen zijn met de code, stuur me dan een e-mail
Stap 6: Hoe werkt de hardware van deze rekenmachine?
Deze rekenmachine maakt gebruik van een LCD, een toetsenbord, een Arduino-bord en een weerstand van 220 ohm. Al deze componenten zijn afzonderlijk, maar zijn verbonden met de draden van de Arduino naar het toetsenbord en het LCD-scherm. Verschillende delen van het LCD-scherm zijn verbonden met het Arduino-bord dat ze uiteindelijk beide verbindt met het toetsenbord. Na de verbinding doet de codering al het werk en geeft elke bediening en knop op het toetsenbord een taak om te volgen.
Stap 7: Volledig voorbeeld van de rekenmachine
Zo ziet ons eindproject eruit! Als je code niet werkt, of er zijn technische problemen, stuur me dan een e-mail en ik zal mijn best doen om je te helpen de beste rekenmachine te maken!
Stap 8: Mijn inspiratie voor deze code
Ik werd geïnspireerd door de video hierboven over het maken van een rekenmachine op tinkercad! Ik heb niets gekopieerd en geplakt, maar ik heb zijn idee van de rekenmachine en het begrip van de code gebruikt.
Aanbevolen:
Een oud radiocircuit van stroom voorzien (aangedreven door batterijen): 4 stappen
Een oud radiocircuit van stroom voorzien (aangedreven door batterijen): Heb je ooit een oude radio gehad die alleen op wisselstroom werkt en geen batterij heeft? Vandaag laat ik je zien hoe je je oude radio van stroom kunt voorzien met een batterij en handig als er een stroomuitval en het vermogen van uw radio was afhankelijk van de batterij zonder verbinding te maken
Hoe maak je een door een smartphone bestuurde auto: 5 stappen
Hoe een door een smartphone bestuurde auto te maken: iedereen speelt graag met een door een smartphone bediende auto op afstand. Deze video gaat over hoe je het kunt maken
Door beweging geactiveerde cosplayvleugels met Circuit Playground Express - Deel 1: 7 stappen (met afbeeldingen)
Door beweging geactiveerde cosplayvleugels met Circuit Playground Express - Deel 1: Dit is deel één van een tweedelige project, waarin ik je mijn proces laat zien voor het maken van een paar geautomatiseerde feeënvleugels. Het eerste deel van het project is de mechanica van de vleugels, en het tweede deel is het draagbaar maken en de vleugels toevoegen
Batterij-aangedreven lamp die wordt ingeschakeld door het gebruik van magneten! 8 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Lamp op batterijen die aangaat door het gebruik van magneten!: We weten dat de meeste lampen aan/uit gaan via een fysieke schakelaar. Mijn doel met dit project was om een unieke manier te creëren om de lamp gemakkelijk aan/uit te zetten zonder die klassieke schakelaar. Ik was geïntrigeerd door het idee van een lamp die tijdens dit proces van vorm veranderde
Gloeiende klok met luchtbellen; Mogelijk gemaakt door ESP8266: 7 stappen (met afbeeldingen)
Gloeiende klok met luchtbellen; Aangedreven door ESP8266: "gloeiende luchtbellenklok" geeft de tijd en enkele afbeeldingen weer door verlichte luchtbellen in vloeistof. In tegenstelling tot een led-matrixdisplay, geven langzaam zwevende, gloeiende luchtbellen me iets om te ontspannen. Begin jaren 90 stelde ik me "bubbeldisplay" voor. niet