12501673_1142438312467830_610007605_n

Dziś znów przychodzę do was z moim raczkującym projektem który chciałbym rozwijać do stanu w którym było by to coś godnego do zaprezentowania podczas próby starania się o starz czy też praktyki w firmie .

Dzisiejszy zalążek projektu wygląda następująco.

Do płytki arduino podpięty jest wyświetlacz hd44780+ moduł do komunikacji wyświetlacza z arduino przez I2C , czujnik temperatury i wilgotności  DHT11

Po krótce

Z czyjnika DHT11 odczytywana jest temperatura oraz wilgotność po czym wypisywane są dane na wyświetlacz

Dodatkowo aby urozmaicić projekt dodałem timer by móc zliczać czas jak długo jest uruchomiony program i co 10s jest wypisywany czas na wyświetlaczu

Teraz postanowię wam opisać jak to moje przerwanie wygląda

noInterrupts(); // wyłącza przerwy
 TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;

OCR1A = 62500; //tu ustawiamy liczbe do ilu ma liczyć timer (nasz clock to 16Mhz/256(prescaler) czyli liczy 62500Hz
TCCR1B |= (1 << WGM12); // CTC mode “Clear on Timer Compare”Porównuje wartość timera z pożądaną wartością, a jeśli wartość ta zostanie osiągnięta, ustawia odpowiednią flagę w rejestrze statusu (status register) a timer zeruje.
TCCR1B |= (1 << CS12); // 256 prescaler 
TIMSK1 |= (1 <<; OCIE1A); // enable timer compare interrupt interrupts(); // włącza wszystkie przerwy } ISR(TIMER1_COMPA_vect) //początek funkcji obsługi przerwania { sekunda++; licznik = 0; //wyzerowanie licznika if (sekunda>=60)
          {sekunda=0;
          minuta++;
          }
          skok++;
          if (PORTD==0)//miganie diody bym wiedział że mruga co 2s(1s-on+1soff)
          PORTD|= (1<<PD6);
          else
          PORTD &= ~(1<<PD6);
}

Jak można zauważyć  przerwania to dość pożyteczne rozwiązanie pozwala nam bez względu na to co dzieje się w programie precyzyjnie wykonać inną operację

 

A oto króciutki filmik z tego jak to wygląda

IMG_20160413_202320

 

Jeżeli masz jakiekolwiek pytania to pisz w komentarzu a na pewno postaram się pomóc a na pewno odpowiem.

Ps. prost pojawia się dzień później bo wczoraj nie chciałem udostępniać go o bardzo późnej godzinie

FacebookTwitterGoogle+Udostępnij