Digitale technieken : werken met digitale in- en uitgangen -DV 1- 1. Pic micro’s 1.1. Wat is een microcontroller ? De naam PIC, Peripheral Interface Controller, verwijst naar een groep van microcontrollers, geproduceerd door een Amerikaanse firma : Arizona Microchip. Andere “merken” van microcontrollers zijn de AVR-microcontroller, de ATMEL-microcontroller enz. Ook bekende merken zoals Philips, Sony, Mitshubishi, hebben hun eigen microcontroller. Een microcontroller is een IC dat gebruikt wordt om andere elektronische toestellen te besturen. Je vindt ze terug in verschillende toestellen. Bv. huishoudtoestellen zoals de microgolfoven, automatische koffiezet, de snoepautomaten op school, je GSM, digitale camera’s enz. Ook de motor van een auto wordt erdoor gestuurd, vandaar het zogenaamde “chip”-tunen: door de gegevens in de microcontroller of het programma te veranderen, kunnen we de motor meer vermogen laten leveren. Zolang de mechaniek van de motor dit aankan is er geen vuiltje aan de lucht (of misschien toch wel: door het vermogen van de motor op te voeren zal hij wel wat meer verbruiken en dus meer vervuilen). Kortom : alle toestellen die elektronisch gestuurd worden bevatten heden ten dage bijna zeker een microcontroller. Wat is er nu zo speciaal aan een microcontroller ? Waar een ‘gewone’ PC een aparte processor heeft, met daarnaast geheugen en aparte in- en uitgangspoorten zijn al deze functies bij een microcontroller vervat in een IC, allemaal op dezelfde chip, vandaar de naam microcontroller, het is een mini – computer. Onderstaande figuren tonen enkele toepassingen met een microcontroller. Geef zelf wat uitleg. 4e Elektriciteit-elektronica Basiselektronica Digitale technieken : werken met digitale in- en uitgangen -DV 2- 1.2. Blokkenschema van een PIC. Bovenstaande figuur toont het blokkenschema van een PIC. Het grijze gedeelte zit bevat in het IC. De belangrijkste onderdelen van de PIC zijn: - - - - de CPU : dit is het hart van het systeem: de CPU kan o.a. bewerkingen (+ - * / …..) uitvoeren, logische beslissingen nemen (als op de drukknop geduwd wordt, dan moet een aangesloten motor draaien), … de snelheid waarmee dit gebeurt, wordt bepaald door de clock (klok). De klok stuurt elektrische pulsen naar de CPU, hoe sneller de klok dit doet , hoe sneller de CPU werkt. Vergelijk het gerust met de kloksnelheid in een moderne computer in het geheugen (memory) wordt het programma opgeslagen en gegevens bewaard. We onderscheiden : o programma geheugen : daar wordt het programma opgeslagen o data geheugen : tijdens de uitvoering van een programma zal de CPU bepaalde gegevens moeten onthouden , bv. als we aan een toepassing met een microgolfoven denken, dan zal de ingestelde tijd dat iets mag duren moeten onthouden worden, de ingestelde temperatuur, ingesteld vermogen …. via de poorten (port) kan de CPU gegevens inlezen (kijken op een schakelaar open of dicht is, temperatuur inlezen, het geluid van een microfoon inlezen) of apparaten aansturen : een led doen oplichten, een aangesloten motor doen draaien, geluid naar een luidspreker sturen. Som hieronder op welke ‘apparaten’ we aan het IC kunnen aansluiten als input: Drukknoppen, sensoren (lichtsensor, temperatuursensor, microfoon), toetsenbord Welke apparaten kunnen we aansluiten als output ? Led’s, lcd scherm, zoemer, luidspreker, motor Let wel : dit is slechts een beperkte opsomming !! 4e Elektriciteit-elektronica Basiselektronica Digitale technieken : werken met digitale in- en uitgangen -DV 3- 1.3. Wat is een programma ? Microcontrollers moeten geprogrammeerd worden. Dan doen ze exact wat ze geprogrammeerd zijn, niets meer en niets minder ! Een programma is een lijst van instructies samen met zogenaamde data die nodig is om het programma uit te voeren. Spijtig genoeg is de taal van een microcontroller geen Nederlands. De enige taal die de microcontroller begrijpt is de taal van enen en nullen. Het probleem is nu dat wij die taal niet zo goed begrijpen. We kunnen dit oplossen op twee manieren : we kunnen ons programma schrijven in het Nederlands of iets dat daarop trekt, een zogenaamde programmeertaal. Enkele gekende programmeertalen zijn BASIC, C-, JAVA, VISUAL BASIC, PASCAL …. Eens ons programma geschreven , hebben we iets nodig die ons programma vertaalt naar enen en nullen. We noemen dit een compiler. Een compiler zet ons programma om in enen en nullen die de microcontroller begrijpt. In de tweede graad schrijven wij ons programma in de zogenaamde “flowcode”-taal. Het is geen echte programmeertaal maar een taal waarin wij op een grafische manier “vertellen” wat de microcontroller moet doen. De naam van flowcode komt van flowchart. Een flowchart vertelt op een grafische manier hoe een programma werkt. Voorbeeld van een flowchart : Neem een ballon Stop het uiteinde in je mond Blaas tot de ballon voldoende groot is Leg een knoop in het uiteinde Zoals je ziet legt een flowchart vast hoe en in welke volgorde iets moet gebeuren. Op een analoge manier zullen we onze microcontroller programmeren. Een ander voorbeeld : Onderstaande flowchart is een ietwat uitgebreider voorbeeld. Het handelt over een “programma” hoe we thee moeten zetten. 4e Elektriciteit-elektronica Basiselektronica Digitale technieken : werken met digitale in- en uitgangen -DV 4- We starten met “begin”. Het eerste wat we ons afvragen is of we genoeg water in de waterverwarmer hebben. Indien niet (NO) dan voegen we water toe totdat het antwoord gelijk wordt aan ja (Yes). Nu kunnen we de waterverwarmer aanzetten We doen een theebuiltje in de theepot. Kookt het water ? Indien nee wachten we totdat het water kookt. Indien het antwoord ja is, dan zetten we de verwarmer af. We gieten het hete water in de theepot. Ook hier is stap voor stap beschreven wat er moet gebeuren, ook zien we dat we op een flowchart beslissingen (ja of nee) kunnen voorstellen. Op een analoge wijze zullen we onze microcontroller programmeren. Via een flowchart gaan we de microcontroller precies “vertellen” wat hij moet doen. 4e Elektriciteit-elektronica Basiselektronica Digitale technieken : werken met digitale in- en uitgangen -DV 5- 1.4. De microcontroller en zijn in- en uitgangen. We vertelden reeds dat een microcontroller in- en output poorten heeft. Afhankelijk van het type microcontroller kan deze verschillende poorten bevatten. Deze poorten hebben een naam. Ze zijn genummerd volgens het alfabet. Nevenstaande microcontroller met nummer 16F84 heeft twee poorten : poort A met 5 in- of uitgangen, poort B met 8 in- of uitgangen. Of een pin inof uitgang is, wordt bepaald door het programma. Aan een pin kunnen zowel schakelaars, als sensors, led’s, motors, …. aangesloten worden. Onderstaande figuur geeft een voorbeeld van 8 led’s aangesloten op een microcontroller. In het volgende deel leren we hoe we de microcontroller moeten programmeren zodat de led’s oplichten volgens een gewenst patroon. 4e Elektriciteit-elektronica Basiselektronica