<?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=Prog_Shield_Matrix_Tastatur</id>
	<title>Prog Shield Matrix Tastatur - Versionshistorie</title>
	<link rel="self" type="application/atom+xml" href="https://www.htxarduino.dk/index.php?action=history&amp;feed=atom&amp;title=Prog_Shield_Matrix_Tastatur"/>
	<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Prog_Shield_Matrix_Tastatur&amp;action=history"/>
	<updated>2026-10-29T12:41:26Z</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=Prog_Shield_Matrix_Tastatur&amp;diff=2504&amp;oldid=prev</id>
		<title>Bar: /* Hardware */</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Prog_Shield_Matrix_Tastatur&amp;diff=2504&amp;oldid=prev"/>
		<updated>2022-10-22T16:04:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Hardware&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, 17:04&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-l80&quot;&gt;Linje 80:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linje 80:&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;|-&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;|-&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;|3 ||8&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;|3 ||8&lt;/div&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;|-&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;|-  &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;|4 ||2&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;|4 ||2&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;|-&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;|-&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=Prog_Shield_Matrix_Tastatur&amp;diff=2388&amp;oldid=prev</id>
		<title>Bar: 1 version importeret</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Prog_Shield_Matrix_Tastatur&amp;diff=2388&amp;oldid=prev"/>
		<updated>2022-10-22T14:16:07Z</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, 15:16&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=Prog_Shield_Matrix_Tastatur&amp;diff=2387&amp;oldid=prev</id>
		<title>htx_&gt;Bar: Oprettede siden med &#039;Matrix Tastatur  Som det oprindeligt var tænkt i Programmerings Shield v. 2.0, så virker Matrix-tastaturet IKKE. Der blev forsøgt ...&#039;</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=Prog_Shield_Matrix_Tastatur&amp;diff=2387&amp;oldid=prev"/>
		<updated>2016-06-21T08:55:11Z</updated>

		<summary type="html">&lt;p&gt;Oprettede siden med &amp;#039;&lt;a href=&quot;/index.php/Fil:Matrix-tast-4x4.jpg&quot; title=&quot;Fil:Matrix-tast-4x4.jpg&quot;&gt;thumb|right|Matrix Tastatur&lt;/a&gt;  Som det oprindeligt var tænkt i Programmerings Shield v. 2.0, så virker Matrix-tastaturet IKKE. Der blev forsøgt ...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny side&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[fil:matrix-tast-4x4.jpg|thumb|right|Matrix Tastatur]]&lt;br /&gt;
