Inhoudsopgave:

Helderheidsregeling, Arduino (met animaties): 7 stappen
Helderheidsregeling, Arduino (met animaties): 7 stappen

Video: Helderheidsregeling, Arduino (met animaties): 7 stappen

Video: Helderheidsregeling, Arduino (met animaties): 7 stappen
Video: ?? Transformeer je huis met het Brilliant Smart Home for Lights | Een verhelderende recensie! 2024, Juli-
Anonim
Image
Image

De afgelopen jaren heb ik twee flipperkasten (pinballdesign.com) en twee robotkoppen (grahamaser.com) gebouwd die elk worden bestuurd door Arduinos. Na een carrière als werktuigbouwkundig ingenieur ben ik in orde met het ontwerp van de mechanismen, maar ik worstel met de programmering. Ik besloot animaties te maken om enkele basisconcepten van de Arduino te illustreren. Ik dacht dat het mij en anderen zou helpen om ze te begrijpen. Een foto zegt meer dan duizend woorden en een animatie kan duizend foto's zijn!

Dus hier is een geanimeerde uitleg over het onderwerp Helderheidsregeling. De animatie hierboven toont een schema van een potentiometer die is aangesloten op een Arduino. Het laat zien hoe het aanpassen van de positie van de potentiometer de helderheid van een led kan veranderen. Ik ga alle elementen van dit proces uitleggen. Voor iedereen die niet bekend is met potentiometers en leds, zal ik daarmee beginnen. Ik zal dan uitleggen waarom de led moet worden aangesloten op een PWM-compatibele Arduino-pin en hoe de MAP-functie binnen een Arduino-schets wordt gebruikt om de ingang van de potentiometer om te zetten naar een uitgang die geschikt is voor het aansturen van een led.

Als je bekend bent met leds en potmeters dan kun je secties 1 en 2 overslaan.

Stap 1: OVER LED's

OVER LED's
OVER LED's

De linker afbeelding hierboven toont het circuitsymbool voor een led en de polariteit van de led-pootjes. Stroom zal slechts in één richting door een LED stromen, dus polariteit is belangrijk. Het langere been is het positieve. Ook zit er een platte kant aan de flens, dit is de negatieve kant.

SPANNING en STROOM

De spanning die een LED nodig heeft, varieert van ongeveer 2,2 V tot 3,2 volt, afhankelijk van de kleur. Hun huidige classificatie is typisch 20mA. Om de stroom te beperken en te voorkomen dat de LED oververhit raakt, is het noodzakelijk om een weerstand in serie te gebruiken met elke LED. Ik raad ongeveer 300 ohm aan.

De afbeelding rechts hierboven toont een manier om een weerstand aan een poot van een led te solderen en deze te isoleren met een krimpkous.

Stap 2: POTENTIOMETER

POTENTIOMETER
POTENTIOMETER

In Arduino-termen is een potentiometer een sensor. "Sensor" verwijst naar elk extern apparaat dat, wanneer het is aangesloten op invoerpinnen, kan worden gedetecteerd door de Arduino. We gaan een potentiometer gebruiken die is aangesloten op de Arduino, om de helderheid van een LED te regelen. Een potentiometer wordt ook wel een spanningsdeler genoemd, wat volgens mij een betere omschrijving is. Het diagram linksboven geeft het principe van een spanningsdeler aan. In dit voorbeeld is een weerstand aan het ene uiteinde met aarde verbonden en door een stroombron aan het andere uiteinde op 5v gehouden. Als een schuifregelaar langs de weerstand wordt bewogen, staat deze op een spanning van 0v aan de linkerkant, 5v aan de rechterkant. In elke andere positie zal het een waarde hebben tussen 0v en 5v. Halverwege staat het bijvoorbeeld op 2,5V. Als we de opstelling hervormen zoals rechts hierboven weergegeven, dan representeert dit de actie van een roterende potentiometer.

Stap 3: HET CIRCUIT

HET CIRCUIT
HET CIRCUIT

De afbeelding hierboven laat zien hoe we de potentiometer en de led op een Arduino moeten aansluiten.

De Ardunio moet de spanning voelen die er door de potentiometer aan wordt toegevoerd. De spanning verandert soepel als de potentiometer wordt gedraaid, het is dus een analoog signaal en moet daarom worden aangesloten op een analoge ingangspin op de Arduino. De spanning op deze pin wordt door de Arduino uitgelezen telkens wanneer het programma dit vraagt via de functie "analogRead".

