1391 |
miho |
1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
|
|
2 |
<html> |
|
|
3 |
<head> |
|
|
4 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
|
5 |
<title> IRFEE01A </title> |
|
|
6 |
<meta name="keywords" content="stavebnice MLAB univerzální moduly infračervený detektor infrared tykadlo"> |
|
|
7 |
<meta name="description" content="Projekt MLAB, Infračervný detektor překážek pro robota"> |
|
|
8 |
<!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE --> |
|
|
9 |
<link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl"> |
|
|
10 |
<link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print"> |
|
|
11 |
<link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico"> |
|
|
12 |
<script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script> |
|
|
13 |
<!-- AUTOINCLUDE END --> |
|
|
14 |
</head> |
|
|
15 |
|
|
|
16 |
<body lang="cs"> |
|
|
17 |
|
|
|
18 |
<!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --> |
|
|
19 |
<!-- ============== HLAVICKA ============== --> |
|
|
20 |
<div class="Header"> |
|
|
21 |
<script type="text/javascript"> |
|
|
22 |
<!-- |
|
|
23 |
SetRelativePath("../../../../../"); |
|
|
24 |
DrawHeader(); |
|
|
25 |
// --> |
|
|
26 |
</script> |
|
|
27 |
<noscript> |
|
|
28 |
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> |
|
|
29 |
</noscript> |
|
|
30 |
</div> |
|
|
31 |
<!-- AUTOINCLUDE END --> |
|
|
32 |
|
|
|
33 |
<!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --> |
|
|
34 |
<!-- ============== MENU ============== --> |
|
|
35 |
<div class="Menu"> |
|
|
36 |
<script type="text/javascript"> |
|
|
37 |
<!-- |
|
|
38 |
SetRelativePath("../../../../../"); |
|
|
39 |
DrawMenu(); |
|
|
40 |
// --> |
|
|
41 |
</script> |
|
|
42 |
<noscript> |
|
|
43 |
<p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p> |
|
|
44 |
</noscript> |
|
|
45 |
</div> |
|
|
46 |
<!-- AUTOINCLUDE END --> |
|
|
47 |
|
|
|
48 |
<!-- ============== TEXT ============== --> |
|
|
49 |
<div class="Text"> |
|
|
50 |
<p class="Title"> |
|
|
51 |
Infračervené tykadlo pro robota |
|
|
52 |
</p> |
|
|
53 |
<p class=Autor> |
|
|
54 |
Milan Horkel |
|
|
55 |
</p> |
|
|
56 |
<p class="Subtitle"> |
|
|
57 |
Čidlo využívá modulované infračervené záření pro bezdotykovou detekci |
|
|
58 |
předmětů. Je určeno zejména pro menší pohyblivé roboty jako náhrada |
|
|
59 |
mechanických tykadel. Jádrem čidla je procesor řady ATtiny a přijímač |
|
|
60 |
Ir pro dálkové ovládání. Modulace a průměrování signálu zajišťuje |
|
|
61 |
zvýšenou odolnost proti rušení. |
|
|
62 |
</p> |
|
|
63 |
<p class="Subtitle"> |
|
|
64 |
<img width="327" height="105" src="IRFEE01A_files/image001.jpg" |
|
|
65 |
alt="Pohled na čidlo zhora"> |
|
|
66 |
</p> |
|
|
67 |
<p class="Subtitle"> |
|
|
68 |
<img width="328" height="162" src="IRFEE01A_files/image002.jpg" |
|
|
69 |
alt="Pohled na čidlo ze strany"> |
|
|
70 |
</p> |
|
|
71 |
<p> |
|
|
72 |
<a href="../IRFEE01A.cs.pdf"><img class="NoBorder" |
|
|
73 |
src="../../../../../Web/PIC/FileIco_PDF.ico" |
|
|
74 |
alt="Acrobat"> PDF verze</a> |
|
|
75 |
</p> |
|
|
76 |
|
|
|
77 |
<h1>Technické parametry </h1> |
|
|
78 |
|
|
|
79 |
<table> |
|
|
80 |
<tr> |
|
|
81 |
<th> Parametr </th> |
|
|
82 |
<th> Hodnota </th> |
|
|
83 |
<th> Poznámka </th> |
|
|
84 |
</tr> |
|
|
85 |
<tr> |
|
|
86 |
<td> Napájení </td> |
|
|
87 |
<td> (2.7V ..) 3.6V .. 5V (.. 5.5V) </td> |
|
|
88 |
<td> Zkontrolujte požadavky U1 a U2 </td> |
|
|
89 |
</tr> |
|
|
90 |
<tr> |
|
|
91 |
<td> Spotřeba </td> |
|
|
92 |
<td> 10mA / 15mA </td> |
|
|
93 |
<td> Při 5V v klidu a při detekci </td> |
|
|
94 |
</tr> |
|
|
95 |
<tr> |
|
|
96 |
<td> Nosný kmitočet </td> |
|
|
97 |
<td> 38kHz </td> |
|
|
98 |
<td> Obvyklé hodnoty: 30, 33, 36, 38, 40, 56kHz </td> |
|
|
99 |
</tr> |
|
|
100 |
<tr> |
|
|
101 |
<td> Dosah </td> |
|
|
102 |
<td> Cca 1m </td> |
|
|
103 |
<td> Bez stínítka proti listu papíru A4 </td> |
|
|
104 |
</tr> |
|
|
105 |
<tr> |
|
|
106 |
<td> Rychlost odezvy </td> |
|
|
107 |
<td> 20ms / 15ms </td> |
|
|
108 |
<td> Aktivace a deaktivace </td> |
|
|
109 |
</tr> |
|
|
110 |
<tr> |
|
|
111 |
<td> Rozměry </td> |
|
|
112 |
<td> 35 x 15 x 15mm </td> |
|
|
113 |
<td> Bez stínítka </td> |
|
|
114 |
</tr> |
|
|
115 |
</table> |
|
|
116 |
|
|
|
117 |
<h1> Popis konstrukce </h1> |
|
|
118 |
|
|
|
119 |
<h2> Úvodem </h2> |
|
|
120 |
|
|
|
121 |
<p> |
|
|
122 |
Aby mohl robot detekovat překážku aniž do ní narazí, potřebuje vhodné |
|
|
123 |
čidlo. Tato konstrukce popisuje čidlo, které využívá odrazu |
|
|
124 |
infračerveného záření od překážky. |
|
|
125 |
</p> |
|
|
126 |
|
|
|
127 |
<h2> Zapojení modulu </h2> |
|
|
128 |
|
|
|
129 |
<p> |
|
|
130 |
Srdcem čidla je obvod U1, přijímač infračerveného signálu a procesor |
|
|
131 |
ATtiny, který zajišťuje inteligenci čidla. |
|
|
132 |
</p> |
|
|
133 |
|
|
|
134 |
<p> |
|
|
135 |
<img width="588" height="396" src="IRFEE01A_files/image003.png" |
|
|
136 |
alt="Schéma zapojení čidla"> |
|
|
137 |
</p> |
|
|
138 |
|
|
|
139 |
<p> |
|
|
140 |
Infračervená dioda D2 vysílá modulovaný signál směrem k překážce. |
|
|
141 |
Signál se od překážky odráží do přijímače U1. Procesor U2 generuje |
|
|
142 |
vysílací signál pro diodu D2 a současně analyzuje přijímaný signál |
|
|
143 |
z přijímače U1. Pokud se přijímaný signál <i>dostatečně</i> |
|
|
144 |
shoduje s vysílaným signálem, je aktivován výstupní signál na |
|
|
145 |
výstupu J2 a rozsvítí se indikační dioda D3. |
|
|
146 |
</p> |
|
|
147 |
|
|
|
148 |
<p> |
|
|
149 |
R1 a C1 filtruje napájení pro přijímač infračerveného signálu U1, dioda |
|
|
150 |
D1 je ochranná proti nechtěnému přepólování čidla. Čidlo je vybaveno |
|
|
151 |
jedním upevňovacím šroubem. |
|
|
152 |
</p> |
|
|
153 |
|
|
|
154 |
<p> |
|
|
155 |
Konektor J3 je standardní programovací konektor ATMEL ISP 6 PIN. Je |
|
|
156 |
zapojen obvyklým způsobem. Do procesoru se musí nahrát ovládací program |
|
|
157 |
přeložený pro příslušný nosný kmitočet použitého přijímače U1. Kmitočet |
|
|
158 |
přijímače bývá uváděn v posledním dvojčíslí označení, zde tedy |
|
|
159 |
38kHz. |
|
|
160 |
</p> |
|
|
161 |
|
|
|
162 |
<h2> Přijímač IR (obvod U1) </h2> |
|
|
163 |
|
|
|
164 |
<p> |
|
|
165 |
Tyto obvody jsou vyráběny pro přijímače dálkového ovládání rádií, |
|
|
166 |
televizí a dalších komponent spotřební elektroniky. |
|
|
167 |
</p> |
|
|
168 |
|
|
|
169 |
<p> |
|
|
170 |
<img width="386" height="195" src="IRFEE01A_files/image004.png" |
|
|
171 |
alt="Blokové schéma IR přijímače"> |
|
|
172 |
</p> |
|
|
173 |
|
|
|
174 |
<p> |
|
|
175 |
Sdružují v sobě přijímací fotodiodu, selektivní zesilovač |
|
|
176 |
s proměnným ziskem a obvody pro demodulování signálu. Aby čidlo |
|
|
177 |
fungovalo nezávisle na okolním osvětlení, je jeho pouzdro z černé |
|
|
178 |
hmoty, která propouští je vybranou vlnovou délku infračerveného záření. |
|
|
179 |
</p> |
|
|
180 |
|
|
|
181 |
<p> |
|
|
182 |
<img width="222" height="212" src="IRFEE01A_files/image005.png" |
|
|
183 |
alt="Závislost citlivosti na vlnové délce záření"> |
|
|
184 |
</p> |
|
|
185 |
|
|
|
186 |
<p> |
|
|
187 |
Dálkové ovládání používá spoustu přenosových kódů, ale drtivá většina |
|
|
188 |
je založena na vysílání pulsů nosné frekvence řádu 30 až 50kHz. |
|
|
189 |
Nejkratší přenesený impuls musí obsahovat alespoň 10 period nosného |
|
|
190 |
kmitočtu. Pro optimální fungování přijímače je doporučeno, aby |
|
|
191 |
přenášené impulsy byly dlouhé mezi 10 a 70 periodami nosného kmitočtu. |
|
|
192 |
</p> |
|
|
193 |
|
|
|
194 |
<p> |
|
|
195 |
<img width="362" height="158" src="IRFEE01A_files/image006.png" |
|
|
196 |
alt="Testovací signál"> |
|
|
197 |
</p> |
|
|
198 |
|
|
|
199 |
<p> |
|
|
200 |
Čidla se vyrábějí pro různé frekvence nosného kmitočtu a mohou být lépe |
|
|
201 |
nebo méně přizpůsobené pro použití konkrétního přenosového protokolu |
|
|
202 |
(jedná se o kompromis mezi odolností vůči rušení a parametry |
|
|
203 |
jednotlivých kódů). <i>Je třeba dát pozor na zapojení vývodů, existují |
|
|
204 |
i typy, které mají prohozené napájecí vývody.</i> |
|
|
205 |
</p> |
|
|
206 |
|
|
|
207 |
<h2> Jaký použít IR přijímač? </h2> |
|
|
208 |
|
|
|
209 |
<p> |
|
|
210 |
Zdánlivě prostá otázka skrývá velkou záludnost. Záludnost spočívá |
|
|
211 |
v tom, že některé přijímače IR signálu fungují dobře, jiné |
|
|
212 |
mizerně. Platí zde že méně inteligence může být lépe. |
|
|
213 |
</p> |
|
|
214 |
|
|
|
215 |
<h3> TSOP34838 – špatná volba </h3> |
|
|
216 |
|
|
|
217 |
<p> |
|
|
218 |
Konkrétně přijímač TSOP34838 funguje tak, že s tím, jak se signál |
|
|
219 |
zeslabuje zvyšuje svou citlivost až nakonec signál ztratí. Jenže pak je |
|
|
220 |
třeba signál hodně zesílit, aby ho přijímač zase začal registrovat. |
|
|
221 |
</p> |
|
|
222 |
|
|
|
223 |
<p> |
|
|
224 |
V praxi to pak vypadá tak, že čidlo nic nevidí dokud se překážka |
|
|
225 |
velmi nepřiblíží a pak ji vidí dokud se velmi nevzdálí. Pro náš účel je |
|
|
226 |
tato řada IR přijímačů nepoužitelná. |
|
|
227 |
</p> |
|
|
228 |
|
|
|
229 |
<h3> Jaký přijímač tedy použít? </h3> |
|
|
230 |
|
|
|
231 |
<p> |
|
|
232 |
Nevím. Přijímač, který mám v šuplíku na sobě nemá žádné rozumné |
|
|
233 |
označení. Zato funguje jedna báseň. Překážku čidlo zaregistruje a zase |
|
|
234 |
ztratí v prakticky stejné vzdálenosti. Příležitostně zkusím |
|
|
235 |
nakoupit různé přijímače a otestovat jejich použitelnost. |
|
|
236 |
</p> |
|
|
237 |
|
|
|
238 |
<table> |
|
|
239 |
<tr> |
|
|
240 |
<th> Přijímač </th> |
|
|
241 |
<th> Výrobce </th> |
|
|
242 |
<th> Poznámka </th> |
|
|
243 |
</tr> |
|
|
244 |
<tr> |
|
|
245 |
<td> TSOP34828 </td> |
|
|
246 |
<td> Vishay </td> |
|
|
247 |
<td> Má obrovskou hysterezi mezi zachycením signálu a jeho ztrátou </td> |
|
|
248 |
</tr> |
|
|
249 |
<tr> |
|
|
250 |
<td> Neznámý </td> |
|
|
251 |
<td> Osram? </td> |
|
|
252 |
<td> Funguje výborně </td> |
|
|
253 |
</tr> |
|
|
254 |
</table> |
|
|
255 |
|
|
|
256 |
<h2> Inteligence čidla </h2> |
|
|
257 |
|
|
|
258 |
<p> |
|
|
259 |
Pro detekci překážky by stačilo použít střídavý signál o vhodném |
|
|
260 |
kmitočtu a přímo výstup IR přijímače. Takové řešení ale není příliš |
|
|
261 |
odolné proti rušení, a kromě toho stejně potřebujeme nějaký obvod pro |
|
|
262 |
generování nosného kmitočtu. Proto bylo zvoleno řešení s malým |
|
|
263 |
procesorem, který generuje signál a současně ho i vyhodnocuje. |
|
|
264 |
</p> |
|
|
265 |
|
|
|
266 |
<p> |
|
|
267 |
Vysílá se signál v podobě nepřetržité řady jedniček a nul. |
|
|
268 |
Jednička je představována 10 impulsy nosného kmitočtu a nula stejně |
|
|
269 |
dlouhou mezerou, během které se nevysílá žádné záření. Průběh je na |
|
|
270 |
obrázku ve stopě 1. |
|
|
271 |
</p> |
|
|
272 |
|
|
|
273 |
<p> |
|
|
274 |
<img width="320" height="240" src="IRFEE01A_files/image007.png" |
|
|
275 |
alt="Průběh vysílaného a přijímaného signálu"> |
|
|
276 |
</p> |
|
|
277 |
|
|
|
278 |
<p> |
|
|
279 |
Ve stopě 2 je signál na výstupu IR přijímače U1. Stav L indikuje |
|
|
280 |
detekovaný optický signál. Detekovaný signál na přijímači je „rozpitý“, |
|
|
281 |
protože přijímač potřebuje cca 6 až 10 period signálu pro vyhodnocení a |
|
|
282 |
změnu stavu. Na obrázku vidíme asi 10 sekund aktivity zaznamenané přes |
|
|
283 |
sebe. |
|
|
284 |
</p> |
|
|
285 |
|
|
|
286 |
<p> |
|
|
287 |
Vyhodnocování procesor provádí tak, že testuje, zda přijímač zachytil |
|
|
288 |
kombinaci 10 a pokud ano, zvýší počítadlo úspěšných detekcí. Jakmile |
|
|
289 |
toto počítadlo přeroste aktivační mez, nastaví výstup čidla do stavu H. |
|
|
290 |
Pokud se místo očekávané kombinace 10 přijme cokoli jiného, sníží se |
|
|
291 |
počítadlo. Jakmile počítadlo poklesne pod nulu, výstup čidla se |
|
|
292 |
překlopí do neaktivního stavu L. Obrázek ukazuje máchnutí rukou před |
|
|
293 |
čidlem, odezva 20ms pro zapnutí a 15ms pro vypnutí. |
|
|
294 |
</p> |
|
|
295 |
|
|
|
296 |
<p> |
|
|
297 |
<img width="320" height="240" src="IRFEE01A_files/image008.png" |
|
|
298 |
alt="Odezva čidla na máchnutí rukou"> |
|
|
299 |
</p> |
|
|
300 |
|
|
|
301 |
<p> |
|
|
302 |
Toto poměrně jednoduché řešení vede k solidní odolnosti vůči |
|
|
303 |
rušení. Ani ovladač od televize z bezprostřední blízkosti |
|
|
304 |
neovlivňuje funkci čidla. |
|
|
305 |
</p> |
|
|
306 |
|
|
|
307 |
<h2> Mechanická konstrukce </h2> |
|
|
308 |
|
|
|
309 |
<p> |
|
|
310 |
Předpokládá se, že čidlo bude připevněno na přední část robotu nebo na |
|
|
311 |
nějaký drátový nebo plechový tvarovatelný nosník. Je proto opatřeno 1 |
|
|
312 |
upevňovacím šroubem. Vysílací dioda a přijímací obvod na sebe nesmějí |
|
|
313 |
vidět a je nutné tyto komponenty doplnit vhodně tvarovanými stínítky |
|
|
314 |
tak, aby čidlo detekovalo překážky dle potřeby. Přijímač je velmi |
|
|
315 |
citlivý a vidí vysílací LED i tehdy, kdyby to člověk neřekl (například |
|
|
316 |
zezadu). Stínítko lze udělat například z černé smršťovací bužírky. |
|
|
317 |
</p> |
|
|
318 |
|
|
|
319 |
<p> |
|
|
320 |
Vysílací IR LED lze osadit jak shora desky, tak i ze spodní strany. |
|
|
321 |
V případě potřeby je možné LED umístit dál od desky a vhodně |
|
|
322 |
nasměrovat. |
|
|
323 |
</p> |
|
|
324 |
|
|
|
325 |
<h1> Osazení a oživení </h1> |
|
|
326 |
|
|
|
327 |
<h2> Osazení </h2> |
|
|
328 |
|
|
|
329 |
<p> |
|
|
330 |
<img width="567" height="241" src="IRFEE01A_files/image010.jpg" |
|
|
331 |
alt="Osazovací výkres, strana součástek"> |
|
|
332 |
</p> |
|
|
333 |
|
|
|
334 |
<p> |
|
|
335 |
<img width="563" height="240" src="IRFEE01A_files/image011.jpg" |
|
|
336 |
alt="Osazovací výkres, strana spojů"> |
|
|
337 |
</p> |
|
|
338 |
|
|
|
339 |
<table class="Soupiska"> |
|
|
340 |
<tr> |
|
|
341 |
<th> Počet </th> |
|
|
342 |
<th> Reference </th> |
|
|
343 |
<th> Název </th> |
|
|
344 |
<th> Pouzdro </th> |
|
|
345 |
</tr> |
|
|
346 |
<tr> |
|
|
347 |
<th colspan="4"> Odpory </th> |
|
|
348 |
</tr> |
|
|
349 |
<tr> |
|
|
350 |
<td> 1 </td> |
|
|
351 |
<td> R1 </td> |
|
|
352 |
<td> 100 </td> |
|
|
353 |
<td> R0805 </td> |
|
|
354 |
</tr> |
|
|
355 |
<tr> |
|
|
356 |
<td> 1 </td> |
|
|
357 |
<td> R2 </td> |
|
|
358 |
<td> 330 </td> |
|
|
359 |
<td> R0805 </td> |
|
|
360 |
</tr> |
|
|
361 |
<tr> |
|
|
362 |
<td> 1 </td> |
|
|
363 |
<td> R3 </td> |
|
|
364 |
<td> 680 </td> |
|
|
365 |
<td> R0805 </td> |
|
|
366 |
</tr> |
|
|
367 |
<tr> |
|
|
368 |
<td> 1 </td> |
|
|
369 |
<td> R4 </td> |
|
|
370 |
<td> 10k </td> |
|
|
371 |
<td> R0805 </td> |
|
|
372 |
</tr> |
|
|
373 |
<tr> |
|
|
374 |
<th colspan="4"> Keramické kondenzátory </th> |
|
|
375 |
</tr> |
|
|
376 |
<tr> |
|
|
377 |
<td> 2 </td> |
|
|
378 |
<td> C1, C2 </td> |
|
|
379 |
<td> 4u7/6.3V </td> |
|
|
380 |
<td> C0805 </td> |
|
|
381 |
</tr> |
|
|
382 |
<tr> |
|
|
383 |
<th colspan="4"> Diody </th> |
|
|
384 |
</tr> |
|
|
385 |
<tr> |
|
|
386 |
<td> 1 </td> |
|
|
387 |
<td> D1 </td> |
|
|
388 |
<td> 1N4007SMD </td> |
|
|
389 |
<td> MELF </td> |
|
|
390 |
</tr> |
|
|
391 |
<tr> |
|
|
392 |
<th colspan="4"> LED </th> |
|
|
393 |
</tr> |
|
|
394 |
<tr> |
|
|
395 |
<td> 1 </td> |
|
|
396 |
<td> D2 </td> |
|
|
397 |
<td> L-53F3BT </td> |
|
|
398 |
<td> LED5 </td> |
|
|
399 |
</tr> |
|
|
400 |
<tr> |
|
|
401 |
<td> 1 </td> |
|
|
402 |
<td> D3 </td> |
|
|
403 |
<td> LED_RED_5mm </td> |
|
|
404 |
<td> LED5 </td> |
|
|
405 |
</tr> |
|
|
406 |
<tr> |
|
|
407 |
<th colspan="4"> Integrované obvody </th> |
|
|
408 |
</tr> |
|
|
409 |
<tr> |
|
|
410 |
<td> 1 </td> |
|
|
411 |
<td> U1 </td> |
|
|
412 |
<td> IR_RECEIVER (viz text) </td> |
|
|
413 |
<td> TSOP348xx </td> |
|
|
414 |
</tr> |
|
|
415 |
<tr> |
|
|
416 |
<td> 1 </td> |
|
|
417 |
<td> U2 </td> |
|
|
418 |
<td> ATtiny13-20SU </td> |
|
|
419 |
<td> SO8_210 </td> |
|
|
420 |
</tr> |
|
|
421 |
<tr> |
|
|
422 |
<th colspan="4"> Mechanické součástky </th> |
|
|
423 |
</tr> |
|
|
424 |
<tr> |
|
|
425 |
<td> 1 </td> |
|
|
426 |
<td> J1 </td> |
|
|
427 |
<td> JUMP3 </td> |
|
|
428 |
<td> JUMP3 </td> |
|
|
429 |
</tr> |
|
|
430 |
<tr> |
|
|
431 |
<td> 1 </td> |
|
|
432 |
<td> J2 </td> |
|
|
433 |
<td> JUMP1 </td> |
|
|
434 |
<td> JUMP1 </td> |
|
|
435 |
</tr> |
|
|
436 |
<tr> |
|
|
437 |
<td> 1 </td> |
|
|
438 |
<td> J3 </td> |
|
|
439 |
<td> JUMP2x3 </td> |
|
|
440 |
<td> JUMP2x3/B </td> |
|
|
441 |
</tr> |
|
|
442 |
</table> |
|
|
443 |
|
|
|
444 |
<p> |
|
|
445 |
<img width="328" height="147" src="IRFEE01A_files/image009.jpg" |
|
|
446 |
alt="Obrázek osazené desky ze strany spojů"> |
|
|
447 |
</p> |
|
|
448 |
|
|
|
449 |
<h2> Oživení a kalibrace </h2> |
|
|
450 |
|
|
|
451 |
<p> |
|
|
452 |
Oživení spočívá v naprogramování řídícího programu do procesoru. |
|
|
453 |
Je třeba použít program, který generuje vysílací signál o stejné |
|
|
454 |
frekvenci, na jakou je naladěn přijímací obvod. Hodnoty pro |
|
|
455 |
naprogramování konfiguračních buněk procesoru jsou uvedeny na začátku |
|
|
456 |
zdrojového kódu. |
|
|
457 |
</p> |
|
|
458 |
|
|
|
459 |
<h1> Programové vybavení </h1> |
|
|
460 |
|
|
|
461 |
<h2> Popis programu </h2> |
|
|
462 |
|
|
|
463 |
<p> |
|
|
464 |
Pro generování budícího signálu vysílací IR diody se využívá časovač |
|
|
465 |
v režimu CTC. Časovač opakovaně čítá od 0 do horní meze, která je |
|
|
466 |
nastavena v registru OCR0A. Touto konstantou je dána frekvence |
|
|
467 |
generovaného signálu. |
|
|
468 |
</p> |
|
|
469 |
|
|
|
470 |
<p> |
|
|
471 |
Při každém dosažení horní meze časovače se automaticky neguje výstup |
|
|
472 |
PB1, na který je připojena vysílací dioda. Současně se vyvolá |
|
|
473 |
podprogram pro obsluhu přerušení, který čítá počet půlperiod vysílaného |
|
|
474 |
signálu. Pokud se má vysílat tma (nazvěme stav 0), vše probíhá stejně, |
|
|
475 |
jen se výstupní stav PB1 nemění. |
|
|
476 |
</p> |
|
|
477 |
|
|
|
478 |
<p> |
|
|
479 |
Po vyslání nastaveného počtu period signálu (konstanta SYMBOL_LENGTH) |
|
|
480 |
se střídá vysílání stavu 0 a 1 (střídavý signál a tma) a současně se |
|
|
481 |
vyhodnocuje, zda se přijímaný signál shoduje s vysílaným. |
|
|
482 |
Vyhodnocování se provádí po dvojici 0/1. |
|
|
483 |
</p> |
|
|
484 |
|
|
|
485 |
<p> |
|
|
486 |
Hlavní program obsahuje inicializační část a prázdnou nekonečnou |
|
|
487 |
smyčku. Za běhu se vše vyřizuje v podprogramu obsluhy přerušení od |
|
|
488 |
časovače. |
|
|
489 |
</p> |
|
|
490 |
|
|
|
491 |
<h2> Překlad programu </h2> |
|
|
492 |
|
|
|
493 |
<p> |
|
|
494 |
Pro překlad je připravený Makefile, který přeloží program |
|
|
495 |
s nastavením pro vyjmenované nosné kmitočty. |
|
|
496 |
</p> |
|
|
497 |
</div> |
|
|
498 |
|
|
|
499 |
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --> |
|
|
500 |
<!-- ============== PATIČKA ============== --> |
|
|
501 |
<div class="Footer"> |
|
|
502 |
<script type="text/javascript"> |
|
|
503 |
<!-- |
|
|
504 |
SetRelativePath("../../../../../"); |
|
|
505 |
DrawFooter(); |
|
|
506 |
// --> |
|
|
507 |
</script> |
|
|
508 |
<noscript> |
|
|
509 |
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> |
|
|
510 |
</noscript> |
|
|
511 |
</div> |
|
|
512 |
<!-- AUTOINCLUDE END --> |
|
|
513 |
|
|
|
514 |
</body> |
|
|
515 |
</html> |