<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://peda.net/:static/537/atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Tehtävät</title>
<id>https://peda.net/id/59a8257cec9</id>
<updated>2017-02-06T19:26:07+02:00</updated>
<link href="https://peda.net/id/59a8257cec9:atom" rel="self" />
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t#top" rel="alternate" />
<logo>https://peda.net/:static/537/peda.net.logo.bg.svg</logo>
<rights type="html">&lt;div class=&quot;license&quot;&gt;Tämän sivun lisenssi &lt;a rel=&quot;license&quot; href=&quot;https://peda.net/info&quot;&gt;Peda.net-yleislisenssi&lt;/a&gt;&lt;/div&gt;&#10;</rights>

<entry>
<title>1. Perusasioita</title>
<id>https://peda.net/id/59a9c49aec9</id>
<updated>2017-01-03T22:12:52+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/teht%C3%A4v%C3%A4t#top" />
<content type="html">&lt;ul&gt;&#10;&lt;li&gt;Arduino Uno, &lt;a href=&quot;https://www.arduino.cc/en/Main/ArduinoBoardUno&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Main/ArduinoBoardUno&lt;/a&gt;, &lt;a href=&quot;https://arduino-info.wikispaces.com/file/view/ArduinoUNO-900.jpg/421496636/ArduinoUNO-900.jpg&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://arduino-info.wikispaces.com/file/view/ArduinoUNO-900.jpg/421496636/ArduinoUNO-900.jpg&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;IDE, &lt;a href=&quot;https://fi.wikipedia.org/wiki/Ohjelmointiymp%C3%A4rist%C3%B6&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://fi.wikipedia.org/wiki/Ohjelmointiymp%C3%A4rist%C3%B6&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;Ohjelman pohja, kommentit, funktiot, puolipiste, kirjastofunktiot, Sarjamonitori - Blink, SerialPrint&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Tehtävät&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Tee Arduino IDE:n asennus omaan (koti-)koneeseesi&lt;/li&gt;&#10;&lt;li&gt;Lataa esimerkeistä Examples/Blink-ohjelma. Muokkaa ledin vilkkumissekvenssiä ”monimutkaisemmaksi”.&lt;/li&gt;&#10;&lt;li&gt;Lataa Examples/DigitalReadSerial. Selvitä ohjelman toiminta. Testaa toiminta käyttämällä painokytkimen paikalla hyppylankaa. Mihin pinniin hyppylanka (painokytkin) liitetään? Mitä ohjelma kirjoittaa sarjamonitoriin, kun tulopinniin on yhdistetty 5V, GND tai ei mitään (ilmassa)?&lt;/li&gt;&#10;&lt;li&gt;Lataa Examples/Button. Selvitä ohjelman toiminta. Testaa toiminta käyttämällä painokytkimen paikalla hyppylankaa pinnissä 2. Mikä on ohjelman vaste, kun tulopinniin on yhdistetty 5V, GND tai ei mitään (ilmassa)? Miten saisit luotettavasti aina saman vasteen, kun pinni on kytkemättä?&lt;/li&gt;&#10;&lt;li&gt;Kirjoita ohjelma, joka vilkuttaa kolmea LEDiä eri tahtiin. LEDit (ja etuvastukset 220 ohm) kytketään pinneihin 8, 9 (ulkoiset komponentit) ja 13 (levyllä).&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt; &lt;/p&gt;&#10;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>

