<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="da">
	<id>https://www.htxarduino.dk/index.php?action=history&amp;feed=atom&amp;title=Humidity</id>
	<title>Humidity - Versionshistorie</title>
	<link rel="self" type="application/atom+xml" href="https://www.htxarduino.dk/index.php?action=history&amp;feed=atom&amp;title=Humidity"/>
	<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Humidity&amp;action=history"/>
	<updated>2026-06-13T13:44:18Z</updated>
	<subtitle>Versionshistorie for denne side i HTX Arduino</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Humidity&amp;diff=2921&amp;oldid=prev</id>
		<title>Bar: /* Funktionsbeskrivelse */</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Humidity&amp;diff=2921&amp;oldid=prev"/>
		<updated>2022-10-22T21:03:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Funktionsbeskrivelse&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;da&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Ældre version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen fra 22. okt. 2022, 23:03&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l132&quot;&gt;Linje 132:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linje 132:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Aflæsningen foregår ved at man starter med at sætte I/O-benet til output og trækker det lavt.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Aflæsningen foregår ved at man starter med at sætte I/O-benet til output og trækker det lavt.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der sendes så en lav puls i ca. 18 ms.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der sendes så en lav puls i ca. 18 ms.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Så starter man kommunikationen ved at trække I/O-benet højt, og sætte det til at være input.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Så starter man kommunikationen ved at trække I/O-benet højt, og sætte det til at være input.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bar</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Humidity&amp;diff=2919&amp;oldid=prev</id>
		<title>Bar med 22. okt. 2022, 21:02</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Humidity&amp;diff=2919&amp;oldid=prev"/>
		<updated>2022-10-22T21:02:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;da&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Ældre version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen fra 22. okt. 2022, 23:02&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Linje 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linje 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:modul-31.jpg|thumb|right|300px|Billede af Humidity Temperatur modul DHT11]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:modul-31.jpg|thumb|right|300px|Billede af Humidity Temperatur modul DHT11]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Overordnet beskrivelse af modul DHT11.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Overordnet beskrivelse af modul DHT11.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Modulet man måle både temperatur og luftfugtighed, og skal aflæses digitalt.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Modulet man måle både temperatur og luftfugtighed, og skal aflæses digitalt.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bar</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Humidity&amp;diff=2803&amp;oldid=prev</id>
		<title>Bar: 1 version importeret</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Humidity&amp;diff=2803&amp;oldid=prev"/>
		<updated>2022-10-22T20:35:55Z</updated>

		<summary type="html">&lt;p&gt;1 version importeret&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;da&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Ældre version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen fra 22. okt. 2022, 22:35&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;da&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Ingen forskel)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Bar</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=Humidity&amp;diff=2802&amp;oldid=prev</id>
		<title>htx_&gt;Bar: /* Referener */</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Humidity&amp;diff=2802&amp;oldid=prev"/>
		<updated>2017-10-06T07:46:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Referener&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny side&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Image:modul-31.jpg|thumb|right|300px|Billede af Humidity Temperatur modul DHT11]]&lt;br /&gt;
