In deze tutorial zullen we een 5V variabele spanningsbron van Arduino Uno ontwikkelen. Daarvoor gaan we gebruik maken van ADC (Analog to Digital Conversion) en PWM (Pulse Width Modulation) functie.
Sommige digitale elektronische modules, zoals een versnellingsmeter, werken op een spanning van 3.3V en sommige werken op 2.2V. Sommige werken zelfs op lagere spanningen. Hiermee kunnen we niet voor elk ervan een regulator krijgen. Dus hier zullen we een eenvoudig circuit maken dat een spanningsoutput levert van 0-5 volt bij een resolutie van 0,05 V. Hiermee kunnen we dus nauwkeurig spanningen leveren voor de andere modules.
Dit circuit kan stromen leveren tot 100mA, dus we kunnen deze voedingseenheid probleemloos gebruiken voor de meeste sensormodules. Deze circuituitgang kan ook worden gebruikt om oplaadbare AA- of AAA-batterijen op te laden. Met het display op zijn plaats kunnen we gemakkelijk de stroomschommelingen in het systeem zien. Deze variabele voedingseenheid bevat een knopinterface voor het programmeren van de spanning. De werking en schakeling wordt hieronder uitgelegd.
Hardware: Arduino Uno, Voeding (5v), 100uF condensator (2 stuks), knop (2 stuks), 1KΩ weerstand (3 stuks), 16 * 2 karakters LCD, 2N2222 transistor.
Software: Atmel studio 6.2 of AURDINO nightly.
Schakelschema en werkuitleg
Het circuit voor variabele spanningseenheid met arduino wordt getoond in het onderstaande diagram.
De spanning over de uitgang is niet volledig lineair; het zal luidruchtig zijn. Om de ruis eruit te filteren worden condensatoren over de uitgangsklemmen geplaatst, zoals weergegeven in de afbeelding. De twee knoppen hier zijn voor het verhogen en verlagen van de spanning. Het display toont de spanning op de OUTPUT-aansluitingen.
Voordat we aan het werk gaan, moeten we de ADC- en PWM-functies van Arduino UNO bekijken.
Hier gaan we de spanning nemen die op de OUTPUT-terminal wordt geleverd en deze in een van de ADC-kanalen van Arduino voeren. Na de conversie gaan we die DIGITALE waarde nemen en deze relateren aan spanning en het resultaat weergeven in 16 * 2-weergave. Deze waarde op het display vertegenwoordigt de variabele spanningswaarde.
ARDUINO heeft zes ADC-kanalen, zoals weergegeven in de afbeelding. Daarin kunnen ze allemaal worden gebruikt als ingangen voor analoge spanning. De UNO ADC heeft een resolutie van 10 bits (dus de gehele waarden van (0- (2 ^ 10) 1023)). Dit betekent dat het ingangsspanningen tussen 0 en 5 volt zal omzetten in gehele waarden tussen 0 en 1023. Dus voor elke (5/1024 = 4,9 mV) per eenheid.
Hier gaan we A0 van UNO gebruiken.
|
Allereerst hebben de UNO ADC-kanalen een standaard referentiewaarde van 5V. Dit betekent dat we een maximale ingangsspanning van 5V kunnen geven voor ADC-conversie op elk ingangskanaal. Aangezien sommige sensoren spanningen leveren van 0-2,5V, krijgen we met een 5V-referentie een kleinere nauwkeurigheid, dus we hebben een instructie waarmee we deze referentiewaarde kunnen wijzigen. Dus voor het wijzigen van de referentiewaarde hebben we (“analogReference ();”) Voorlopig laten we het zoals.
Standaard krijgen we de maximale ADC-resolutie van het bord, die 10 bits is, deze resolutie kan worden gewijzigd met behulp van instructies ("analogReadResolution (bits);"). Deze resolutiewijziging kan in sommige gevallen van pas komen. Voor nu laten we het zo.
Als de bovenstaande voorwaarden nu op de standaard zijn ingesteld, kunnen we de waarde van ADC van kanaal '0' lezen door de functie "analogRead (pin);" direct aan te roepen, hier staat "pin" voor pin waar we het analoge signaal hebben aangesloten, in dit geval zou "A0" zijn.
De waarde van ADC kan worden opgevat in een geheel getal als “float VOLTAGEVALUE = analogRead (A0); ”, Door deze instructie wordt de waarde na ADC opgeslagen in het gehele getal“ VOLTAGEVALUE ”.
De PWM van UNO kan worden bereikt op elk van de pinnen die op de printplaat worden gesymboliseerd als "~". Er zijn zes PWM-kanalen in UNO. We gaan PIN3 gebruiken voor ons doel.
analogWrite (3, VALUE); |
Van bovenaf kunnen we het PWM-signaal direct op de bijbehorende pin krijgen. De eerste parameter tussen haakjes is voor het kiezen van het pinnummer van het PWM-signaal. De tweede parameter is voor de schrijfverhoudingen.
De PWM-waarde van UNO kan worden gewijzigd van 0 tot 255. Met "0" als laagste tot "255" als hoogste. Met 255 als duty-ratio krijgen we 5V bij PIN3. Als de duty-ratio wordt gegeven als 125, krijgen we 2,5 V bij PIN3
Zoals eerder gezegd zijn er twee knoppen verbonden met PIN4 en PIN5 van UNO. Als u op drukt, wordt de waarde van de duty-ratio van PWM verhoogd. Wanneer een andere knop wordt ingedrukt, neemt de duty-ratio-waarde van PWM af. Dus we variëren de duty-ratio van het PWM-signaal op PIN3.
Dit PWM-signaal op PIN3 wordt naar de basis van de NPN-transistor gevoerd. Deze transistor levert een variabele spanning op zijn emitter, terwijl hij als schakelinrichting fungeert.
Met de variabele duty-ratio PWM aan de basis zal er een variabele spanning zijn aan de emitteruitgang. Hiermee hebben we een variabele spanningsbron bij de hand.
De uitgangsspanning wordt naar UNO ADC gestuurd, zodat de gebruiker de uitgangsspanning kan zien.