<entry>
<title>2.	Lohkokaavion käyttö, hyvät ohjelmointikäytännöt, debuggaus</title>
<id>https://peda.net/id/59aab7d8ec9</id>
<updated>2017-01-03T22:15:38+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/2lkhod#top" />
<content type="html">&lt;ul&gt;&#10;&lt;li&gt;&lt;a href=&quot;http://player.slideplayer.biz/10/2972446/data/images/img5.png&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://player.slideplayer.biz/10/2972446/data/images/img5.png&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Flowchart#Flowchart_building_blocks&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://en.wikipedia.org/wiki/Flowchart#Flowchart_building_blocks&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://fi.wikipedia.org/wiki/Ohjelmointik%C3%A4yt%C3%A4nn%C3%B6t&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://fi.wikipedia.org/wiki/Ohjelmointik%C3%A4yt%C3%A4nn%C3%B6t&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;http://dsp-book.narod.ru/an1003.pdf&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://dsp-book.narod.ru/an1003.pdf&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Tehtävät&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Selvitä miten seuraava ohjelma (lohkokaavio) toimii &lt;a href=&quot;http://images.slideplayer.biz/10/2972446/slides/slide_11.jpg&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://images.slideplayer.biz/10/2972446/slides/slide_11.jpg&lt;/a&gt;,&lt;/li&gt;&#10;&lt;li&gt;Selvitä miten seuraava ohjelma (lohkokaavio) toimii &lt;a href=&quot;http://images.slideplayer.biz/8/2282787/slides/slide_7.jpg&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://images.slideplayer.biz/8/2282787/slides/slide_7.jpg&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;Tee lohkokaavio (aikaisemmin) tekemäsi ohjelman toiminnasta. Lohkokaaviossa on oltava vähintään yksi toisto- tai valintarakenne (katso tehtävän 6 lohkokaavio)&lt;/li&gt;&#10;&lt;li&gt;Muokkaa (jokin aikaisemmin) tekemäsi/käyttämäsi ohjelma hyvien ohjelmointikäytäntöjen mukaiseen muotoon.&lt;/li&gt;&#10;&lt;li&gt;Kuvitellaan seuraava tilanne: olet saanut lohkokaavion &lt;a href=&quot;http://images.slideplayer.biz/8/2282787/slides/slide_7.jpg&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://images.slideplayer.biz/8/2282787/slides/slide_7.jpg&lt;/a&gt; mukaisen ohjelmakoodin, joka ei kuitenkaan toimi oikein. Sinulla ei ole tietoa missä ohjelman osassa vika (tai viat) on. Vian etsinnässä kannattaa aloittaa ohjelman testaaminen/tutkiminen yhdestä toiminnosta. Kun se todistettavasti toimii, lisätään seuraava toiminto, testataan se, jne. Lisäksi hyvä keino seurata ohjelman etenemistä on käyttää print-komentoja. &lt;span class=&quot;editor underline&quot;&gt;Kerro miten ja mitä vaiheita käyttäen etsisit vikoja (=debuggaisit) edellä mainitun lohkokaavion mukaisesta koodista.&lt;/span&gt;&lt;/li&gt;&#10;&lt;/ol&gt;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>