&lt;br /&gt;
Overordnet beskrivelse af modul DHT11.&lt;br /&gt;
&lt;br /&gt;
Modulet man måle både temperatur og luftfugtighed, og skal aflæses digitalt.&lt;br /&gt;
&lt;br /&gt;
==Modulet==&lt;br /&gt;
Modulet er fra keyes-serien [[keyes-moduler]], og har betegnelsen KY-015.&lt;br /&gt;
&lt;br /&gt;
==Princip-diagram for DHT11 modul==&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
Føleren skal have +5V og stel (GND) for at fungere.&lt;br /&gt;
&lt;br /&gt;
Man kan aflæse føleren på et enkelt ben, som skal have en pull-up modstand monteret, for at det fungerer korrekt - den er monteret på Keyes modulet.&lt;br /&gt;
&lt;br /&gt;
Komponenten er kinesisk, og det er det originale datablad også. Det kan ses i denne [[Media:DHT11-kina.pdf|PDF fil på kinesisk]], men der er så meget information, at nogen har kunnet oversætte den, og udgive den som http://www.robotshop.com/PDF/dht11.pdf &amp;lt;ref name=&amp;quot;datablad&amp;quot;&amp;gt;[http://www.robotshop.com/PDF/dht11.pdf Oversat datablad på engelsk]&amp;lt;/ref&amp;gt; - den er også gemt i denne [[Media:DHT11.pdf|PDF fil på engelsk]].&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
[[Image:DHT11-diag.PNG|Principskitse af DHT11 modul]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Andre versioner af DHT moduler===&lt;br /&gt;
Der findes også et modul der hedder DHT22, som er mere præcist, og som kan svare med 1 decimal.&lt;br /&gt;
&lt;br /&gt;
Nøjagtigheden er +/- 2% luftfugtighed og +/- 0.5 grad C&lt;br /&gt;
&lt;br /&gt;
Specifikationerne er hentet fra denne [[Media:DHT22.pdf|PDF fil på engelsk]].&lt;br /&gt;
&lt;br /&gt;
==Software modulet DHT11.jal==&lt;br /&gt;
Softwaren kan aflæse DHT11 modulet, og svarer med en luftfugtighed i hele procent og en temperatur i hele grader.&lt;br /&gt;
&lt;br /&gt;
===Anvendelse af DHT11===&lt;br /&gt;
Når man vil anvende DHT11 modulet, så skal man [[include]] DHT11.jal som følger:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
   include DHT11&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis DHT11.jal ligger i \lib inde i c:\jalpack så kan compileren finde modulet.&lt;br /&gt;
&lt;br /&gt;
DHT11 anvender ikke andre moduler&lt;br /&gt;
&lt;br /&gt;
[[JAL-fil]]en ligger sammen med et par eksempler inde i [[Fil:Hum_Temp_jal.zip|ZIP-filen med koden]]&lt;br /&gt;
&lt;br /&gt;
DHT11 er testet på følgende kombinationer:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!PIC!!pin&lt;br /&gt;
|-&lt;br /&gt;
|[[PIC16F684]]||&lt;br /&gt;
|-&lt;br /&gt;
|[[PIC16F690]]|| a2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Modulet har ikke andre begrænsninger end at det skal kunne sætte benet op til både udgang og indgang, så det burde kunne fungere på de fleste ben og de fleste [[PIC-typer]].&lt;br /&gt;
&lt;br /&gt;
===Interface fil til DHT11===&lt;br /&gt;
Beskrivelse af hvad man kan rette på i interface-filen.&lt;br /&gt;
&lt;br /&gt;
I DHT11_def.jal kan man angive hvilket portben føleren er tilsluttet ved:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
alias Hum_I_O_pin      is pin_a2&lt;br /&gt;
alias Hum_I_O_pin_dir  is pin_a2_direction&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desuden er der angivet konstanter som er tælletallet der afgør om det er et højt eller et lavt bit der læses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
const Hum_count_high_4_MHz = 6&lt;br /&gt;
const Hum_count_high_8_MHz = 12&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Anvendelsen af DHT11==&lt;br /&gt;
&lt;br /&gt;
Man skal have DHT11_def.jal i samme mappe som sin kode, så man får angivet benforbindelsen og konstanterne til modulet.&lt;br /&gt;
&lt;br /&gt;
I loopet kan man kalde DHT11, der returnerer true, hvis kommunikationen med modulet fungerede korrekt. De to parametre der angives i funktionskaldet er faktisk dem der returnerer værdierne for relativ luftfugtighed og temperatur.&lt;br /&gt;
&lt;br /&gt;
En ting man skal være opmærksom på er at funktionen ikke må kaldes for tit, da DHT11 modulet skal have lidt tid inden det kan returnere en ny måleværdi. Databladet angiver 1s som periodetid, men ud fra eksperimenter kan en pause på ca. 200 ms være nok - det er dog ikke noget der er testet for alle værdier af temperatur og luftfugtighed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
 include DHT11.jal&lt;br /&gt;
&lt;br /&gt;
 forever loop&lt;br /&gt;
   if (DHT11(Hum, Temp) then&lt;br /&gt;
      -- Display de hentede værdier&lt;br /&gt;
   else&lt;br /&gt;
      -- Kom med en fejlmelding&lt;br /&gt;
   end if&lt;br /&gt;
   delay_100ms(5)    -- Her skal der gå noget tid inden man kalder modulet igen&lt;br /&gt;
&lt;br /&gt;
   --&lt;br /&gt;
   -- Her kan placeres anden kode i loopet, der skal lave andre ting&lt;br /&gt;
   --&lt;br /&gt;
 end loop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Demo-softwaren kan sammen med DHT11 modulet give følgende visning på et display:&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Fil:Hum_demo.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Forklaring af DHT11 modulets software==&lt;br /&gt;
&lt;br /&gt;
Set ude fra kaldes funktionen der aflæser DHT11 føleren.&lt;br /&gt;
&lt;br /&gt;
Inde i funktionen foretages kommunikationen med føleren, og der tjekkes om resultatet er fornuftigt&lt;br /&gt;
&lt;br /&gt;
===Initialisering af softwaren===&lt;br /&gt;
&lt;br /&gt;
Initialiseringen kan i [[Pseudokode]] udtrykkes som følger:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Læs opsætningen i DHT11_def.jal&lt;br /&gt;
   Sæt I/O-benet op til Input&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Funktionen DHT11===&lt;br /&gt;
&lt;br /&gt;
Beskrivelse af de funktioner der er til modulet (hvad kan man bruge af forskellige ting)&lt;br /&gt;
&lt;br /&gt;
===Konstanterne i interface-filen===&lt;br /&gt;
De konstanter der er angivet i interfacefilen er lavet for at kunne arbejde med modulet på forskellige clock-frekvenser.&lt;br /&gt;
&lt;br /&gt;
Konstanterne angiver middelværdien mellem det antal tællinger man kan nå på 26 us og det man kan nå på 70 us, som er forskellem på at angive 0 og 1.&lt;br /&gt;
&lt;br /&gt;
===Funktionsbeskrivelse===&lt;br /&gt;
&lt;br /&gt;
Aflæsningen foregår ved at man starter med at sætte I/O-benet til output og trækker det lavt.&lt;br /&gt;
&lt;br /&gt;
Der sendes så en lav puls i ca. 18 ms.&lt;br /&gt;
&lt;br /&gt;
Så starter man kommunikationen ved at trække I/O-benet højt, og sætte det til at være input.&lt;br /&gt;
&lt;br /&gt;
Benet er højt i ca. 20 us, så man venter på at benet går lavt.&lt;br /&gt;
&lt;br /&gt;
Som start sender modulet en lav puls i 80 us, og derefter en høj puls i 80 us.&lt;br /&gt;
&lt;br /&gt;
Starten kan illustreres som følger:&lt;br /&gt;
&lt;br /&gt;
[[fil:DHT11-start.PNG]]&lt;br /&gt;
&lt;br /&gt;
Efter starten sendes der 40 bit, der fordeles på 5 bytes.&lt;br /&gt;
&lt;br /&gt;
Hver byte kodes ved at en 0 bit sendes som en lav puls i 50 us efterfulgt af en høj puls på 26 us, hvor en 1 bit sendes som 50 us lav efterfulgt af 70 us høj puls.&lt;br /&gt;
&lt;br /&gt;
En 0 bit ser ud som følger:&amp;lt;br /&amp;gt;&lt;br /&gt;
[[fil:DHT11-0bit.PNG]]&lt;br /&gt;
&lt;br /&gt;
En 1-bit ser ud som følger:&amp;lt;br /&amp;gt;&lt;br /&gt;
[[fil:DHT11-1bit.PNG]]&lt;br /&gt;
&lt;br /&gt;
Disse 40 bits samles op i et array med 5 byte, hvor værdierne er kodet som følger:&lt;br /&gt;
* Første byte er luftfugtigheden&lt;br /&gt;
* Anden byte er ment som decimalerne på luftfugtigheden, men den er altid 0&lt;br /&gt;
* Tredje byte er temperaturen i grader celcius&lt;br /&gt;
* Fjerde byte er ment som decimalerne på temperaturen, men den er altid 0&lt;br /&gt;
* Femte byte er en sammentælling af de 4 første bytes som checksum.&lt;br /&gt;
Hvis den ikke passer er der fejl i kommunikationen&lt;br /&gt;
&lt;br /&gt;
===Koden inde i funktionen DHT11===&lt;br /&gt;
&lt;br /&gt;
Funktionsdefinitionen angiver at funktionen hedder DHT11, og at den er af typen bit, altså kan returnere enten sandt eller falsk.&lt;br /&gt;
&lt;br /&gt;
De to parametre er også returværdier, der indeholder den relative luftfugtighed og temperaturen i grader celcius.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
function DHT11(byte out Fugt, byte out Temp) return bit is&lt;br /&gt;
   -- Koden inde i funktionen&lt;br /&gt;
end function&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Den første del i funktionen sender det til føleren, som sætter kommunikationen i gang. 18 ms lav puls og så at den sættes høj, og omstilles til input.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
  -- Send en lav puls ud, for at starte modtagelsen af 40 bit&lt;br /&gt;
  Hum_I_O_pin_dir = output&lt;br /&gt;
  Hum_I_O_pin = low&lt;br /&gt;
  delay_1ms(18)&lt;br /&gt;
  Hum_lowcount = 0&lt;br /&gt;
  Hum_highcount = 0&lt;br /&gt;
  -- Afslut pulsen og gør klar til modtagelse&lt;br /&gt;
  Hum_I_O_pin = high&lt;br /&gt;
  Hum_I_O_pin_dir = input&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Efter starten registreres følerens start-sekvens.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
  -- Vent på at DHT11 svarer&lt;br /&gt;
  while Hum_I_O_pin loop&lt;br /&gt;
     Hum_highcount = Hum_highcount + 1&lt;br /&gt;
     if Hum_highcount == 0 then&lt;br /&gt;
        exit loop&lt;br /&gt;
     end if&lt;br /&gt;
  end loop&lt;br /&gt;
  -- Vent på en lav startbit&lt;br /&gt;
  while ! Hum_I_O_pin loop&lt;br /&gt;
     Hum_lowcount = Hum_lowcount + 1&lt;br /&gt;
     if Hum_lowcount == 0 then&lt;br /&gt;
        exit loop&lt;br /&gt;
     end if&lt;br /&gt;
  end loop&lt;br /&gt;
  -- Vent på en høj startbit&lt;br /&gt;
  while Hum_I_O_pin loop&lt;br /&gt;
     Hum_highcount = Hum_highcount + 1&lt;br /&gt;
     if Hum_highcount == 0 then&lt;br /&gt;
        exit loop&lt;br /&gt;
     end if&lt;br /&gt;
  end loop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter hentes de 40 bit data, og de gemmes i et array på 5 byte&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
  -- Lav et loop der henter 8 byte ind&lt;br /&gt;
  for 5 using Hum_ptr loop&lt;br /&gt;
     -- Lave et loop der læser 1 byte ind&lt;br /&gt;
     for 8 loop&lt;br /&gt;
        Hum_lowcount = 0&lt;br /&gt;
        Hum_highcount = 0&lt;br /&gt;
        -- Vent på den lave start af en bit (ca. 50 us)&lt;br /&gt;
        while ! Hum_I_O_pin loop&lt;br /&gt;
           Hum_lowcount = Hum_lowcount + 1&lt;br /&gt;
           if Hum_lowcount == 0 then&lt;br /&gt;
              exit loop&lt;br /&gt;
           end if&lt;br /&gt;
        end loop&lt;br /&gt;
        -- Vent på den høje del af en bit - 26 us svarer til 0, 70 us svarer til 1&lt;br /&gt;
        while Hum_I_O_pin loop&lt;br /&gt;
           Hum_highcount = Hum_highcount + 1&lt;br /&gt;
           if Hum_highcount == 0 then&lt;br /&gt;
              exit loop&lt;br /&gt;
           end if&lt;br /&gt;
        end loop&lt;br /&gt;
        -- Registrer om bitten er læst som høj eller lav - saml op i Hum_inbyte&lt;br /&gt;
        -- Denne værdi er afhængig af clock-frekvensen&lt;br /&gt;
if target_clock == 4_000_000 then&lt;br /&gt;
        if Hum_highcount &amp;gt; Hum_count_high_4_MHz then&lt;br /&gt;
           Hum_inbyte = (Hum_inbyte &amp;lt;&amp;lt; 1) + 1&lt;br /&gt;
        else&lt;br /&gt;
           Hum_inbyte = Hum_inbyte &amp;lt;&amp;lt; 1&lt;br /&gt;
        end if&lt;br /&gt;
elsif target_clock == 8_000_000 then&lt;br /&gt;
        if Hum_highcount &amp;gt; Hum_count_high_8_MHz then&lt;br /&gt;
           Hum_inbyte = (Hum_inbyte &amp;lt;&amp;lt; 1) + 1&lt;br /&gt;
        else&lt;br /&gt;
           Hum_inbyte = Hum_inbyte &amp;lt;&amp;lt; 1&lt;br /&gt;
        end if&lt;br /&gt;
else&lt;br /&gt;
pragma error &amp;quot;Der skal angives en counter værdi til clock-frekvensen&amp;quot;&lt;br /&gt;
end if&lt;br /&gt;
     end loop&lt;br /&gt;
     Hum_array[Hum_ptr] = hum_inbyte&lt;br /&gt;
  end loop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Når de 5 byte er hentet kontrolleres der om der er sket fejl i transmissionen, dels ved at kigge på om den sidste høje er talt for langt, dels ved at se om summen af de 4 første bytes er 0 (det er svaret, hvis modulet ikke har været klar til at kommunikere) og endelig tjekkes om summen af de 4 første bytes er det samme som der er sendt i den 5. byte, som er check-summen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
  -- Hvis highcount har talt helt igennem, så er der smuttet en eller flere bit&lt;br /&gt;
  if Hum_highcount == 0 then&lt;br /&gt;
     return false&lt;br /&gt;
  end if&lt;br /&gt;
  -- Beregn summen af de 4 svar-byte&lt;br /&gt;
  Hum_lowcount = Hum_array[0] + Hum_array[1] + Hum_array[2] + Hum_array[3]&lt;br /&gt;
  -- Hvis summen bliver 0, så er resultatet meget sandsynligt at både fugtighed&lt;br /&gt;
  -- og temperatur viser 0, og det er en fejl (sker ved for hurtig læsning)&lt;br /&gt;
  if Hum_lowcount == 0 then&lt;br /&gt;
     return false&lt;br /&gt;
  end if&lt;br /&gt;
  -- Hvis summen af de 4 svarbyte ikke er det samme som den sendte tjeksom, så er svaret&lt;br /&gt;
  -- ikke pålideligt&lt;br /&gt;
  if Hum_lowcount != Hum_array[4] then&lt;br /&gt;
     return false&lt;br /&gt;
  end if&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis der ikke har været fejl i kommunikationen, så hentes de to bytes og der returneres tru, for at indikere at kommunikationen er i orden.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;jal&amp;quot;&amp;gt;&lt;br /&gt;
  -- Hent værdierne og indiker at de er i orden.&lt;br /&gt;
  Fugt = Hum_array[0]&lt;br /&gt;
  Temp = Hum_array[2]&lt;br /&gt;
  return true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Referener==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{moduler}}&lt;br /&gt;
&lt;br /&gt;
{{keyes-moduler}}&lt;br /&gt;
&lt;br /&gt;
{{Arduino-Modul-Oversigt}}&lt;br /&gt;
[[Kategori:Arduino Moduler]]&lt;br /&gt;
[[Kategori:JAL-moduler]]&lt;br /&gt;
[[Kategori:PIC-moduler]]&lt;/div&gt;</summary>
		<author><name>htx_&gt;Bar</name></author>
	</entry>
</feed>