Arduino Due is een op ARM-controller gebaseerd bord dat is ontworpen voor elektronische ingenieurs en hobbyisten. ARM-architectuur is zeer invloedrijk in moderne elektronica, we gebruiken ze overal, zoals onze mobiele telefoons, iPods en computers enz. Als iemand industriële systemen wil ontwerpen, moet dat op ARM-controllers. ARM-controllers zijn erg belangrijk vanwege hun behendigheid.
We hebben de basisprincipes van Arduino Due al behandeld in Aan de slag met Arduino Due. Nu gaan we in deze tutorial de helderheid van een LED aanpassen door het PWM-signaal te gebruiken dat wordt gegenereerd door DUE. Een DUE PWM- signaal (Pulse Width Modulation) levert een variabele spanning over een constante stroomvoorziening.
Pulsbreedtemodulatie:
Als in de bovenstaande afbeelding de schakelaar gedurende een bepaalde tijd continu wordt gesloten, zal de LED gedurende deze tijd continu 'AAN' zijn. Als de schakelaar een halve seconde is gesloten en de volgende halve seconde wordt geopend, brandt de LED alleen in de eerste halve seconde. Nu wordt de verhouding waarin de LED over de totale tijd AAN is de Duty Cycle genoemd en kan als volgt worden berekend:
Duty Cycle = Inschakeltijd / (Inschakeltijd + Uitschakeltijd)
Inschakelduur = (0,5 / (0,5 + 0,5)) = 50%
De gemiddelde uitgangsspanning is dus 50% van de accuspanning.
Dit is het geval gedurende één seconde en we kunnen zien dat de LED een halve seconde UIT is en de andere halve seconde AAN. Als de frequentie van AAN- en UIT-tijden is verhoogd van '1 per seconde' naar '50 per seconde '. Het menselijk oog kan deze frequentie van AAN en UIT niet vastleggen. Voor een normaal oog zal de LED worden gezien als gloeiend met de helft van de helderheid. Dus met een verdere vermindering van de AAN-tijd lijkt de LED veel lichter.
We zullen de DUE programmeren om een PWM te krijgen en een LED aansluiten om de werking ervan te laten zien.
Er zijn 12 PWM-kanalen (pin 2 tot pin 13) in de DUE en we kunnen ze allemaal of allemaal gebruiken. In dit geval houden we ons aan één PWM-signaal op PIN2.
Componenten:
- Arduino Due
- Stroomvoorziening (5v)
- LED
- Knopen (twee stuks),
- 1KΩ-weerstand (twee stuks), 220Ω-weerstand
En Arduino IDE - Arduino Nightly Software (https://www.arduino.cc/en/Main/Software).
Schakelschema en werkbeschrijving:
Het circuit is aangesloten op een breadboard volgens het schakelschema. Men moet echter opletten bij het aansluiten van de LED-aansluitingen. Hoewel de knoppen een stuiterend effect kunnen hebben, maar in dit geval veroorzaakt het geen aanzienlijke fouten, dus we hoeven ons deze keer geen zorgen te maken.
Een PWM-signaal krijgen van DUE is eenvoudig; Arduino IDE biedt handige functies die de moeilijkheid van de programmeur verlichten. Als we voor kale chipprogrammering gaan, moeten we een ATMEGA-controller instellen voor het PWM-signaal, wat niet eenvoudig is; we moeten veel registers en instellingen definiëren voor een nauwkeurig signaal, maar in Arduino hebben we niet met al die dingen te maken. We hebben pulsbreedtemodulatie al behandeld met ATmega32, met Arduino Uno en met 555 timer-IC.
Standaard zijn alle headerbestanden en registers voorgedefinieerd door Arduino IDE, we hoeven ze alleen maar aan te roepen en dat is alles, we hebben een PWM-output op de juiste pin. We moeten ook bepaalde commando's aanroepen om een PWM-signaal te krijgen, deze worden hieronder besproken:
pinMode (2, OUTPUT) analogWrite (pin, waarde)
Eerst moeten we het PWM-uitvoerkanaal kiezen of een pin selecteren uit 12 pinnen van DUE, daarna moeten we die pin als output instellen. Omdat we PIN2 als uitvoer gebruiken, zullen we het instellen als OUTPUT zoals weergegeven in de eerste regel.
Vervolgens moeten we de PWM-functie van DUE inschakelen door de functie " analogWrite (pin, value) " aan te roepen. Hierin staat 'pin' voor het pincode waar we PWM-uitvoer nodig hebben. We zetten het als '2', dus bij PIN2 krijgen we PWM-uitvoer. "Waarde" is de waarde die AAN wordt gezet, deze varieert tussen 0 (altijd uit) en 255 (altijd aan). We kunnen in deze ruimte de juiste waarde schrijven voor de vereiste helderheid van LED.
We hebben een paar knoppen aan het DUE-bord bevestigd om deze waarde te variëren. De ene knop is voor het verhogen van de helderheidswaarde en de andere is voor het verlagen van de helderheidswaarde. Zodra de Due klaar is met programmeren, kunnen we de helderheid aanpassen door op deze knoppen te drukken.