SOS maják: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
Bez shrnutí editace |
||
| Riadok 25: | Riadok 25: | ||
[[Súbor:GeminiAI-image2.jpg|400px|thumb|center|Schéma zapojenia.]] | [[Súbor:GeminiAI-image2.jpg|400px|thumb|center|Schéma zapojenia.]] | ||
=== Teoretický rozbor (Pravidlá morzeovky) === | === Teoretický rozbor (Pravidlá morzeovky) === | ||
Základom riešenia je dodržanie medzinárodného štandardu pre Morseovu abecedu. Aby bol signál SOS čitateľný pre kohokoľvek, musí program striktne dodržiavať pomery medzi svetelným impulzom a tichom. | Základom riešenia je dodržanie medzinárodného štandardu pre Morseovu abecedu. Aby bol signál SOS čitateľný pre kohokoľvek, musí program striktne dodržiavať pomery medzi svetelným impulzom a tichom. | ||
| Riadok 43: | Riadok 39: | ||
Medzera medzi slovami (koniec sekvencie SOS): trvá 7T (1400 ms). | Medzera medzi slovami (koniec sekvencie SOS): trvá 7T (1400 ms). | ||
=== Algoritmus a program === | |||
Algoritmus programu využíva toto a toto, základné funkcie sú takéto a voláma ich tuto... | Algoritmus programu využíva toto a toto, základné funkcie sú takéto a voláma ich tuto... | ||
Verzia z 21:29, 28. apríl 2026
Záverečný projekt predmetu MIPS / LS2026 - Rostyslav Fursov
Zadanie
Cieľom úlohy bolo vytvoriť program v jazyku C pre mikroprocesor ATmega328P, ktorý simuluje optický maják vysielajúci medzinárodný núdzový signál SOS (... --- ...). Program musí bežať v nekonečnej slučke a dodržiavať štandardizované časové intervaly pre Morseovu abecedu.

Literatúra:
Analýza a opis riešenia
Opíšte sem čo a ako ste spravili, ak treba, doplňte obrázkami... Podrobne opíšte použité komponenty (okrem základnej dosky s ATmega328P procesorom), pridajte linky na datasheety alebo opis obvodu.

Nezabudnite doplniť schému zapojenia! V texte by ste mali opísať základné veci zo zapojenia, samotná schéma nie je dostačujúci opis.

Teoretický rozbor (Pravidlá morzeovky)
Základom riešenia je dodržanie medzinárodného štandardu pre Morseovu abecedu. Aby bol signál SOS čitateľný pre kohokoľvek, musí program striktne dodržiavať pomery medzi svetelným impulzom a tichom.
Definoval som základnú časovú jednotku T = 200 ms. Všetky ostatné intervaly sú násobkom tejto jednotky:
Bodka (dot): trvá presne 1T (200 ms).
Čiarka (dash): trvá presne 3T (600 ms).
Medzera medzi prvkami (v rámci jedného písmena): trvá 1T (200 ms).
Medzera medzi písmenami (S a O): trvá 3T (600 ms).
Medzera medzi slovami (koniec sekvencie SOS): trvá 7T (1400 ms).
Algoritmus a program
Algoritmus programu využíva toto a toto, základné funkcie sú takéto a voláma ich tuto... Výpis kódu je nižšie...
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
// Definícia LED na porte B, pin 5
#define LED_PIN PB5
int main(void)
{
// Nastavenie pinu PB5 ako výstup
DDRB |= (1 << LED_PIN);
while (1)
{
// Písmeno S (3 krát krátky impulz)
for (int i = 0; i < 3; i++) {
PORTB |= (1 << LED_PIN); // LED zapne
_delay_ms(200); // oneskorenie
PORTB &= ~(1 << LED_PIN); // LED vypne
_delay_ms(200);
}
_delay_ms(400); // Pauza medzi písmenami (píšem 400 ms, pretože 200 ms už máme z predchádzajúceho cyklu)
// Písmeno O (3 krát dlhý impulz)
for (int i = 0; i < 3; i++) {
PORTB |= (1 << LED_PIN); // LED zapne
_delay_ms(600); // 3 * T
PORTB &= ~(1 << LED_PIN); // LED vypne
_delay_ms(200);
}
_delay_ms(400); // Pauza medzi písmenami
// Písmeno S (3 krát krátky impulz)
for (int i = 0; i < 3; i++) {
PORTB |= (1 << LED_PIN); // LED zapne
_delay_ms(200); // oneskorenie
PORTB &= ~(1 << LED_PIN); // LED vypne
_delay_ms(200);
}
_delay_ms(1200); // Pauza medzi SOS sekvenciami (píšem 1200 ms, pretože 200 ms už máme z predchádzajúceho cyklu)
}
return 0;
}
#include <avr/io.h>
void adc_init(void); // A/D converter initialization
unsigned int adc_read(char a_pin);
Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:
Zdrojový kód: zdrojaky.zip
Overenie
Ako ste overili funkciu, napríklad... Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia. Na konci uvádzame fotku hotového zariadenia.

Video:
Čo by som urobil inak
Zamyslite sa spätne nad problémom, ktorý ste riešili a napíšte, čo sa vám nepodarilo a nabudúce by ste spravili inak.
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.