&lt;br /&gt;
Som det oprindeligt var tænkt i Programmerings Shield v. 2.0, så virker Matrix-tastaturet IKKE. Der blev forsøgt for meget genbrug af signaler.&lt;br /&gt;
&lt;br /&gt;
Tastaturet kan dog godt sluttes til, hvis man bruger ledninger til det.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
Der hentes et bibliotek fra [http://playground.arduino.cc/Code/Keypad#Download Arduinos side]&amp;lt;ref&amp;gt;[http://playground.arduino.cc/Code/Keypad#Download Download-side til Keyboardet] fra Arduinos hjemmeside&amp;lt;/ref&amp;gt;.&lt;br /&gt;
Biblioteket downloades og installeres som beskrevet under [[Arduinos_Biblioteker#Tilføjelse_af_biblioteker|Arduinos biblioteker]].&lt;br /&gt;
&lt;br /&gt;
Den beskrevne kode kan hentes i denne [[media:Matrix-Keypad-Test.zip|ZIP-fil]]. Denne software fungerer ved at tilslutte keyboardet med ledninger.&lt;br /&gt;
===Anvendelsen af softwaren===&lt;br /&gt;
Som alle andre biblioteker skal der sættes de grundlæggende ting op for at kontakte biblioteket og definere et objekt med keyboardet i.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Keypad.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
const byte ROWS = 4; //four rows&lt;br /&gt;
const byte COLS = 4; //three columns&lt;br /&gt;
char keys[ROWS][COLS] = {&lt;br /&gt;
  {&amp;#039;1&amp;#039;,&amp;#039;2&amp;#039;,&amp;#039;3&amp;#039;,&amp;#039;A&amp;#039;},&lt;br /&gt;
  {&amp;#039;4&amp;#039;,&amp;#039;5&amp;#039;,&amp;#039;6&amp;#039;,&amp;#039;B&amp;#039;},&lt;br /&gt;
  {&amp;#039;7&amp;#039;,&amp;#039;8&amp;#039;,&amp;#039;9&amp;#039;,&amp;#039;C&amp;#039;},&lt;br /&gt;
  {&amp;#039;*&amp;#039;,&amp;#039;0&amp;#039;,&amp;#039;#&amp;#039;,&amp;#039;D&amp;#039;}&lt;br /&gt;
};&lt;br /&gt;
byte rowPins[ROWS] = {A3, A2, 8, 2}; //connect to the row pinouts of the keypad&lt;br /&gt;
byte colPins[COLS] = {A4, A5, 12, 13}; //connect to the column pinouts of the keypad&lt;br /&gt;
&lt;br /&gt;
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dette initialiserer også softwaren.&lt;br /&gt;
&lt;br /&gt;
Inde i [[setup()]] skal der sættes op til seriel kommunikation som vist her:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  Serial.println(&amp;quot;Matrix Keyboard Test&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I [[loop()]] læses keyboardet, og hvis der er kommet en værdi, så printes den i [[Serial Monitor]].&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
void loop() {&lt;br /&gt;
  char key = keypad.getKey();&lt;br /&gt;
  &lt;br /&gt;
  if (key){&lt;br /&gt;
    Serial.println(key);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Yderligere muligheder i softwaren===&lt;br /&gt;
Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende keyboardet på:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
	char getKey();&lt;br /&gt;
	bool getKeys();&lt;br /&gt;
	KeyState getState();&lt;br /&gt;
	void begin(char *userKeymap);&lt;br /&gt;
	bool isPressed(char keyChar);&lt;br /&gt;
	void setDebounceTime(uint);&lt;br /&gt;
	void setHoldTime(uint);&lt;br /&gt;
	void addEventListener(void (*listener)(char));&lt;br /&gt;
	int findInList(char keyChar);&lt;br /&gt;
	int findInList(int keyCode);&lt;br /&gt;
	char waitForKey();&lt;br /&gt;
	bool keyStateChanged();&lt;br /&gt;
	byte numKeys();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
Princippet i keyboardet er at der sættes udgange op, der multiplexer enten rækker eller kolonner med signaler, og på rækker eller kolonner aflæses hvilke signaler der kommer - den proces vendes, så alle ben skal have mulighed for at svæve rimeligt frit. Det var det der gik galt med det oprindelige stik.&lt;br /&gt;
&lt;br /&gt;
Tastaturet kan forbindes med ledninger til Arduino benene som følger:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Tastatur ben!!Arduino ben&lt;br /&gt;
|-&lt;br /&gt;
|1 fra toppen||13&lt;br /&gt;
|-&lt;br /&gt;
|2 ||12&lt;br /&gt;
|-&lt;br /&gt;
|3 ||8&lt;br /&gt;
|-&lt;br /&gt;
|4 ||2&lt;br /&gt;
|-&lt;br /&gt;
|5 ||A3&lt;br /&gt;
|-&lt;br /&gt;
|6 ||A2&lt;br /&gt;
|-&lt;br /&gt;
|7 ||A5&lt;br /&gt;
|-&lt;br /&gt;
|8 ||A4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Denne opkobling af tastaturet blokerer ret meget, da I2C-bussen er blokeret via A4 og A5.&lt;br /&gt;
&lt;br /&gt;
==Referencer==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{template:prog-shield}}&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Programmerings-Shield]]&lt;/div&gt;</summary>
		<author><name>htx_&gt;Bar</name></author>
	</entry>
</feed>