Systém včasné výstrahy před lokální povodní

| Kategorie: Diplomové, bakalářské práce  | Tento dokument chci!

Cílem této diplomové práce je návrh lokálního protipovodňového výstražného systému. Systém se skládá ze dvou základních typů jednotek. První jednotka je umístěna v terénu a pomocí čidel vyhodnocuje přítomnost vody v jinak suchém místě. V případě zatopení posílá varovnou zprávu pomocí bezdrátové technologie. Druhá jednotka varovné zprávy vyhodnocuje a informuje pověřenou osobu o vzniklé situaci pomocí sms zprávy. Venkovní zařízení je plně autonomní a trvale umístěné ve venkovním prostředí. Systémje navržen na bázi 8-bitových mikrokontrolérů. Mezi hlavní parametry zařízení patří nízká spotřeba, mechanická odolnost a spolehlivost.

Vydal: FEKT VUT Brno Autor: Luděk Svoboda

Strana 56 z 95

Vámi hledaný text obsahuje tato stránku dokumentu který není autorem určen k veřejnému šíření.

Jak získat tento dokument?






Poznámky redaktora
bit ADEN povoluje činnost A/D převodníku – bit ADSC slouží startu převodu – bit ADATE nastavuje automatické spouštění A/D převodníku – bit ADIF příznakem přerušení A/D převodníku – bit ADIE povoluje přerušení A/D převodníku – bity ADPS 2:0 volí velikost děličky Registr ADCL registr ADCH V těchto registrech uložena výsledná hodnota A/D převodu. Vyvolání přerušení slouží k probuzení mikrokontroléru sleep režimu, ale také nastavení aktuální hladiny. Tato funkce vrací hodnotu změřeného napětí.1. void adc_init(void) { ADMUX (3<<REFS)|(0<<ADLAR)|(0<<AMUX); ADCSRA (1<<ADEN)|(1<<ADSC)|(0<<ADTE)|(3<<ADPS); return; } Pro vyčtení hodnoty převodu byla vytvořena funkce adc_read(). V případě varovné jednotky nastavena interní napěťová reference 2,56V, je vybrán kanál ADC0 nastavena dělička Nastavení probíhá při inicializaci A/D převodníku.1. Pro jejich vyhodnocení vhodné připojení pinům mikrokontroléru, které podporují externí přerušení.4 Externí přerušení Ke sledování změn hladiny navrženo použití plovákových snímačů. K nastavení externího přerušení slouží několik registrů. Tyto snímače fungují jako spínače. int adc_read() { while(ADCSRA 0b01000000); start převodu int adc_result ((ADCL)|((ADCH)<<8)); vyčtení hodnoty adc_result ((adc_result*256)/512); přepočet hodnoty return adc_result; } 7. 47 . Inicializace následné spuštění převodu uvedeno následující ukázce kódu