<?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=Arduino_Pin_Library</id>
	<title>Arduino Pin Library - Versionshistorie</title>
	<link rel="self" type="application/atom+xml" href="https://www.htxarduino.dk/index.php?action=history&amp;feed=atom&amp;title=Arduino_Pin_Library"/>
	<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Arduino_Pin_Library&amp;action=history"/>
	<updated>2026-07-02T00:38:43Z</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=Arduino_Pin_Library&amp;diff=4962&amp;oldid=prev</id>
		<title>Bar: /* Referencer */</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Arduino_Pin_Library&amp;diff=4962&amp;oldid=prev"/>
		<updated>2022-11-15T19:30:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Referencer&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 15. nov. 2022, 21:30&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-l170&quot;&gt;Linje 170:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linje 170:&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;==Referencer==&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;==Referencer==&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;div&gt;&amp;lt;references/&amp;gt;&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;&amp;lt;references/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Programmering}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&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;div&gt;{{Arduino-Modul-Oversigt}}&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;{{Arduino-Modul-Oversigt}}&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;div&gt;[[Kategori:Arduino Moduler]]&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;[[Kategori:Arduino Moduler]]&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=Arduino_Pin_Library&amp;diff=3959&amp;oldid=prev</id>
		<title>Bar: 1 version importeret</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Arduino_Pin_Library&amp;diff=3959&amp;oldid=prev"/>
		<updated>2022-10-26T12:50:08Z</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 26. okt. 2022, 14:50&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=Arduino_Pin_Library&amp;diff=3958&amp;oldid=prev</id>
		<title>htx_&gt;Bar: /* Test */</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Arduino_Pin_Library&amp;diff=3958&amp;oldid=prev"/>
		<updated>2019-11-20T11:21:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Test&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny side&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Biblioteket er udviklet som et eksempel på hvordan man opbygger et bibliotek.&lt;br /&gt;