De Arduino heeft alleen digitale uitgangspinnen. Maar die pinnen met een tilde (~) ernaast simuleren een analoge uitgang die geschikt is om de helderheid van een Led te regelen. Dit proces wordt pulsbreedtemodulatie (PWM) genoemd en wordt uitgelegd via de volgende animatie, stap 4.

Stap 4: PWM

PWM, pulsbreedtemodulatie

Zoals eerder vermeld, zijn de pinnen met een tilda, "~" ernaast PWM-pinnen. Omdat de pinnen digitaal zijn, kunnen ze alleen op 0v of 5v staan, maar met PWM kunnen ze worden gebruikt om een LED te dimmen of de snelheid van een motor te regelen. Ze doen dit door 5v aan een LED te leveren, maar deze te pulseren tussen 0v en 5v bij 500 Hz (500 keer per seconde) en de duur van elk 0v- en 5v-element van de puls uit te rekken of te verkleinen. Als de LED een langere puls van 5v ziet dan een puls van 0v, wordt deze helderder. In ons programma gebruiken we de functie analogWrite() om een PWM "blokgolf" uit te voeren. Het heeft 256 stappen, nul geeft een inschakelduur van 0% en 255 geeft 100% "werkcyclus", d.w.z. continu 5 volt. Dus 127 zou een inschakelduur van 50% geven, de helft van de tijd op 0v en de helft van de tijd op 5v. De animatie hierboven laat zien hoe als deze duty cycle naar 100% wordt uitgerekt, de led helderder wordt.

Stap 5: HET PROGRAMMA (ARDUINO SCHETS)

Image
Image

De bovenstaande video stapt door een programma (schets) dat kan worden gebruikt om de helderheid van een led te regelen met behulp van een potentiometer. Het circuit is hetzelfde als getoond in stap 3.

Als je deze video te snel (of langzaam) vindt om comfortabel te lezen, dan kun je de snelheid aanpassen. Aan de rechterkant van de onderste bedieningsbalk staat een symbool in de vorm van een tandwiel (soms met een rood 'HD'-label erop.) Als erop wordt geklikt, verschijnt er een menu met daarin de "afspeelsnelheid".

Het zou natuurlijk beter zijn als je op een knop zou kunnen klikken om in je eigen tempo door elke regel van het programma te gaan, maar helaas is het niet mogelijk om die interactieve methode hier te bieden. Als je die methode liever over dit onderwerp en veel andere Arduino-onderwerpen wilt gebruiken, dan is er een gratis voorbeeldversie van een interactief/geanimeerd e-boek beschikbaar op animationarduino.com

Er is één feature in het programma die volgens mij meer uitleg behoeft: op regel14 wordt de "map" functie gebruikt. Er is een uitleg over het doel ervan, in stap 6

Stap 6: KAART

We hebben de potmeter aangesloten op een analoge pin. De potentiometerspanning varieert tussen 0v en 5v. Dit bereik wordt in stappen van 1024 in de processor geregistreerd. Wanneer de waarde-invoer wordt gebruikt om een uitvoer te creëren via een PWM-compatibele digitale pin, moet dit bereik worden toegewezen aan het uitvoerbereik van een digitale pin. Dit heeft 255 stappen. De kaartfunctie wordt hiervoor gebruikt en levert een output die evenredig is met de input.

Bovenstaande video illustreert dit.

Stap 7: Geanimeerde Arduino

De afbeeldingen in deze Instructable zijn afkomstig uit mijn e-boek Animated Arduino dat beschikbaar is op www.animatedarduino.com, waarin ik een beter begrip wil geven van enkele van de concepten die ik tegenkom tijdens het leren programmeren van de Arduino.

Er is een gratis voorbeeldexemplaar van het e-boek beschikbaar op de website waarmee u het interactieve karakter van het boek kunt ervaren. Het is in feite een verzameling voorbeeldpagina's en laat dus veel van de uitleg weg. Het bevat voorbeeldpagina's waarop u op knoppen kunt klikken die u door elke regel van een programma leiden en gerelateerde opmerkingen bekijken. Andere pagina's hebben video-animaties en audio-inhoud die u kunt bedienen. Er is een inhoudspagina opgenomen zodat u kunt zien wat de volledige uitgave bevat.

Aanbevolen: