This is an old revision of the document!
Luua süsteem, mis suudaks määrata AA ja AAA patareide laetust võimalikult lihtsalt patareide omaniku jaoks.
Süsteem toetub kahele Alumiinium latile, mille külge kinnituvad muud detailid.
Üldpildis on robot silinder- ülemises otsas paikneb kuppel, mille diskreetse pöörlemise abil suunatakse patareid mõõtmisele.
Kupli all toimub testimine ja vastavalt kasutaja soovile tagastatakse täis patareid.
Kogu agregaat kinnitub silindri kujuga konteinerile, kuhu langevad kasutuskõlbmatud patareid. Süsteemi kõik komponendid- mootorid, koos kinnitustega, elektroonika komponendid, on kinnitatud kahele alumiiniumist talale. Ajameid on kokku viis- 4 servomootorit ja 1 DC-mootor. Nemad kallutavad, keerutavad ja liigutavad erinevate hoobade abil mehhanisme.
Patareide testimise jaoks lülitatakse nad klemmiga kokkupuutel mõõteahelasse. Ahela tööpõhimõte seisneb selles, et ta rakendab galvaanielemendile koormuse, ning kasutades komparaatorit, hoiab ahelas konstantset voolu (~30 mA). Mikrokontroller mõõdab pinget patarei klemmide vahel, saades sedasi teada, kui suur on pingelang. Edasi tehakse otsus patarei kasutuskõlblikuse kohta. Kuna patarei langemine on juhuslik, ei saa me neid polaarsuse mõttes ühte pidi sättida ning selle probleemi lahendasime Shottky dioodidega. Neil tekib küll väike pingelang (~0,1V), kuid seda võtame koodi kirjutamisel arvesse.
Voltmeetri lähtekood:
#include <stdio.h> #include <homelab/pin.h> #include <homelab/adc.h> #include <homelab/delay.h> #include <homelab/module/lcd_alpha.h> int main() { char text[16]; unsigned char result; float tulemus; // Võrdluspingeks AREF viigu valimine // (eeldatavasti on see ühendatud +5V toiteahelasse) // Multiplekseriga kanali 3 valimine // Tulemus on vasak-asetusega ADMUX = (1 << REFS0) | (1 << ADLAR) | (3); lcd_alpha_init(LCD_ALPHA_DISP_ON);// LCD ekraani seadistamine // LCD ekraani puhastamine lcd_alpha_clear(); lcd_alpha_write_string("Voltmeeter"); while(true){ // ADC üksuse käivitamine, // teisendustakti seadmine 16 korda aeglasemaks töötaktist ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADSC); // Mõõtmise lõpetamise ootamine while (ADCSRA & (1 << ADSC)) continue; // 8-bitise tulemuse lugemine result =ADCH; tulemus=(float)result*0.02; sprintf(text, "%5.3f",tulemus); lcd_alpha_goto_xy(0, 1); lcd_alpha_write_string(text); sw_delay_ms(500); } }
Sai valmis meisterdatud läbipaistev väline kest süsteemile.
Korpuse külge sai pandud väline suunaja, mille kaudu patareid liiguvad mõõtmisele.
Kuplit ajab ringi DC mootor.
Kõik meeskonnaliikmed tegelesid jooksvalt kõikide lahendust vajavate probleemidega.
Nädalaaruanded:
Suurimaks miinuseks oli ajapuudus. Seade vajaks veel palju katsetamist, seadistamist ja ümberehitamist, et saada kaubanduslik välimus ja täielik funktsionaalsus.