<entry>
<title>3. Muuttujat, tietotyypit</title>
<id>https://peda.net/id/59ab98ecec9</id>
<updated>2017-01-03T21:47:22+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/3mt#top" />
<content type="html">&lt;ul&gt;&#10;&lt;li&gt;&lt;a href=&quot;http://playground.arduino.cc/Code/DatatypePractices&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://playground.arduino.cc/Code/DatatypePractices&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;http://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=cohj_2&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=cohj_2&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/Scope&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/Scope&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/Array&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/Array&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Tehtävät&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Mitä arvoja seuraavat muuttujat voivat saada?&#10;&lt;ul&gt;&#10;&lt;li&gt;int a;&lt;/li&gt;&#10;&lt;li&gt;boolean b;&lt;/li&gt;&#10;&lt;li&gt;char c;&lt;/li&gt;&#10;&lt;li&gt;byte d;&lt;/li&gt;&#10;&lt;li&gt;long e;&lt;/li&gt;&#10;&lt;li&gt;float f;&lt;/li&gt;&#10;&lt;li&gt;unsigned int g;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Mitä tarkoittaa const (esim. const int avain;)? Milloin ja miksi sitä kannattaa käyttää?&lt;/li&gt;&#10;&lt;li&gt;Mitä tarkoitetaan globaalilla ja lokaalilla muuttujalla?&lt;/li&gt;&#10;&lt;li&gt;Selitä mitä seuraavat määrittelyt tarkoittavat (siis kerro selkokielellä mitä kullakin rivillä tarkoitetaan).&#10;&lt;ul&gt;&#10;&lt;li&gt;int sensorPin = A0; // select the input pin for the potentiometer&lt;/li&gt;&#10;&lt;li&gt;int ledPin = 13; // select the pin for the LED&lt;/li&gt;&#10;&lt;li&gt;int sensorValue = 0;&lt;/li&gt;&#10;&lt;li&gt;const int sensorMin = 0; // sensor minimum, discovered through experiment&lt;/li&gt;&#10;&lt;li&gt;const int sensorMax = 600; // sensor maximum, discovered through experiment&lt;/li&gt;&#10;&lt;li&gt;String firstName = &amp;quot;Benjamin&amp;quot;;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Määritä muuttuja (muuttujan nimi ja tyyppi) seuraaville:&#10;&lt;ul&gt;&#10;&lt;li&gt;henkilön pituus&lt;/li&gt;&#10;&lt;li&gt;henkilön paino&lt;/li&gt;&#10;&lt;li&gt;tunnussana&lt;/li&gt;&#10;&lt;li&gt;pii (3.14159)&lt;/li&gt;&#10;&lt;li&gt;auton matkamittari&lt;/li&gt;&#10;&lt;li&gt;digitaalipinnin numero&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>

<entry>
<title>4. If-valinta (+Comparison Operators), For-toisto (+Compound Operators)</title>
<id>https://peda.net/id/59ac5e80ec9</id>
<updated>2017-01-03T21:59:35+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/4icofco#top" />
<content type="html">&lt;ul&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/If&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/If&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/Else&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/Else&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/For&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/For&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/HomePage&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/HomePage&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Tehtävät&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Lisää ohjelmaan (Blink_if_else) sopivat ehdot, jotta ohjelma toimii.&lt;/li&gt;&#10;&lt;li&gt;Mitä vikaa on seuraavassa if-lausessa?&#10;&lt;ul&gt;&#10;&lt;li&gt;if (num=1);&lt;/li&gt;&#10;&lt;li&gt;{&lt;/li&gt;&#10;&lt;li&gt;digitalWrite(13, HIGH); // turn the LED on&lt;/li&gt;&#10;&lt;li&gt;}&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Mitä ohjelma (Dim_LED) tekee? Muuta for-silmukkaa siten, että sekvenssi etenee nopeammin (siis EI muuttamalla delay-arvoa).&lt;/li&gt;&#10;&lt;li&gt;Muuta (Dim_LED) ohjelmaa siten, että sekvenssi etenee portaattomasti sekä ylöspäin että alaspäin (0, 1, 2,…,254, 255, 254, 253,…, 2, 1, 0, 1, 2, …)&lt;/li&gt;&#10;&lt;li&gt;Muokkaa ja testaa ohjelmaa (examples/ReadAnalogVoltage, &lt;a href=&quot;https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage&lt;/a&gt;) seuraavasti:&#10;&lt;ul&gt;&#10;&lt;li&gt;lisää silmukkaan kahden sekunnin viive, jotta sarjamonitorin seuraaminen on helpompaa&lt;/li&gt;&#10;&lt;li&gt;lisää toinen kirjoituskäsky, joka kertoo onko jännite digitaalilogiikan rajojen mukaan nolla, yksi vai epämääräinen.&#10;&lt;ul&gt;&#10;&lt;li&gt;jos jännite on välillä 0 … 0,8 V, niin se on looginen nolla&lt;/li&gt;&#10;&lt;li&gt;jos jännite on välillä 2,0 … 5,0 V, niin se on looginen yksi&lt;/li&gt;&#10;&lt;li&gt;Jos jännite on välillä 0,8 … 2,0 V, niin se on määrittämätön (epämääräinen tila)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>

