Mikrocontrolleren er som et tomt lærred, hvor du kan implementere dine ideer til alverdens gadgets eller til at programmere små sjove spil. Mikrocontrolleren har også mange praktiske anvendelser, vi bruger hver dag, måske uden at tænke over det. En mikrocontroller (MCU) er et lille computersystem på et enkelt integreret kredsløb, der er designet til at styre specifikke enheder eller udføre specifikke opgaver. Det er et indlejret system, der indeholder en processor, hukommelse, input- og output-enheder. Du kan tænke på en mikrocontroller som en underpowered PC, da de har lignende konstruktion og struktur. På en PC har man dog dele som CPU og hukommelse som separate dele, mens de i en mikrocontroller alle er integreret i én chip.
Figur 1: Mikrocontroller og en PC.
Ligesom vi kan forbinde et tastatur, headset og skærme til vores PC for at indtaste og udsende data, kan vi også gøre det med vores mikrocontrollere. Med mikrocontrollere kan vi for eksempel tilslutte knapper og LED-lys.
Figur 2
Vi kunne også forbinde forskellige slags sensorer for at måle alle mulige ting, som vi finder interessante. Måske vil vi måle fugtighed, temperatur, bevægelse. Nedenfor ses en liste over nogle af disse sensorer, som vi kunne anvende med en mikrocontroller.
- Temperature sensor
- Proximity sensor
- Infared sensor (IR sensor)
- Ultrasonic sensor
- Light sensor
- Smoke and gas sensor
- Alcohol sensor
- Touch sensor
- Color sensor
- Humidity sensor
Så det er da meget cool med alle disse LED'er, sensorer og knapper. Men hvordan benytter vi dem egentlig med en mikrocontroller? Vi kan ikke bare forvente, at mikrocontrolleren gør, hvad vi beder dem om at gøre. Så vi er nødt til at instruere mikrocontrolleren til at gøre hvad vi vil - på den rigtige måde! Så lad os finde ud af, hvordan man gør det.
Hvad er en mikrocontroller
Hvad er en mikrocontroller, og hvordan er den lavet? For at forstå det har vi brug for noget grundlæggende viden om nogle af de komponenter, vi finder i en mikrocontroller. Komponenter som en modstand, transistoren og dioden, se figur 3.
Figur 3: Symboler for en modstand, transistor og en diode.
Hvis du ikke er helt sikker på, hvad alle disse komponenter er, har vi en blog om analoge kredsløb, hvor vi introducerer dem lige her - så tjek den ud om nødvendigt! Men hvorfor er disse komponenter så vigtige for en mikrocontroller? Med disse komponenter kan man konstruere noget, der hedder logic gates, som vi lærte om i denne blog om digital elektronik. Disse logic gates er meget vigtige, fordi de fungerer som bindeled. De gør det muligt for dataene at gå fra analog til digital. For at illustrere dette, lad os gennemgå et eksempel med en af disse gates, vi lærte om i bloggen for digitale kredsløb. Lad os prøve med AND-gaten. I figuren nedenfor, figur 4, kan du se konstruktionen af et kredsløb af en AND-gate lavet af de tre komponenter, der ses i figur 3.
Figure 4: Illustrerer et kredsløb for en AND-gate.
Spændingskilder: Vin, A og B
Transistorer: T1 og T2
Modstande: RA, RB og Rout
I bloggen om analoge kredsløb lærte vi, at hvis vi forbinder 5 V til collector for transistor T1 (Vin) på figur 4, og der ikke er nogen spænding fra A eller B, vil der være ingen spænding være for Vout. Hvis vi ændrer spændingen ved A til 5 V, er der stadig ingen spænding til Vout. Det samme gælder for B. Først når både A og B påføres 5 volt, vil vi have 5 volt ved Vout, fordi det ville betyde, at begge transistorer åbnes. Dette koncept for AND-gatens kredsløb er demonstreret i nedenstående figur.
Figur 5: Bemærk, at den eneste situation, hvor vi får 5 V ved Vout, er, når både A og B har 5 V.
Hvis vi så erstatter 5 V og 0 V med 1'ere og 0'ere, får vi det, der kaldes truthtables. Husk, at digital elektronik kun bekymrer sig om de logiske niveuaer høj og lav - 1 og 0 - ON og OFF.
Figur 6 er så et truthtable for AND-gaten. Dette koncept er begyndelsen på digital elektronik og hvordan mikrocontrollere forstår ting.
Figure 6: Truthtable for AND-gate.
I digital elektronik er der kun de to logiske niveauer, 1 og 0, som dem der er vist i truthtable ovenfor. Dette truthtable kan beskrives ved hjælp af en ligning. Alle logic gate har truthtables og dermed deres tilhørende ligninger. Matematikken, der bruges i digital elektronik, er forskellig fra almindelig matematik og kaldes boolsk algebra. Dette er dækket i bloggen digitale kredsløb.
Ved hjælp af disse logic gates kan vi derefter opstille strukturer, der er i stand til at tilføje, multiplicere eller lagre digital information - der altså er i stand til at arbejde med informationen. Den slags strukturer er dem, der findes inde i en mikrocontroller, såsom ADDER, MULTIPLIER og RAM.
For at kommunikere, kontrollere og bruge ADDER, MULTIPLIER og RAM benytter vi et program. Programmet er gemmes inde i mikrocontrollerens hukommelse og kan overføres gennem programmering-pins.
Figure 7: ROM - Read-Only Memory
Som illustreret på figur 7 kan programmet, der benyttes til at kommunikere med ADDER, MULTIPLIER og RAM, betragtes som en række linjer med 0'ere og 1'ere. Disse linjer kan f.eks. være som følgende:
Figure 8: Udsnit fra figur 7.
Hver linje bærer sine egne oplysninger til mikrocontrollerens hukommelse, så mikrocontrolleren ved hvad der foregår så den kan forstå vores instruktioner. Men ikke mange mennesker kan aflæse gyldig information ud fra disse linjer af 0'ere og 1'ere. Det ville være svært og tidskrævende, at afkode og forstå hvad hver linje betyder, så vi har det, der kaldes et assembly language. Assembly language er for personer, der er virkelig seje og gode til at skrive kode og som besidder en bred forståelse af designet for den specifikke mikrocontroller. Så disse generøse individer skaber programmeringssprog, der er lettere at bruge, så vi andre kan programmere ved brug af metoder, der er mere intuitive. På den måde forbinder de elektronik med mennesker.
Så for at opsummere, når mikrocontrollere instrueres, sker der en oversættelse af til 0'ere og 1'ere fra et programmeringssprog. Disse programmeringssprog kunne for eksempel være C og C++, som ofte bruges i mikrocontrollere.
Ved hjælp af disse generøse personer kan vi kode vores programmer hurtigere og lettere på vores mikrocontrollere. Dette skyldes, at det antal kodelinjer, der er nødvendige for, at en assembly code kan producere et bestemt resultat, er meget større for det samme resultat i C og C ++.
Og for at gøre det endnu lettere for os kan vi bruge biblioteker til programmeringen af vores mikrocontrollere. Software biblioteker. Et softwarebibliotek til en mikrocontroller er som et sæt kommandoer, du kan importere til din mikrocontroller, for at udvide dens værktøjer, du kan programmere den med. Det får mikrocontrollerne til at forstå visse genveje, der er lettere for os at programmere med. Man kan fx. importere et matematikbibliotek, så man kan benytte forskellige matematiske koncepter på en letanvendelig måde i ens programmering. Der er maaange forskellige biblioteker klar til at blive implementeret i dit næste projekt! OG der er mange vellavede lektioner til mikrocontroller-projekter over hele internettet, som dem, der findes her.
Kun fantasien sætter grænser for, hvad en mikrocontroller kan bruges til! Den kompakte størrelse, lave strømforbrug og de lave omkostninger ved mikrocontrollere gør dem til et populært valg til mange applikationer.