A következő mintaprogram bemutatja az eljárást. Vegyünk egy olyan Arduino alaplapot, melyen megaAVR chip van. Nagyon sok alaplap ilyennel van szerelve, legyen mondjuk az egyik legelterjedtebb, az UNO és használjunk a programozásához Arduino IDE felületet. Kiválasztjuk az Eszközöknél az UNO-t, majd feltöltjük a következő programot:
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#define bit_is_set(sfr, bit) (_SFR_BYTE(sfr) & _BV(bit))
float Tapfeszultseg = 0;
unsigned long szamlalo=100000;
void setup() {
ADMUX = (0 << ADLAR) | (1 << REFS0) | (14 << MUX0) ;
Serial.begin(115200);
Serial.println("Start ...");
sbi(ADCSRA, ADSC);
delay(200);
}
void loop() {
szamlalo--;
if (szamlalo==0){
while(bit_is_set(ADCSRA,ADIF)){
Tapfeszultseg=(1024*1.1)/(ADCL+256*ADCH);
sbi(ADCSRA, ADSC);
}
Serial.println(Tapfeszultseg);
szamlalo=100000;
}
}
Amennyiben az IDE soros monitorján a 115200-as sebességet állítottuk be, akkor megjelenik rajta bizonyos időközönként a processzor tápfeszültségének az értéke.
A cikk még nem ért véget, lapozz!
Értékeléshez bejelentkezés szükséges!