<entry>
<title>5. SerialRead, Aritmeettiset operaatiot, bittioperaatiot</title>
<id>https://peda.net/id/59ad2e8cec9</id>
<updated>2017-01-03T22:08:57+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/5saob#top" />
<content type="html">&lt;ul&gt;&#10;&lt;li&gt;&lt;a href=&quot;http://www.instructables.com/id/Arduino-Function-Serialread-And-SerialreadString/?ALLSTEPS&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://www.instructables.com/id/Arduino-Function-Serialread-And-SerialreadString/?ALLSTEPS&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;http://www.toptechboy.com/arduino/arduino-lesson-6-reading-from-the-serial-port/&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://www.toptechboy.com/arduino/arduino-lesson-6-reading-from-the-serial-port/&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ts81ZTdY_DQ&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.youtube.com/watch?v=ts81ZTdY_DQ&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt; &lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Tehtävät&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Toteuta mallin (&lt;a href=&quot;http://www.instructables.com/id/Arduino-Function-Serialread-And-SerialreadString/?ALLSTEPS&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://www.instructables.com/id/Arduino-Function-Serialread-And-SerialreadString/?ALLSTEPS&lt;/a&gt;) avulla toiminto, jossa&#10;&lt;ul&gt;&#10;&lt;li&gt;sarjamonitorilta voi syöttää sanan ohjelmaan.&lt;/li&gt;&#10;&lt;li&gt;ohjelma toistaa syötetyn sanan ja edellisen sanan joka kerta kun uusi syötetään&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Toteuta toiminto, jossa&#10;&lt;ul&gt;&#10;&lt;li&gt;sarjamonitorilta voi syöttää kokonaisluvun (integer). Malliesimerkki alla (lähde: &lt;a href=&quot;http://www.toptechboy.com/arduino/arduino-lesson-6-reading-from-the-serial-port/&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://www.toptechboy.com/arduino/arduino-lesson-6-reading-from-the-serial-port/&lt;/a&gt;).&#10;&lt;ul&gt;&#10;&lt;li&gt;Serial.println(&amp;quot;How Many Times Do You Want the LED to blink?&amp;quot;); //Prompt User for Input&lt;/li&gt;&#10;&lt;li&gt;while(Serial.available()==0) { // Wait for User to Input Data&lt;/li&gt;&#10;&lt;li&gt;}&lt;/li&gt;&#10;&lt;li&gt;numLedBlinks=Serial.parseInt(); //Read the data the user has input&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;ledi vilkkuu kokonaisluvun määrittämänä&lt;/li&gt;&#10;&lt;li&gt;sarjamonitorilla pyydetään kaksi kokonaislukua ja ledi vilkkuu niiden summan verran.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;li&gt;Toteuta nelilaskin, joka toimii (kokonaisluvuilla) seuraavasti: Ensin käyttäjältä kysytään laskutoimitusta (vaihtoehdot: yhteen-, vähennys-, kerto- ja jakolasku+jakojäännös). Seuraavaksi käyttäjältä kysytään kahta kokonaislukua. Lopuksi tulostetaan laskun tulos.&lt;/li&gt;&#10;&lt;li&gt;Laadi ohjelma, joka pyytää käyttäjältä luvun ja kirjoittaa sen kertotaulun yhdestä kymmeneen. Esimerkiksi 3, 6, 9, 12, 15, 18, 21, 24, 27, 30.&lt;/li&gt;&#10;&lt;li&gt;Laadi ohjelma, joka pyytää käyttäjältä luvun x ja kirjoittaa x kertotaulua yhdestä kymmeneen. Esimerkiksi jos luku on 2, niin kertotaulut ovat 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 sekä 2, 4, 6, 8, 10, 12, 14, 16, 18, 20.&lt;/li&gt;&#10;&lt;/ol&gt;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>

