Uživatel:Hruskvla

Z MAM wiki

Přejít na: navigace, hledání

Obsah

[editovat] Semestrální práce - Třídička odpadů

Zadání

Naším úkolem bylo navrhnout řízení třídičky odpadů. Jednalo se o naprogramování řídícího procesoru, který by přijímal data od senzorů a ovládal by pojezd pásu a natočení serva, které by řídilo, na kterou hromádkou námi roztříděný odpad složíme. Tedy navrhnout obvodové schéma a ovládání čipu, tak aby mohl systém samostatně pracovat. Jedná se o tři druhy odpadů: sklo, kov, plast.

[editovat] Algoritmus třídění

Soubor:algoritmus.jpg

[editovat] Blokové schéma

Soubor:Blok_schematko.jpg

[editovat] Zdrojový kod v jazyce C

/* main.c */
#include <avr/io.h> // zde je definovan  PORT
#include <avr/iom168.h> // konstanty 
#include <util/delay.h> // funkce _delay_ms()
int main (void){ 
 /* init */
 PORTB = 0xFF;
 DDRB=0xFF;   
 PORTD = 0x00;
 DDRD=0x00;
 int index = 7;  
 while(PIND.1==1)
{  if (PIND.2 == 0) doleva; //detekce plastu
   if (PIND.3 == 0) doprava; //detekce skla
   else stred; //detekce kovu		  
 PIND.1=1;
  _delay_ms(100);
}
} // konec main
int doleva(void){        // Pootocení serva vlevo
      if(index==0) index = 7;   
      else  index--;
      PINB.1 = 1;
      return 0;
}

int doprava(void){       // Pootocení serva vpravo
      if(index==7) index = 0;   
      else  index++;
      PINB.1 = 1;
      return 0;
}

int stred(void){ // otoceni serva do zakladni polohy
      natoceni(7,0,50);
}
 int natoceni(int pocet,int smer, int cas){ // doleva=0;doprava=1;cas=cas jednoho natoceni v ms;pocet=pocet natoceni
      while(pocet > 0){
          if(smer==1) doprava();
          else doleva();
          cekej(cas);
          pocet--;
      }
}

[editovat] Fotodokumentace

Soubor:P3100168.jpg Soubor:dfgdfg.jpg

Osobní nástroje