Arduinon
nopeutettua digitaaliohjausta voi hyödyntää pumppaamalla
kondensaattorien ja diodien alulla jännitettä korkeammaksi. Tässä
hyödynnetään ns. Dicksonin pumppu tai kertoja (Dickson charge
pump, or Dickson multiplier ). Tällä menetelmällä
voidaan tasajännitelähteen jännite nostaa korkeammaksi.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjnoA7x43FXnidbhqYRFtHEddeFK8KBL3DJXjftq2YKHA-pxIPaHYcGkQKgMCdt1IEintAz9KbGr4RqTReObZ_2DuBHlPBXlg-ffJKREfapje281N-Y9QUx0xfpA_0s9EHxVH-QjUf7j2X/s320/Kytkenta_2.jpg)
Suuria tehoja ei tällä
(esimerkissä olevalla) kytkennällä voi saada aikaan.
Digitaalilähtöjen maksimi kuorma saa olla noin 40 mA. Saatu jännite
on noin lähtöjännite kerrottuna diodi / kondensaattoriketjujen
lukumäärällä ja vähennettynä diodien myötäjännitteen
aiheuttamalla häviöllä.
Kuvassa mittari näyttö hiukan tuon
ylikin, sillä viimeinen suodatuskondensaattori latautuu piirissä
olevaan häiriöpiikkiin, sillä piiri on tässä tapauksessa
kuormittamaton.
Kytkentä
on varsin yksinkertainen, samoin ohjelma. Tässä ohjelmassa olen
”pumppausvaiheen” sijoittanut aliohjemaan kuvatakseni sitä, että
pääohjelmassa voi tehdä jotain muuta tarvittaessa.
Arduino
UNO:ssa sisäiset muistipaikat sijoittuvat siten, että
digitaalipinnejä 0 .. 7 vastaa PORTD, pinnejä 8 .. 13 PORTB ja
analogiapinnejä 0 .. 5 sekä samalla digitaalipinnejä 14 .. 19
PORTA. Fyysisiä analogiapinnejä voidaan käyttää myös
digitaalituloina ja -lähtöinä.
OHJELMA
47
/*******************************
*
Ohjelma OhjelmaTest_47v2
*
30.8.2017
*
Jännitteen pumppaus korkeammaksi.
*
*/
//
Määrittelyt
const
int Con_Pinni1 = 2;
const
int Con_Pinni2 = 3;
//
Aliohjelmat
void
Fun_Muunnin(){
int i = 0;
for
(i = 0; i < 10; i++){
bitSet(PORTD,Con_Pinni1);
delayMicroseconds(3);
bitClear(PORTD,Con_Pinni1);
delayMicroseconds(2);
bitSet(PORTD,Con_Pinni2);
delayMicroseconds(3);
bitClear(PORTD,Con_Pinni2);
delayMicroseconds(2);
}
}//
Jännitteen nostajan loppu
//
Asetukset
void
setup() {
pinMode(Con_Pinni1, OUTPUT);
pinMode(Con_Pinni2, OUTPUT);
Serial.begin(9600);
}
void
loop() {
Fun_Muunnin();
delay(1);
}//
Pääohjelman loppu
Ei kommentteja:
Lähetä kommentti