<entry>
<title>6. While (Boolean Operators), Do, Switch, Break, Continue</title>
<id>https://peda.net/id/59ae14dcec9</id>
<updated>2017-01-03T07:42:00+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/6wbodsbc#top" />
<content type="html">&lt;ul&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/While&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/While&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/Boolean&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/Boolean&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/DoWhile&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/DoWhile&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/SwitchCase&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/SwitchCase&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/Break&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/Break&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/Continue&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/Continue&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/BitwiseAnd&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/BitwiseAnd&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt; &lt;/p&gt;&#10;&lt;p&gt;&lt;b&gt;Tehtävät&lt;/b&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Laadi ohjelma, joka tulostaa Fibonaccin lukujonon lukuja (&lt;a href=&quot;https://fi.wikipedia.org/wiki/Fibonaccin_lukujono&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://fi.wikipedia.org/wiki/Fibonaccin_lukujono&lt;/a&gt;) alkaen nollasta ja pysähtyy kun luku on suurempi kuin 100. Käytä while-lausetta.&lt;/li&gt;&#10;&lt;li&gt;Laadi ohjelma, joka tulostaa Fibonaccin lukujonon lukuja alkaen nollasta ja pysähtyy kun luku on suurempi kuin 100. Käytä do-while-lausetta.&lt;/li&gt;&#10;&lt;li&gt;Laadi ohjelma, joka pyytää käyttäjältä sanan (määrittele itse tarkemmin). Sanan perusteella ohjelma kirjoittaa sarjamonitoriin ja vilkuttelee lediä/ledejä eri tavoin. Eri vaihtoehtoja on vähintään viisi. Käytä switch...case –rakennetta.&lt;/li&gt;&#10;&lt;li&gt;Laadi ohjelma, joka pyytää käyttäjältä viisi lukua. Seuraavaksi ohjelma tulostaa luvut suuruusjärjestyksessä pienimmästä suurimpaan.&lt;/li&gt;&#10;&lt;li&gt;Tee ohjelma, joka kysyy käyttäjältä kokonaislukuja, kunnes käyttäjä antaa luvuksi -1. Ohjelma tulostaa näytölle jokaisen luvun antamisen jälkeen ko. luvun neljännen potenssin. Käytä do-while-lausetta.&lt;/li&gt;&#10;&lt;/ol&gt;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>

<entry>
<title>7. Funktiot</title>
<id>https://peda.net/id/59aeed80ec9</id>
<updated>2017-01-03T07:42:43+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/7-funktiot#top" />
<content type="html">&lt;ul&gt;&#10;&lt;li&gt;&lt;a href=&quot;http://playground.arduino.cc/Code/Function&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://playground.arduino.cc/Code/Function&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/FunctionDeclaration&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/FunctionDeclaration&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/Return&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/Return&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Tutorial/WhileStatementConditional?from=Tutorial.WhileLoop&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Tutorial/WhileStatementConditional?from=Tutorial.WhileLoop&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt; &lt;/p&gt;&#10;&lt;p&gt;&lt;b&gt;Tehtävät&lt;/b&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Laadi funktio, joka tekee 10 mittausta analogia input-portista 1 ja palauttaa tulosten keskiarvon.&lt;/li&gt;&#10;&lt;li&gt;Lisää edelliseen funktioon parametreiksi input-portin numero ja mittauskertojen määrä eli funktion kutsussa määritetään mistä portista mitataan ja kuinka monta kertaa.&lt;/li&gt;&#10;&lt;li&gt;Kirjoita funktio, joka pyytää käyttäjältä luvun annetulta väliltä ja tarkistaa luvun kelvollisuuden. Mikäli luku ei ole annetulla välillä tai se ei ole numeerinen, sitä pyydetään funktiossa uudelleen. Funktio palauttaa kutsujalleen käyttäjän syöttämän luvun. Funktiota kutsutaan seuraavasti: luku = pyyda_luku_valilta (alaraja, ylaraja);&lt;/li&gt;&#10;&lt;li&gt;Kirjoita funktio, joka vilkuttaa lediä n kertaa portissa m. n ja m ovat funktion parametreja (nimeä ne kuvaavasti). Kirjoita ja testaa pääohjelma, joka käyttää funktiota ledien vilkuttamiseen eri porteissa.&lt;/li&gt;&#10;&lt;li&gt;Kirjoita funktio, joka muuntaa Fahrenheit -asteet Celsius -asteiksi. Funktion otsikko on float FahrenheitToCelsius (float fFahrenheit);&lt;/li&gt;&#10;&lt;/ol&gt;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>

