This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:projects:tudengid11:patareidesorteerija [2011/03/30 10:37] – kusta001 | et:projects:tudengid11:patareidesorteerija [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 11: | Line 11: | ||
| ==== Nõuded ==== | ==== Nõuded ==== | ||
| + | |||
| * Patarei testimisel polaarsus ei loe | * Patarei testimisel polaarsus ei loe | ||
| * Patarei olukord kuvatakse ekraanile (Voltides) | * Patarei olukord kuvatakse ekraanile (Voltides) | ||
| * Sorteerijasse võib sisestada AA ja AAA patareisid, mitte rohkem, kui 10 korraga | * Sorteerijasse võib sisestada AA ja AAA patareisid, mitte rohkem, kui 10 korraga | ||
| * Soovi korral tagastatakse kasutuskõlblikud patareid | * Soovi korral tagastatakse kasutuskõlblikud patareid | ||
| + | |||
| + | ==== 3D mudel ==== | ||
| + | |||
| + | {{: | ||
| ==== Üldine mudel ==== | ==== Üldine mudel ==== | ||
| - | {{: | + | {{: |
| ==== Lahendus ==== | ==== Lahendus ==== | ||
| Line 26: | Line 31: | ||
| ==== Mehhaanika ==== | ==== Mehhaanika ==== | ||
| Kogu agregaat kinnitub silindri kujuga konteinerile, | Kogu agregaat kinnitub silindri kujuga konteinerile, | ||
| + | |||
| + | ==== Juhtimine ==== | ||
| + | |||
| + | Tähiste tähendused: | ||
| + | |||
| + | ^ Tähis^ Tähendus ^ 0 ^1^-1^Funktsioon^ | ||
| + | |S1|Surunupp |Avatud|Suletud | |Töö alustamine| | ||
| + | |S2|Surunupp |Avatud|Suletud | |Patareide tagastamine| | ||
| + | |M1|Dc | ||
| + | |M2|I | ||
| + | |M3|II | ||
| + | |M4|III Servomootor |Seisab|Päripäeva |Vastupäeva |Esialgne kallutamine| | ||
| + | |M5|IV | ||
| + | |A1|Infrap. andur |Signaal puudub|Signaal olemas| |Patarei olemasolu| | ||
| + | |A2|Pingeandur|Signaal puudub|Signaal olemas| |Patarei seisund| | ||
| + | |||
| + | Olekudiagramm: | ||
| + | |||
| + | {{: | ||
| + | |||
| ==== Elektroonika ==== | ==== Elektroonika ==== | ||
| Line 41: | Line 66: | ||
| * Põhimõttelahendus: | * Põhimõttelahendus: | ||
| - | {{: | + | {{: |
| ===== Lähtekood ===== | ===== Lähtekood ===== | ||
| - | Voltmeetri | + | Sorteerija |
| - | <file php voltmeeter.c> | + | |
| - | # | + | <file php main.c> |
| - | #include < | + | |
| - | #include < | + | |
| - | #include < | + | |
| - | #include < | + | |
| + | int main(void) | ||
| + | { | ||
| + | signed char kordus=0; | ||
| + | | ||
| + | pin leds[3] | ||
| + | pin buttons[3] = { PIN(C, 2), PIN(C, 1), PIN(C, 0) }; | ||
| + | for (i = 0; i < 3; i++) | ||
| + | { | ||
| + | pin_setup_output(leds[i]); | ||
| + | pin_setup_input(buttons[i]); | ||
| + | pin_set(leds[i]); | ||
| + | } | ||
| + | unsigned char new_value1; | ||
| + | unsigned char new_value2; | ||
| - | int main() | + | algustekst(); |
| + | |||
| + | |||
| + | |||
| + | |||
| + | /* servode algväärtustamine */ | ||
| + | | ||
| + | |||
| + | /* enable interrupts */ | ||
| + | | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | while (true) | ||
| + | { | ||
| + | pin_toggle(leds[2]); | ||
| + | hw_delay_ms(200); | ||
| + | pin_set(leds[2]); | ||
| + | hw_delay_ms(200); | ||
| + | |||
| + | signed char loendur=0; | ||
| + | new_value1 = pin_get_debounced_value(buttons[2]); | ||
| + | |||
| + | while(!new_value1){ | ||
| + | pin_set(leds[2]); | ||
| + | unsigned short value; | ||
| + | signed short distance; | ||
| + | |||
| + | | ||
| + | |||
| + | // ADC muunduri seadistamine | ||
| + | adc_init(ADC_REF_AVCC, | ||
| + | |||
| + | // Anduri väljundpinge 4-kordselt ümardatud väärtuse lugemine | ||
| + | value = adc_get_average_value(0, | ||
| + | |||
| + | // ADC väärtuse kauguseks ümberarvutamine | ||
| + | distance = ir_distance_calculate_cm(GP2Y0A21YK, | ||
| + | |||
| + | if(kordus==4) | ||
| + | { | ||
| + | kordus=0; | ||
| + | algustekst(); | ||
| + | break; | ||
| + | } | ||
| + | |||
| + | if (distance <=11) | ||
| + | { | ||
| + | kordus=0; | ||
| + | SERVO6 = SERVO_MAX; | ||
| + | hw_delay_ms(500); | ||
| + | |||
| + | char text[16]; | ||
| + | unsigned char result; | ||
| + | float tulemus; | ||
| - | { | ||
| - | char text[16]; | ||
| - | unsigned char result; | ||
| - | float tulemus; | ||
| // Võrdluspingeks AREF viigu valimine | // Võrdluspingeks AREF viigu valimine | ||
| - | // | ||
| // Multiplekseriga kanali 3 valimine | // Multiplekseriga kanali 3 valimine | ||
| // Tulemus on vasak-asetusega | // Tulemus on vasak-asetusega | ||
| ADMUX = (1 << REFS0) | (1 << ADLAR) | (3); | ADMUX = (1 << REFS0) | (1 << ADLAR) | (3); | ||
| - | lcd_alpha_init(LCD_ALPHA_DISP_ON);// | + | |
| - | // LCD ekraani puhastamine | + | |
| lcd_alpha_clear(); | lcd_alpha_clear(); | ||
| - | lcd_alpha_write_string(" | + | lcd_alpha_write_string(" |
| - | + | ||
| - | while(true){ | + | |
| // ADC üksuse käivitamine, | // ADC üksuse käivitamine, | ||
| // teisendustakti seadmine 16 korda aeglasemaks töötaktist | // teisendustakti seadmine 16 korda aeglasemaks töötaktist | ||
| Line 86: | Line 169: | ||
| result =ADCH; | result =ADCH; | ||
| tulemus=(float)result*0.02; | tulemus=(float)result*0.02; | ||
| - | sprintf(text, | + | sprintf(text, |
| lcd_alpha_goto_xy(0, | lcd_alpha_goto_xy(0, | ||
| lcd_alpha_write_string(text); | lcd_alpha_write_string(text); | ||
| - | sw_delay_ms(500); | + | hw_delay_ms(500); |
| + | SERVO6 = SERVO_MID-400; | ||
| + | | ||
| + | |||
| + | if(tulemus< | ||
| + | { | ||
| + | pin_set(leds[2]); | ||
| + | SERVO5 = SERVO_MIN-300; | ||
| + | | ||
| + | SERVO5 = SERVO_MID-400; | ||
| + | | ||
| + | pin_toggle(leds[0]); | ||
| } | } | ||
| - | } | + | else |
| + | { | ||
| + | pin_set(leds[0]); | ||
| + | SERVO5 = SERVO_MAX; | ||
| + | hw_delay_ms(400); | ||
| + | SERVO5 = SERVO_MID-400; | ||
| + | hw_delay_ms(400); | ||
| + | pin_toggle(leds[2]); | ||
| + | loendur++; | ||
| + | } | ||
| + | } | ||
| + | kordus++; | ||
| + | } | ||
| + | | ||
| + | { | ||
| + | char text1[16]; | ||
| + | char text2[16]; | ||
| + | for(int i=10; | ||
| + | lcd_alpha_clear(); | ||
| + | pin_toggle(leds[1]); | ||
| + | sprintf(text1, | ||
| + | lcd_alpha_write_string(text1); | ||
| + | sprintf(text2, | ||
| + | |||
| + | lcd_alpha_goto_xy(0, | ||
| + | lcd_alpha_write_string(" | ||
| + | hw_delay_ms(1000); | ||
| + | pin_set(leds[1]); | ||
| + | lcd_alpha_clear(); | ||
| + | lcd_alpha_write_string(text2); | ||
| + | hw_delay_ms(1000); | ||
| + | new_value2 = pin_get_debounced_value(buttons[1]); | ||
| + | if(!new_value2) | ||
| + | { | ||
| + | lcd_alpha_clear(); | ||
| + | SERVO4=SERVO_MAX; | ||
| + | hw_delay_ms(400); | ||
| + | SERVO4 = SERVO_MID; | ||
| + | algustekst(); | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | lcd_alpha_clear(); | ||
| + | SERVO4=SERVO_MIN; | ||
| + | hw_delay_ms(400); | ||
| + | SERVO4 = SERVO_MID; | ||
| + | algustekst(); | ||
| + | |||
| + | |||
| + | } | ||
| + | } | ||
| + | } | ||
| </ | </ | ||
| + | ===== Majanduskalkulatsioon ===== | ||
| - | ===== Nädalaaruanded ===== | + | {{: |
| - | *{{: | + | |
| - | *{{: | + | |
| - | *{{: | + | |
| - | *{{: | + | |
| - | + | ||
| ===== Ehitamine ===== | ===== Ehitamine ===== | ||
| Line 110: | Line 250: | ||
| Sai valmis meisterdatud läbipaistev väline kest süsteemile. | Sai valmis meisterdatud läbipaistev väline kest süsteemile. | ||
| + | {{: | ||
| {{: | {{: | ||
| {{: | {{: | ||
| - | Korpuse külge sai pandud väline suunaja, mille kaudu patareid liiguvad mõõtmisele.\\ | + | Trükkplaadi tegemine. |
| - | Kuplit ajab ringi DC mootor.\\ | + | |
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| + | |||
| + | Programmeerimine. | ||
| + | |||
| + | {{: | ||
| - | {{: | ||
| ===== Projektijuhtimine ===== | ===== Projektijuhtimine ===== | ||
| Kõik meeskonnaliikmed tegelesid jooksvalt kõikide lahendust vajavate probleemidega. | Kõik meeskonnaliikmed tegelesid jooksvalt kõikide lahendust vajavate probleemidega. | ||
| + | |||
| + | Nädalaaruanded: | ||
| + | |||
| + | *{{: | ||
| + | *{{: | ||
| + | *{{: | ||
| + | *{{: | ||
| + | |||
| ===== Kokkuvõte ja järeldused ===== | ===== Kokkuvõte ja järeldused ===== | ||
| Suurimaks miinuseks oli ajapuudus. Seade vajaks veel palju katsetamist, | Suurimaks miinuseks oli ajapuudus. Seade vajaks veel palju katsetamist, | ||
| + | |||
| + | |||
| + | ===== Viited ja kasutatud kirjandus ===== | ||
| + | |||
| + | - http:// | ||
| + | - http:// | ||
| + | - http:// | ||
| + | - http:// | ||