&lt;br /&gt;
For at anvende biblioteket skal man hente og installere biblioteket, der kan hentes i [[media:Pin_Library.zip|denne ZIP-fil]] og installeres som beskrevet i [[Arduinos Biblioteker]]&lt;br /&gt;
&lt;br /&gt;
==Ideen bag biblioteket==&lt;br /&gt;
Den grundlæggende ide er at kunne få pins til at lave nogle ting der sker mere eller mindre automatisk, og så lade biblioteket håndtere om pins er input eller output.&lt;br /&gt;
&lt;br /&gt;
Det betyder at metoderne selv finder ud af om en pin skal være input eller output ud fra hvilken metode der anvendes på den. Samtidigt betyder det at metoderne stopper det sidste man har gjort ved en pin, hvis man kalder en anden metode.&lt;br /&gt;
&lt;br /&gt;
Det betyder også at der skal ligge noget software &amp;quot;bagved&amp;quot;, som kan opdatere en udgang &amp;quot;automatisk&amp;quot;. Dette er løst ved at bruge Timer 2&amp;lt;ref&amp;gt;[https://www.sparkfun.com/datasheets/Components/SMD/ATMega328.pdf Datablad for ATMega328 - side 144 og fremad]&amp;lt;/ref&amp;gt; til at opdatere hvert millisekund. Det betyder at biblioteket ikke kan fungere sammen med andre biblioteker, som anvende timer 2.&lt;br /&gt;
&lt;br /&gt;
==Anvendelse af biblioteket==&lt;br /&gt;
For at kunne bruge biblioteket skal man include det i starten og definere nogle objekter fra klassen Pin, som det vises her:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Pin.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin blink1(3);&lt;br /&gt;
Pin blink2(4);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Simple output metoder==&lt;br /&gt;
For at kunne tænde og slukke udgange er der to metoder:&lt;br /&gt;
&lt;br /&gt;
 blink1.on();&lt;br /&gt;
 blink1.off();&lt;br /&gt;
&lt;br /&gt;
Disse metoder sætter benet op som output og tænder eller slukke for udgangen.&lt;br /&gt;
&lt;br /&gt;
==Output metoder med delay==&lt;br /&gt;
For at kunne få en udgang til at lave noget efter et stykke tid, så er der 3 metoder til det:&lt;br /&gt;
&lt;br /&gt;
 demoDelayOn.delayedON(2000);&lt;br /&gt;
 demoDelayOff.delayedOFF(3000);&lt;br /&gt;
 demoDelayPulse.delayedOnePulse(1000, 500);&lt;br /&gt;
&lt;br /&gt;
delayedON() vil tænde udgangen det angivne antal millisekunder efter metoden er aktiveret. Den slukker udgangen når den kaldes.&lt;br /&gt;
&lt;br /&gt;
delayedOFF() vil slukke udgangen det angivne antal millisekunder efter metoden er aktiveret. Den tænder udgangen når den kaldes.&lt;br /&gt;
&lt;br /&gt;
delayedOnePulse() vil starte med at slukke udgangen, så vil den vente det første antal millisekunder og tænde udgangen i det andet antal millisekunder, hvorefter den slukkes igen.&lt;br /&gt;
&lt;br /&gt;
Fordelen ved disse metoder er at de returnerer umiddelbart efter at de er kaldt, så de ikke venter inde i rutinen på at tiden er gået, men at man kan lave andre ting umiddelbart efter.&lt;br /&gt;
&lt;br /&gt;
==Metoder med fortsat aktivitet==&lt;br /&gt;
Hvis man vil have en pin til at lave noget periodisk, som den bare bliver ved med, så er der to metoder:&lt;br /&gt;
&lt;br /&gt;
 blink1.startBlink(300);&lt;br /&gt;
 blink2.pulsing(200, 2800);&lt;br /&gt;
&lt;br /&gt;
Metoden startBlink() sætter udgangen i gang med at blinke med en angivet periodetid.&lt;br /&gt;
&lt;br /&gt;
Metoden pulsing() gør stort set det samme, men med puls-tiden og pausetiden angivet hver for sig.&lt;br /&gt;
&lt;br /&gt;
Fordelen ved disse metoder er at de kun skal kaldes én gang (fx i setup()) og så fortsætter de.&lt;br /&gt;
&lt;br /&gt;
De kan også anvendes til at gøre mere opmærksom på en LED ved at man fx starter en alarm ved at den blinker, og når alarmen skal afstilles, så kan man blot kalde off() metoden.&lt;br /&gt;
&lt;br /&gt;
==Test==&lt;br /&gt;
Test af softwaren viser at biblioteket med den beskrevne software virker efter hensigten.&lt;br /&gt;
&lt;br /&gt;
Testen er lavet ved hjælp af de eksempler der kommer med biblioteket.&lt;br /&gt;
&lt;br /&gt;
===Output eksempel===&lt;br /&gt;
Eksemplet med output viser kombinationen af to output der er styret af tidsfunktionen i biblioteket og et output der styres direkte fra [[loop()]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Pin_Output.ino - Example showing output Pin action using Pin library.&lt;br /&gt;
  The library uses Timer 2 for timing&lt;br /&gt;
  Created by Bent Arnoldsen october 2019.&lt;br /&gt;
  Released into the public domain.&lt;br /&gt;
 */&lt;br /&gt;
#include &amp;lt;Pin.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin blink1(3);&lt;br /&gt;
Pin blink2(4);&lt;br /&gt;
Pin manual(5);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
  blink1.startBlink(300);   // Start blink1 LED with a period of 300ms&lt;br /&gt;
  blink2.pulsing(200, 2800);  // Start blink2 LED with 200ms on and 2800ms off&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
  manual.on();  // Simple turn on method&lt;br /&gt;
  delay(500);&lt;br /&gt;
  manual.off(); // Simple turn off method&lt;br /&gt;
  delay(500);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Input eksempel===&lt;br /&gt;
Eksemplet med input anvender to forskellige input, både normalt og med pullup og inverteret. Begge output forbinders med software til et output i [[loop()]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Pin_Input.ino - Example showing input Pin action using Pin library.&lt;br /&gt;
  The library uses Timer 2 for timing&lt;br /&gt;
  Created by Bent Arnoldsen october 2019.&lt;br /&gt;
  Released into the public domain.&lt;br /&gt;
 */&lt;br /&gt;
#include &amp;lt;Pin.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin simpleKontact(8);&lt;br /&gt;
Pin pullUpKontact(9);&lt;br /&gt;
Pin showSimple(3);&lt;br /&gt;
Pin showPullUp(4);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
  if (simpleKontact.getIn()) {  // Are the contact pressed&lt;br /&gt;
    showSimple.on();&lt;br /&gt;
  } else {&lt;br /&gt;
    showSimple.off();&lt;br /&gt;
  }&lt;br /&gt;
  if (! pullUpKontact.getInPullUp()) {  // Are the contact pressed (low signel)&lt;br /&gt;
    showPullUp.on();&lt;br /&gt;
  } else {&lt;br /&gt;
    showPullUp.off();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Delay eksempel===&lt;br /&gt;
Eksemplet med delays viser de muligheder der er i biblioteket hvor et enkelt input aktiverer 3 forskellige delay-funktioner tilknyttet 3 forskellige 3 output, som kan lave en forsinket on-funktion, en forsinket off-funktion og en forsinket puls.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Pin_Delayed.ino - Example showing delayed Pin action using Pin library.&lt;br /&gt;
  The library uses Timer 2 for timing&lt;br /&gt;
  Created by Bent Arnoldsen october 2019.&lt;br /&gt;
  Released into the public domain.&lt;br /&gt;
 */&lt;br /&gt;
#include &amp;lt;Pin.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin contact(8);&lt;br /&gt;
Pin reset(9);&lt;br /&gt;
Pin demoDelayOn(3);&lt;br /&gt;
Pin demoDelayOff(4);&lt;br /&gt;
Pin demoDelayPulse(5);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
  demoDelayOn.off();&lt;br /&gt;
  demoDelayOff.on();&lt;br /&gt;
  demoDelayPulse.off();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
  if (contact.getRisingEdge()) {  // Find the start of a button click&lt;br /&gt;
    // The following 3 methods will seem to be activated at the same time&lt;br /&gt;
    // The required action happens after the time wanted&lt;br /&gt;
    demoDelayOn.delayedON(2000);&lt;br /&gt;
    demoDelayOff.delayedOFF(3000);&lt;br /&gt;
    demoDelayPulse.delayedOnePulse(1000, 500);&lt;br /&gt;
  }&lt;br /&gt;
  if (reset.getFallingEdge()) {  // Find the end of a button click&lt;br /&gt;
    demoDelayOn.off();&lt;br /&gt;
    demoDelayOff.on();&lt;br /&gt;
    demoDelayPulse.off();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Referencer==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
{{Arduino-Modul-Oversigt}}&lt;br /&gt;
[[Kategori:Arduino Moduler]]&lt;/div&gt;</summary>
		<author><name>htx_&gt;Bar</name></author>
	</entry>
</feed>