<entry>
<title>8. IO-Portit (analogiset, digitaaliset), sensorin liittäminen, kirjastot</title>
<id>https://peda.net/id/59afba80ec9</id>
<updated>2017-01-03T07:44:14+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/8iadslk#top" />
<content type="html">&lt;ul&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/AnalogRead&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/AnalogRead&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Tutorial/PWM&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Tutorial/PWM&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/DigitalRead&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/DigitalRead&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/DigitalWrite&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/DigitalWrite&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Tutorial/ADXL3xx&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Tutorial/ADXL3xx&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Tutorial/DigitalPins&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Tutorial/DigitalPins&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=G9_pQzt1sts&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.youtube.com/watch?v=G9_pQzt1sts&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt; &lt;/p&gt;&#10;&lt;p&gt;&lt;b&gt;Tehtävät&lt;/b&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Tee toteutus, jossa kahdella kytkimellä ohjataan neljää LEDiä. Kun kumpikin kytkin on auki -&amp;gt; LED1 palaa, muut ei. Kun kytkin1 on kiinni ja kytkin2 auki -&amp;gt; palaa LED2, jne. Kytkimenä voi käyttää johtoa, joka kytketään maahan (0) tai käyttöjännitteeseen (1). LEDeillä pitää olla etuvastukset jotta ne eivät mene rikki.&lt;/li&gt;&#10;&lt;li&gt;NTC-vastuksen käyttö lämpötilan mittaamiseen: kytkentään tarvitaan NTC-vastus ja 10kohm vastus, jotka kytketään sarjaan käyttöjännitteen ja maan välille. Keskipiste kytketään AD-muuntimen tuloon.&#10;&lt;ul&gt;&#10;&lt;li&gt;Testaa esimerkkiohjelman (NTC_readValue) toiminta&lt;/li&gt;&#10;&lt;li&gt;Lisää mittauksen luotettavuutta seuraavalla toiminnolla: tee mittaus 10 kertaa (for-silmukka) ja ota mittauksista keskiarvo, jota jatkokäsitellään ohjelmassa.&lt;/li&gt;&#10;&lt;li&gt;Optio: Ota 11 mittauksesta mediaani. Kumpi olisi mielestäsi parempi tapa (keskiarvon vai mediaanin käyttö)?&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;NTC-vastusmittauksen kalibrointi:&#10;&lt;ul&gt;&#10;&lt;li&gt;Edellisen tehtävän mukaisen mittauksen perusteella määritellään lämpötila. Muunnoksen (ja kalibroinnin) voi tehdä esim. käyttämällä B-parametriyhtälöä (&lt;a href=&quot;https://learn.adafruit.com/thermistor/using-a-thermistor&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://learn.adafruit.com/thermistor/using-a-thermistor&lt;/a&gt;) tai muodostamalla yhtälö Excelillä (trendline). Tavoitteena on &amp;lt; 1 C asteen tarkkuus.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;DS18x20-anturin käyttö lämpötilan mittaamiseen (esim. &lt;a href=&quot;http://www.pjrc.com/teensy/td_libs_OneWire.html&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://www.pjrc.com/teensy/td_libs_OneWire.html&lt;/a&gt;):&#10;&lt;ul&gt;&#10;&lt;li&gt;Asenna kirjasto (Onewire tai vastaava)&lt;/li&gt;&#10;&lt;li&gt;Etsi ja testaa esimerkkikoodi&lt;/li&gt;&#10;&lt;li&gt;Tutustu koodiin ja tee omia muutoksia toimintaan.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Servon ohjaaminen: servon ohjaaminen tapahtuu PWM-lähdöllä (pulssinleveysmodulaatio)&#10;&lt;ul&gt;&#10;&lt;li&gt;Tutustu mitä servo ja PWM tarkoittaa ja miten ne toimivat. Optio: mittaa PWM-lähtöä oskilloskoopilla se seuraa miten se muuttuu, kun muutat parametreja.&lt;/li&gt;&#10;&lt;li&gt;Etsi sopiva koodi servon ohjaamiseen ja testaa toiminta.&lt;/li&gt;&#10;&lt;li&gt;Muokkaa ohjelma siten, että syöttämällä kulman suuruuden sarjamonitoriin tai potentiometrilla servo kääntyy oikeaan kulmaan. Mitkä ovat suurin ja pienin kulma mihin servo kääntyy?&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>

