I denne opplæringen vil vi utvikle en 5V variabel spenningskilde fra Arduino Uno. For det skal vi bruke ADC (Analog til Digital Conversion) og PWM (Pulse Width Modulation) -funksjonen.
Noen digitale elektroniske moduler som akselerometer fungerer på spenning 3.3V og noen fungerer på 2.2V. Noen jobber til og med på lavere spenninger. Med dette kan vi ikke få en regulator for hver enkelt av dem. Så her vil vi lage en enkel krets som vil gi en spenningsutgang fra 0-5 volt med en oppløsning på 0,05V. Så med dette kan vi gi spenninger nøyaktig for de andre modulene.
Denne kretsen kan gi strøm opptil 100 mA, så vi kan bruke denne kraftenheten til de fleste sensormodulene uten problemer. Denne kretsutgangen kan også brukes til å lade oppladbare AA- eller AAA-batterier. Med skjermen på plass kan vi enkelt se effektsvingningene i systemet. Denne variable strømforsyningsenheten inneholder knappegrensesnitt for spenningsprogrammering. Arbeidet og kretsen er forklart nedenfor.
Maskinvare: Arduino Uno, Strømforsyning (5v), 100uF kondensator (2 stk), knapp (2 stk), 1KΩ motstand (3 stk), 16 * 2 tegn LCD, 2N2222 transistor.
Programvare: Atmel studio 6.2 eller AURDINO hver natt.
Kretsdiagram og arbeidsforklaring
Den krets for variabel spenning enhet ved hjelp av arduino er vist i diagram nedenfor.
Spenningen over utgangen er ikke helt lineær; det vil være bråkete. For å filtrere ut er støykondensatorene plassert over utgangsterminalene som vist på figuren. De to knappene her er for spenningsøkning og -reduksjon. Displayenheten viser spenningen på OUTPUT-terminalene.
Før vi går på jobb, må vi se på ADC- og PWM-funksjonene til Arduino UNO.
Her skal vi ta spenningen som er gitt på OUTPUT-terminalen og mate den inn i en av ADC-kanalene i Arduino. Etter konvertering skal vi ta den DIGITALE verdien, og vi vil relatere den til spenning og vise resultatet i 16 * 2-skjerm. Denne verdien på displayet representerer den variable spenningsverdien.
ARDUINO har seks ADC-kanaler, som vist i figuren. I disse kan en eller alle av dem brukes som innganger for analog spenning. UNO ADC har 10-biters oppløsning (så heltallverdiene fra (0- (2 ^ 10) 1023)). Dette betyr at den vil kartlegge inngangsspenninger mellom 0 og 5 volt til heltall mellom 0 og 1023. Så for hver (5/1024 = 4,9 mV) per enhet.
Her skal vi bruke A0 av UNO.
|
Først og fremst har UNO ADC-kanalene en standard referanseverdi på 5V. Dette betyr at vi kan gi en maksimal inngangsspenning på 5V for ADC-konvertering på hvilken som helst inngangskanal. Siden noen sensorer gir spenninger fra 0-2,5V, med en 5V referanse får vi mindre nøyaktighet, så vi har en instruksjon som gjør det mulig for oss å endre denne referanseverdien. Så for å endre referanseverdien vi har (“analogReference ();”) For nå lar vi det være.
Som standard får vi den maksimale ADC-oppløsningen på kortet som er 10 bit, denne oppløsningen kan endres ved å bruke instruksjoner (“analogReadResolution (bits);”). Denne oppløsningsendringen kan være nyttig i noen tilfeller. For nå lar vi det være.
Nå hvis de ovennevnte forholdene er satt til standard, kan vi lese verdien fra ADC for kanalen '0' ved direkte å kalle funksjonen "analogRead (pin);", her representerer "pin" pin der vi koblet til analogt signal, i dette tilfellet er det ville være “A0”.
Verdien fra ADC kan tas inn i et helt tall som “float VOLTAGEVALUE = analogRead (A0); ”, Ved denne instruksjonen blir verdien etter ADC lagret i heltallet“ VOLTAGEVALUE ”.
PWM til UNO kan oppnås ved hvilken som helst av pinnene som er symbolisert som “~” på PCB-kortet. Det er seks PWM-kanaler i UNO. Vi skal bruke PIN3 for vårt formål.
analogWrite (3, VALUE); |
Fra ovennevnte tilstand kan vi få direkte PWM-signalet ved den tilsvarende pin. Den første parameteren i parentes er å velge pin-nummeret til PWM-signalet. Den andre parameteren er for skriveforhold.
PWM-verdien til UNO kan endres fra 0 til 255. Med “0” som lavest til “255” som høyest. Med 255 som pliktforhold får vi 5V ved PIN3. Hvis pliktforholdet er gitt som 125, får vi 2,5V ved PIN3
Som sagt tidligere er det to knapper koblet til PIN4 og PIN5 til UNO. Ved trykk vil pliktforholdet på PWM øke. Når du trykker på en annen knapp, reduseres PWM-verdiforholdet. Så vi varierer pliktforholdet til PWM-signal ved PIN3.
Dette PWM-signalet ved PIN3 blir matet til basen til NPN-transistoren. Denne transistoren gir en variabel spenning på emitteren, mens den fungerer som en bryterenhet.
Med variabelt arbeidsforhold PWM ved basen vil det være variabel spenning ved emitterutgang. Med dette har vi en variabel spenningskilde for hånden.
Spenningsutgangen føres til UNO ADC, slik at brukeren kan se spenningsutgangen.