Handige tips

Dynamisch beheren van interrupts

Een interrupt is een gebeurtenis waarop een microcontroler reageert door even het normale programmaverloop te onderbreken en een speciaal stukje code uit te voeren om daarna het normale programmaverloop verder te zetten. Zo'n gebeurtenis kan het aflopen van een hardware-timer zijn, het veranderen van de spanning op een bepaalde pin van de PIC, ... Het stukje code heet een Interrupt Service Routine (ISR).

5

Aanmaken en gebruiken van drukknoppen

Voor vele toepassingen is het handig drukknoppen aan te sluiten op de microcontroller. Het Dwengo-bord voorziet reeds 5 drukknoppen aangesloten op poort B van de microcontroller. De Dwengo-bibliotheek voorziet enkele handige macro's om deze knoppen uit te lezen. Op deze pagina leggen we uit hoe je extra knoppen kan aanmaken en hoe je ze moet uitlezen.

5

Aansturen van een servo met behulp van interrupts

Servo's zijn motoren die afhankelijk van het stuursignaal in een bepaalde positie gaan staan. Een servo heeft typisch drie aansluitingen: de negatieve voedingsspanning, de positieve voedingsspanning (5V) en het stuursignaal. Het Dwengo-bord heeft twee connectoren servo1 en servo2 waarop rechtstreeks servo's kunnen aangeschakeld worden. Op deze pagina leggen we in detail uit hoe het stuursignaal voor een servo op een efficiënte manier met de PIC18F4550 kan gegenereerd worden. Dwengo beschikt ook over een bibliotheek dwengoServo.h die deze details voor de gebruiker verbergt.

5

Inlezen van analoge signalen met behulp van de ADC

Met behulp van de Dwengo-bibliotheek kan je heel gemakkelijk de analoge sensoren uitlezen die aangesloten zijn op kanaal AN0-AN4 zonder je zorgen te maken over allerlei technische details. Op deze pagina gaan we in meer detail en leggen we uit hoe je zelf de ingebouwde ADC-module (Analoog Digitaal Conversie) moet instellen en hoe je alle ADC-kanalen kan benutten. Op de PIC18F4550 zijn er immers maar liefst 13 pinnen die je kan gebruiken om analoge sensoren uit te lezen. De analoog-digitaal-conversie kan gebeuren met een nauwkeurigheid van 10 bits.

5

Regelen van de snelheid van een motor met pulsbreedtemodulatie

Alle apparaten die werken op gelijkspanning, ook wel DC-spanning genoemd, vereisen een constante ingangsspanning. Hieronder vallen heel wat elektronische componenten zoals bijvoorbeeld Lego™-motoren en LEDs. De spanning van deze componenten ligt hierbij typisch in een bepaald bereik maar kan vaak verlaagd worden. In het geval van LEDs resulteert een lagere spanning in minder licht en door de ingangsspanning over een motor te regelen kan het toerental ingesteld worden. De motor zal dan sneller of trager beginnen te draaien. De Dwengo-bibliotheek voorziet hiervoor in een aantal handige functies. Op deze pagina gaan we meer in detail en leggen we uit hoe je zelf de PWM-module van de PIC18F4550 kan configureren zodat je de snelheid van motoren gemakkelijk kan regelen.

5

Seriële communicatie

Wanneer je gegevens wil uitwisselen tussen het Dwengo-bord en een computer of een andere elektrische component zoals een kompas of bluetooth-chip, dan kan dit eenvoudig via het RS232-protocol. Dit protocol wordt ook door jouw pc gebruikt wanneer je iets aansluit op de seriële poort. De Dwengo-bibliotheek is voorzien van de nodige functionaliteit om seriële communicatie tot stand te brengen. In deze handige tip gaan we dieper in op hoe je alles zelf kan instellen.

5

Het Dwengo-bord programmeren zonder programmer

Voor sommige toepassingen, bijv. onderwijs, is het nodig dat meerdere mensen verschillende Dwengo-borden kunnen programmeren terwijl je toch maar over één programmer beschikt. In plaats van die ene programmer rond te laten gaan, kan je het Dwengo-bord ook uitrusten met een bootloader. Dit maakt het mogelijk om het Dwengo-bord te programmeren via een USB-kabel zonder een programmer te gebruiken.

5

Variabelen groter dan 256 bytes

In tal van toepassingen is het nodig om variabelen van meer dan 256 bytes te kunnen gebruiken. Dit is bijvoorbeeld het geval wanneer je een robot met camera wil bouwen en die beelden wil kunnen bewerken of wanneer je coole effecten wil toevoegen aan een audiostream. Hoewel de PIC18F4550 van het Dwengo-bord 2048 bytes data-geheugen bevat, kan je standaard geen variabelen gebruiken die groter zijn dan 256 bytes. Hiervoor is een kleine aanpassing in het linker-script nodig.

4.333335

EEPROM gebruiken om gegevens definitief te bewaren

Het data-geheugen van de PIC18F4550 is vluchtig. Dat wil zeggen dat de gegevens die in het geheugen opgeslagen zijn, verloren gaan wanneer de voedingsspanning wegvalt. In vele gevallen is dit niet erg, maar soms kan het nuttig zijn dat bijvoorbeeld instellingen bewaard blijven, ook als het Dwengo-bord wordt uitgeschakeld. Daarom heeft de PIC18F4550 naast het vluchtige data-geheugen ook 256 bytes niet-vluchtig EEPROM-geheugen dat gebruikt kan worden om niet-vluchtige gegevens te bewaren.

4.5

Maak een nabijheidssensor ongevoelig voor omgevingslicht

Nabijheidssensoren voor robots sturen infrarood-licht (IR) uit en meten daarna hoeveel van dat licht door een nabijgelegen object wordt teruggekaatst. Als er echter ook andere bronnen van IR-licht aanwezig zijn, bijvoorbeeld de zon, dan kan de sensor geen onderscheid maken tussen weerkaatst IR-licht dat hij zelf heeft uitgestuurd, en IR-licht afkomstig uit de omgeving. Hierdoor kan de sensor verkeerdelijk concluderen dat er een object vlakbij is, terwijl het eigenlijk gaat om omgevingslicht van de zon, van een gloeilamp of van een andere IR-lichtbron (dit probleem komt niet, of nauwelijks, voor bij TL-lampen of fluorescentielampen).

4.666665
Inhoud syndiceren