<entry>
<title>9. Keskeytys (ulkoiset, pinnimuutos, UART/SPI/EEPROM), (sisäiset, timer, ADC)</title>
<id>https://peda.net/id/59b078e4ec9</id>
<updated>2017-01-03T22:15:09+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/9kupusta#top" />
<content type="html">&lt;ul&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.arduino.cc/en/Reference/AttachInterrupt&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Reference/AttachInterrupt&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.sparkfun.com/tutorials/326&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.sparkfun.com/tutorials/326&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=BUubcDvvOPo&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.youtube.com/watch?v=BUubcDvvOPo&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt; &lt;/p&gt;&#10;&lt;p&gt;&lt;b&gt;Tehtävät&lt;/b&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Keskeytys_INT0 -&amp;gt; Testaa ohjelman toiminta lisäämällä keskeytystuloon (int0) jokin komponentti/laite, joka tuottaa keskeytyksiä. Lisää ohjelmaan laskuri, joka laskee keskeytysten määrän ja raportoi siitä sarjamonitorille.&lt;/li&gt;&#10;&lt;li&gt;Keskeytys_Timer -&amp;gt; muuta Timer0 ja Timer2 keskeytystaajuuksia mahdollisimman pieneksi. Laske uudet keskeytystaajuudet. Testaa ja tarkista mittaamalla.&lt;/li&gt;&#10;&lt;li&gt;Keskeytys_ADC -&amp;gt; muuta näytteenottotaajuutta n. 8kHz:ksi. Syötä ADC:hen signaali funktiogeneraattorista (1kHz) ja mittaa PortD:n kytketyn ulkopuolisen DAC:n lähtöä oskilloskoopilla.&lt;/li&gt;&#10;&lt;li&gt;Suunnittele ja toteuta ohjelma, jossa käytetään monipuolisesti tällä kurssilla esiteltyjä rakenteita sekä tulo- ja lähtöportteja. Ohjelman tulee olla laajuudeltaan aikaisempia harjoituksia monipuolisempi.&lt;/li&gt;&#10;&lt;li&gt;Dokumentoi edellisen tehtävän projekti: vuokaavio, hyvin kommentoitu ja jäsennelty koodi, käyttöohje loppukäyttäjälle, yhteenveto/pohdinta.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt; &lt;/p&gt;&#10;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>

