8.2.2.7 Sterkte van een LED aanpassen met PWM

In deze paragraaf leer je hoe je de felheid van een led kunt aanpassen. Het doel is om de sterkte van een led aan te passen met behulp van de A-knop en de B-knop. Als de A-knop wordt ingedrukt gaat de led feller branden. Als de B-knop wordt ingedrukt gaat de led minder fel branden. Dat werkt op basis van Pulse Width Modulation, ook dat zullen we toelichten.

We doorlopen de volgende stappen:

  1. Aansluiten van de led en het testen daarvan
  2. Maken van een toestandsdiagram en omzetten naar een programma

Stap 1 Aansluiten van de led en het testen daarvan

Maak de onderstaande opstelling (is gelijk aan 8.2.2.6 Aansluiten externe led en drukknop maar dan zonder externe drukknop). Je ziet:

  • We gebruiken een weerstand van 47 Ohm om te voorkomen dat de led doorbrandt
  • De platte kant van de led sluiten we aan op de min (0 volt).

Test of de led werkt, bijvoorbeeld met onderstaande programma. Deze laat het lampje steeds met een andere sterkte branden.  Daarbij is 1023 de maximale waarde.

Let op: we gebruiken hier ‘pauzeer’ puur voor het testen van de afzonderlijke LED. Normaal zou je een timer gebruiken.

In het bovenstaande zie je voorbeeld van Pulse With Modulation (PWM). De Micro:bit kan namelijk alleen maar 3 volt of 0 volt op de pinnen zetten. Het is niet mogelijk om bijvoorbeeld 1,5 volt op de pin te zetten en daarmee de led minder fel te laten branden. Toch is er een oplossing: de Micro:bit zetten de wisselt de output op de pin heel snel tussen 0V en 3V. Als de output 50% van de tijd 0 volt is, dan zal de led maar half zo sterk branden. Als de output 25% van de tijd 0 volt is, en dus 75% van de tijd 3 volt, dan zal de led op 75% sterkte branden. Je ziet niet dat de led steeds aan en uit gaat.

De figuur hieronder laat drie situaties zien. Het gemiddelde geeft aan hoe sterk de led zal branden.

Bron: Wikipedia.

Je hoeft weinig te doen om PWM te gebruiken. Je gebruikt ‘schrijf analoog pin … naar …’ en de Micro:bit handelt het verder af. Als je de led op 50% gebruik je bijvoorbeeld het onderstaande commando. De waarde is 512, omdat dat de helft is van 1023, wat het maximum is.

Stap 2: Maken van een toestandsdiagram en omzetten naar een programma

We maken een programma met 4 toestanden.

  • Toestand 1: de led is uit
  • Toestand 2: de led is aan op 33% sterkte
  • Toestand 3: de led is aan op 66% sterkte
  • Toestand 4: de led is aan op 100% sterkte

Het toestandsdiagram ziet er dan zo uit:

Als je met de Micro:bit wilt nagaan of een knopje is gedrukt en weer losgelaten kun je het volgende commando gebruiken:

Daarom hebben het programma als volgt opgebouwd (klik op de afbeelding om te vergroten):

Test het programma. Werkt het?