Laten we eens kijken wat er achter het PWM-acroniem zit, hoe het werkt, waar het voor is en hoe we het kunnen gebruiken bij het werken met Arduino.
Noodzakelijk
- -Arduino;
- - Lichtgevende diode;
- - een weerstand met een weerstand van 200 Ohm;
- - computer.
instructies:
Stap 1
Arduino digitale pinnen kunnen maar twee waarden geven: logisch 0 (LAAG) en logisch 1 (HOOG). Daarom zijn ze digitaal. Maar Arduino heeft "speciale" conclusies, die PWM worden genoemd. Ze worden soms aangeduid met een golvende lijn "~" of omcirkeld of op de een of andere manier onderscheiden van anderen. PWM staat voor "Pulse-width modulation" of Pulse Width Modulation, PWM.
Een pulsbreedte-gemoduleerd signaal is een pulssignaal met een constante frequentie, maar een variabele werkcyclus (de verhouding van de pulsduur tot de herhalingsperiode). Vanwege het feit dat de meeste fysieke processen in de natuur enige traagheid hebben, zullen scherpe spanningsdalingen van 1 naar 0 worden afgevlakt, waarbij een gemiddelde waarde wordt aangenomen. Door de duty cycle in te stellen, kunt u de gemiddelde spanning op de PWM-uitgang wijzigen.
Als de duty-cycle 100% is, zal er altijd aan de digitale uitgang van de Arduino een logische spanning van "1" of 5 volt zijn. Als u de duty-cycle instelt op 50%, is de helft van de tijd aan de uitgang logisch "1" en half logisch "0", en de gemiddelde spanning is 2,5 volt. Enzovoort.
In het programma wordt de duty cycle niet ingesteld als een percentage, maar als een getal van 0 tot 255. Het commando "analogWrite (10, 64)" zal bijvoorbeeld de microcontroller vertellen om een signaal te sturen met een duty cycle van 25 % naar digitale PWM-uitgang #10.
Arduino-pinnen met pulsbreedtemodulatiefunctie werken met een frequentie van ongeveer 500 Hz. Dit betekent dat de pulsherhalingsperiode ongeveer 2 milliseconden is, wat wordt gemeten door de groene verticale strepen in de figuur.
Het blijkt dat we een analoog signaal aan de digitale uitgang kunnen simuleren! Interessant, toch?!
Hoe kunnen we dit gebruiken? Er zijn veel toepassingen! Dit zijn bijvoorbeeld LED-helderheidsregeling, motortoerentalregeling, transistorstroomregeling, geluidsextractie uit een piëzo-emitter …
Stap 2
Laten we eens kijken naar het meest eenvoudige voorbeeld: het regelen van de helderheid van een LED met behulp van PWM. Laten we een klassiek schema samenstellen.
Stap 3
Laten we de "Fade"-schets uit de voorbeelden openen: Bestand -> Samples -> 01. Basics -> Fade.
Stap 4
Laten we het een beetje veranderen en het in het Arduino-geheugen laden.
Stap 5
We zetten de stroom aan. De LED neemt geleidelijk in helderheid toe en neemt vervolgens geleidelijk af. We hebben een analoog signaal aan de digitale uitgang gesimuleerd met behulp van pulsbreedtemodulatie.