<entry>
<title>Lisätehtäviä</title>
<id>https://peda.net/id/59b13ffeec9</id>
<updated>2017-01-03T07:47:57+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/lis%C3%A4teht%C3%A4vi%C3%A4#top" />
<content type="html">&lt;ol&gt;&#10;&lt;li&gt;Kirjoita funktio minimi(), joka palauttaa arvonaan kahdesta annetusta luvusta pienemmän. Luvut välitetään funktiolle parametreina.&lt;/li&gt;&#10;&lt;li&gt;Kirjoita funktio, joka pyytää käyttäjältä 10 positiivista kokonaislukua ja palauttaa arvonaan kutsujalleen (=pääohjelmalle) niistä suurimman. Funktio kelpuuttaa syötteiksi vain positiiviset luvut. Virheellisestä syötteestä tulostetaan ilmoitus ja lukua pyydetään uudelleen (tarvittaessa toistuvasti).&lt;/li&gt;&#10;&lt;li&gt;Toteuta metronomi, jonka tahdin voi käyttäjä määritellä painonappia painanalla sopivassa rytmissä. Käytä keskeytystä (ajan mittaamiseen).&lt;/li&gt;&#10;&lt;li&gt;IR vastaanotin TV-kaukosäätimelle: &lt;a href=&quot;http://www.instructables.com/id/How-to-control-your-TV-with-an-Arduino/&quot; rel=&quot;nofollow ugc noopener&quot;&gt;http://www.instructables.com/id/How-to-control-your-TV-with-an-Arduino/&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;3D kiihtyvyysanturin testaus ja kalibrointi (examples/ADXL3xx, &lt;a href=&quot;https://www.arduino.cc/en/Tutorial/ADXL3xx&quot; rel=&quot;nofollow ugc noopener&quot;&gt;https://www.arduino.cc/en/Tutorial/ADXL3xx&lt;/a&gt;):&#10;&lt;ul&gt;&#10;&lt;li&gt;Liitä kiihtyvyysanturi Unoon ja tee tarvittaessa muutoksia koodiin. Testaa kiihtyvyysanturin toiminta seuraamalla sarjamonitoria.&lt;/li&gt;&#10;&lt;li&gt;Kalibroi kiihtyvyysanturin x-akseli&lt;/li&gt;&#10;&lt;li&gt;Kalibroi myös y- ja z-akseli edellisen proseduurin mukaisesti&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>

<entry>
<title>Oppimisen testaus (osion 5 jälkeen)</title>
<id>https://peda.net/id/59b21654ec9</id>
<updated>2017-01-03T07:40:49+02:00</updated>
<link href="https://peda.net/jyu/it/koulutusteknologia/opintojaksot/TIES461/ah/harjoitusty%C3%B6t/sohm/teht%C3%A4v%C3%A4t/oto5j#top" />
<content type="html">&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Ohjelmointitehtävä: Toteuta opettajan antaman määrittelyn mukainen ohjelma. Palauta listaus ohjelmakoodista ja kuvankaappaus sarjamonitorista ohjelman suorituksen jälkeen.&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Tehtävässä tulee huomioida:&lt;/strong&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Järjestelmällinen työskentely, vaiheittainen toteutus ja testaus&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Selkeä luettavuus ja kommentointi&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Muuttujien käyttö ja nimeäminen&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;If- ja For-rakenteiden käyttö&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Tiedon syöttäminen ja tulostus (sarjamonitori, sensorit, ledit, tms.)&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Loppuun itsearviointi: oman osaamisen arviointi kunkin edellä luetellun osa-alueen suhteen: osaan hyvin / jotenkuten / pitäisi vielä harjoitella&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt; &lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Esimerkkitehtävä:&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Laadi ohjelma, joka&lt;/p&gt;&#10;&lt;p&gt;- lukee digitaaliportin 4 tilan&lt;/p&gt;&#10;&lt;p&gt;- kysyy käyttäjältä vilkutetaanko lediä (1) vai kirjoitetaanko tekstiä (2)&lt;/p&gt;&#10;&lt;p&gt;- tilan ja vastauksen perustella (neljä vaihtoehtoa) perusteella joko&lt;/p&gt;&#10;&lt;p&gt;- vilkutetaan lediä 2 kertaa&lt;/p&gt;&#10;&lt;p&gt;- vilkutetaan lediä 10 kertaa&lt;/p&gt;&#10;&lt;p&gt;- ohjelma kirjoittaa nimesi&lt;/p&gt;&#10;&lt;p&gt;- ohjelma kirjoittaa osoitteesi&lt;/p&gt;&#10;</content>
<published>2017-02-06T19:26:07+02:00</published>
</entry>


</feed>