Arduinon Alkeet. Johdatus Arduinoon ja elektroniikkaan

Samankaltaiset tiedostot
Arduinon Alkeet. Johdatus Arduinoon ja elektroniikkaan

Arduino. Kimmo Silvonen (X)

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

Liikennevalot. Arduino toimii laitteen aivoina. Arduinokortti on kuin pieni tietokone, johon voit ohjelmoida toimintoja.

Arduino. Kimmo Silvonen (X)

LUMA SUOMI -kehittämisohjelma LUMA FINLAND -utvecklingsprogram LUMA FINLAND development programme Ohjelmointia Arduinolla

Arduino. Kimmo Silvonen (X)

Ohjelmoi Arduino Grovella

HP ProBook 430 G5 kannettavien käyttöönotto

Let Me Hack It -kurssilla tarvittavat ohjelmat ja välineet

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Peter Kronström

////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ //-PID säätimellä. #include <EEPROM.h> #include <SoftwareSerial.h>

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

Arduino ohjelmistokehitys

Keskellä ruutua kuvan yläpuolella linkki on call diabeteksen hallintaohjelmisto. Klikkaa sitä

Arduinon ohjelmointi. Sami-Petteri Pukkila. 6. helmikuuta 2017

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps

MASSER Loader V2.00. käyttö- ja asennusohje

FinFamily Installation and importing data ( ) FinFamily Asennus / Installation

Coolselector Asennusohje

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

Huawei E3276s ohjelmistopäivitys

////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ #include <EEPROM.h> #include <SoftwareSerial.h> SoftwareSerial gps(10, 0); // RX, TX -pinnit

lizengo Asennusopas Windows: in kopioiminen

FTP -AINEISTOSIIRRON OHJE PC / MAC Ympäristö

DATALOGGERI DT-171 PIKAKÄYTTÖOHJE V 1.2

Garmin Astro ohjelmistopäivitys

1 Tivax siirto uuteen koneeseen

PR SARJA ASENNUS JA KYTKENTÄ

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

MITTAUSTEKNIIKAN LABORATORIOTYÖOHJE TYÖ 9 MITTAUSTIEDON KERUU JA KÄSITTELY

Ennen varmenteen asennusta varmista seuraavat asiat:

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU013 Sweex 1-portin rinnakkainen & 2 -portin sarja PCI-kortti

PR SARJA ASENNUS JA KYTKENTÄ

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys

Ekoweb Oy HUOMIO! Jos sinulla on koneella vanha versio On Call DMS-ohjelmasta poista ensin se ja mahdolliset vanhat ajurit.

Mathcad 14.0 Single User -asennus

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU011 Sweex 1-portin rinnakkainen PCI Express -kortti

TW-LTE 4G/3G. USB-modeemi (USB 2.0)

KÄYTTÖOHJE PEL / PEL-M

Tiedostojen lataaminen netistä ja asentaminen

Pika-asennusohjeet Suomeksi

ICOM IC-7600 helposti ssb-cw-rtty-digi

Näin saat 365 päivän ajalta Freshest Data sisältöä NavionicsWeb Store nettikaupasta

Ohjeet e kirjan ostajalle

Jypelin käyttöohjeet» Ruutukentän luominen

CipherLab CPT-8001L -tiedonkeruupäätteen käyttö Ecomin kanssa

Javan asennus ja ohjeita ongelmatilanteisiin

T&M Autori Versio Series 60 -puhelimiin

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

KÄYTTÖOHJE PEL 2500 / PEL 2500-M

Tämä on PicoLog Windows ohjelman suomenkielinen pikaohje.

HARJOITUSTYÖ: LabVIEW, Liiketunnistin

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Machine Control Studio - Kuinka päästä alkuun. Ohjelmointiympäristö Unidrive M ja MCi2x0 laitteille

1. Adobe Digital Editions ohjelman käyttöönotto

CEM DT-3353 Pihtimittari

WBelectronics. Infinity USB Phoenix - Käyttöohje

Comet pysäköintimittarin asennus ja kytkeminen tietokoneeseesi (Windows XP) USB-kaapelilla.

MEM-O-MATIC järjestelmä

McAfee VirusScan Enterprice asennus

erasmartcardkortinlukijaohjelmiston

Asennus Windows 2000 ja XP -käyttöjärjestelmiin

E-RESULTS LITE -OHJEET

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

Java Runtime -ohjelmiston asentaminen

Topfieldin sarjaporttipäivitystyökalun asennus(rs232)

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Maha Eurosystem jarrulaskentaohjelman asennusohje versio

Ulkoasu. 1.Objektiivi 2.Tallennuspainike 3.Kuvien ottopainike _ FIN 01

Asennuksessa kannattaa käyttää asennusohjelman tarjoamia oletusarvoja.

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys

Epson EMP-765 langaton käyttö

OTOsuite. Asennusopas. Suomi

Mikäli olet saanut e-kirjan latauslinkin sähköpostilla, seuraa näitä ohjeita e-kirjan lataamisessa.

HARJOITUSTYÖ: LabVIEW, Kiihtyvyysanturi

PIKAKÄYTTÖOHJE V S&A Matintupa

Office ohjelmiston asennusohje

Mikro-ohjain µc harjoitukset - yleisohje

Micro:bit. Käyttöohje. Innokas verkosto Petja Pyykkönen, Saimaan mediakeskus Käyttöohje / 2016 Innokas

SQL Server 2005 Express Edition tietokannan asennusohje

LP-levyn digitointi Audacity-ohjelmalla

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

KÄYTTÖOHJE PEL 1000 / PEL 1000-M

Second Lifen ääniohjeet (sounds, Voice Chat, Music )

SYDÄN-HÄMEEN RASTIT 2017 TULOSPALVELUN OHJEET LAITTEISTO 2. LAITTEISTON VALMISTELU 3. VALMISTELUT ENNEN TAPAHTUMAA

KONEISTUSKOKOONPANON TEKEMINEN NX10-YMPÄRISTÖSSÄ

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

Visma Nova. Visma Nova ASP käyttö ja ohjeet

1 Tarkistetaan että kaikki toimii

AALTO-VALVONTALAITE TST5102

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

sivu 1 Verkkopäätteen muuttaminen Anvian uuteen tekniikkaan Ohje käy seuraaviin verkkopäätteisiin

Ohjelmointiharjoituksia Arduino-ympäristössä

6.3. AVR_rauta. EEPROM-muisti pva

Transkriptio:

Arduinon Alkeet Johdatus Arduinoon ja elektroniikkaan Hacklab Kouvola ry Raimo Kantoniemi 2017

(Tämä on tyhjäksi jätetty sivu)

Johdanto Massimo Bansi ryhmineen kehitti Arduno alustan ja ohjemointikielen sekä Arduino IDE ohjelmointiympäristön. Lähtökohtana oli se, että kaikkien ei tarvinnut osata insinööri latinaa. Komponettien keräämisen ja niitten osaamisen sijasta rakennettiin alusta johon voidaan helposti ja edullisesti lisätä erilaisia elektroniikan osia ja sensoreita, sekä ledejä. Arduino projekti starttasi vuonna 2003 Italiassa Ivreassa jossa tietokone ohjelmoija opiskelijat alkoivat miettimään miten helpottaisi ihmisten pääsyä tietokone maailmaan. Tarinaa englanniksi http://www.arduino.org/blog/the-full-story-1 Tämän kurssin tarkoitus on havainnollistaa ja näyttää miten rakennetaa ja yhdistellään erilaisia asiota. Opetetaan miten Arduino ohjelmointi ympäristö asennetaan, huolletaan ja kaytetään Annetaan valmius oppia itse lisää ja muutamia vinkkejä mistä löytää mitäkin, oli apua tai ihan rakennenosia. Arduino yksi aika keskeinen idea on se, että mitään ei saa ihan valmiina pitää tai siis saa itse rakentaa ja toteuttaa asiota mitä on mielessä. Arduino rakentaja ei anna periksi. Kuusankoski kesällä 2017 Raimo Kantoniemi Kouvola Hacklab ry Tämä teos on täysin vapaasti kopioitavissa, käytettävissä ja siteerattavissa.

Ensimmäinen oppitunti Tarkoitus ja tavoite Tarkoitus on opetella ja ladata Arduino IDE omalle koneelle. Tavoite on hallita ja pystyä liikkumaan eri valikoissa ja käydä läpi eri valikoissa olevia tehtäviä ja ymmärtää valikossa olevien tehtävien toiminta. Koska Arduino alusta on tehty Atmega328 Atmel piirisarjojen ympärille niissä ei ole muistissa tilaa kääntäjälle, joten ohjjelma käännetään konekielelle IDEllä (Integraded Develoment Enviroment). Kääntäjässä on myös tekstinkäsittely ja ohjelman toiminnan monitorointi, joko tekstinä tai xyplotterina. Arduinolle on lukuisia vähemmän tuettuja ja tunnettuja kehitysympäristöjä. Esim. Maria Mole tai Notepad+. Notepad + tulemme myöhemmin käyttämään aliohjelma tiedostojen.cpp,.h ja muiden käyttökelpoisten ohjelman osien tekoon ja muokkaamiseen. ÄLÄ vielä kytke Arduino alustaa kiinni PC USB väylään. ERITTÄIN TÄRKEÄÄ. Ota aina USB-johto irti Arduinon ja Tietokoneen väliltä kun teet koekytkentää. Laite jos menee oikosulkuun niin käypi käry aivan varmasti. Tee siis kytkennät jännitteettömänä. Käytämme lataushetkellä saatavissa olevaa viimeistä Arduino IDEn versiota. https://www.arduino.cc/en/main/software Sivulta löytyy Windows, Mac OS X ja Linus käyttöjärjestelmien Arduino IDEn viimeisin versio. Windows versiossa on kaksi eri vaihtoehtoa, joko asentajan (installer) kanssa, jolloin tarvitaan admin oikeudet. Jos on omakone ja haluaa aina pitää Arduino IDEn koko ajan päivitettynä ja ajantasalla ilman, että tarvitsee poistaa tai uudelleen määäritellä mitään tämä on paras vaihtoehto. Ilman admin oikeuksia oleva, ladattava ZIP tiedosto, tämän voi asentaa vaikka tikulle ja sieltä toimivaksi. Mac OS 7 or newer Mac asennus on pikkaisen erilainen kuin windows johtuen erilaisten ajurikirjastojen toimivuudesta. Eri Linus versiot 32bit, 64bit ja ARM. Raspberry Pi llä voi siis myös ohjelmoida Arduinoja. Se on jo sitten eri kurssi.

Arduino web editor asennusta ei käsitellä Arduino Windows app ohjelman asennusta ei käsitellä Helpointa on asennus on Windows-pohjaisiin tietokoneisiin (huom. Tekijän mielipide)!! Windows installer asennus Valitse Download Arduino IDE nykyinen IDE taitaa olla 1.8.4 tai jopa 5 Tässä voi valita joko installer ohjelman.

Avautuu näköala latauksen käynnistykseen Tällä sivulla voi tehdä vapaaehtoisen lahjoituksen, mutta se ei ole pakollinen. Sitten JUST DOWNLOAD ja siirrytää varsinaiseen lataukseen Latauksen jälkeen avaa lataukset kansio!! Muutama asia. Et voi tätä installeria käyttää jos sinulla ei ole admin-oikeuksia, mutta jos lataat sitä omalle kannettavalle, sinulla on todennäköisesti admin-oikeudet. Lataukset löytyvät omasta lataukset kansiosta. Installer-ohjelma on käynnistyvä ohjelma joka kuuluu varmennettaviin. Installer ohjelman käynnistämisen jälkeen, jos ja kun tulee erilaisia varoituksia yms. ota yhteys kurssin vetäjään saman tien. Hänellä on tiedossa, että tämä kohta on hieman hankala ja niin kone, sekä käyttöjärjestelmä kohtainen. Myöskään tässä vaiheessa Arduino EI saa olla kytkettynä tietokoneeseen kun käynnistät installerin. Hyppää seuraavan yli ja käynnistä installeri-ohjelma.

!! Windows.ZIP asennus Tässä voit valita.zip tiedostojen latauksen. Tähän asennukseen ei tarvitse admin-oikeuksia.

Voit lahjoittaa jos haluat, ei ole pakollista. JUST DOWNLOAD ilman lahjoitusta Nyt täytyy olla asennettuna tietokoneeseen.zip tiedostojen purkuohjelma sillä tämä ohjelma pitää purkaa ja siirtää. Ensiksi puretaan hakemistoon, 7-zip tai windowds oma Zip purkuohjelma käynnistetään, kuitenkin ladattu tiedosto pitää purkaa ZIP tiedostonpurku ohjelmalla. Nyt saatu kansio on vielä pikkaisen epäsopiva windows kansio. Esim. arduino-1.8.3-windows - niminen kansion sisällä on vielä - arduino-1.8.3 niminen kansio jonka nimi ei ole ihan tuettu arduinon omassa sallittujen tiedostonimien joukossa. Joten joudumme sen uudelleen nimeämään ja siirtämään. Esimerkiksi nimi Arduino183 on käypä kansionnimi. Rename toiminto ja sitten uusinimi. Sitten vielä Arduino183 kansion siirto ohjelma- tai pääkansioon. Avaa nyt siirretty kansio Arduino183 ja etsi sieltä arduino.exe tiedosto siirrä kursori tiedoston päälle paina hiiren oikeata näppäintä ja valitse luo pikakuvake ja luo pikakuvake. Siirrä pikakuvake vetämällä työpöydälle. Nimeä siirretty pikakuvake vaikka Arduino183 nimiseksi, koska sitä käytämme esimerkeissä jatkossa. Josnyt sattuu versio olemaan Arduino IDE 1.8.4 tai joku korkeampi nimeä se tämän mukaan.!! Vieläkään EI saa olla Arduino laitealusta ja USB kytkettynä PC USB väylään.

Sitten käynnistetään Arduino IDE valitsemalla työpöydältä Arduino183 pikakuvake ja klikkaamalla sitä. Jos kaikki menee hyvin niin näkyviin pitäisi tulla Arduino IDE n tyhjä työpöytä. Onneksi olkoon olet juuri asentanut Arduino IDEn ja saanut sen toimimaan. Tarkistetaan vielä asetukset

Valitaan <Tiedosto>- <Asetukset>

Sammuta Arduino IDE.!! Vieläkään EI saa olla Arduino laitealusta ja USB kytkettynä PC USB väylään. Ensimmäinen käynnistys. Valitse työpöydän Arduino183 pikakuvake. Käynnistä Arduino IDE pikakuvakkeesta. Arduinon käynnistys voi vieläkin kestää joskus Arduino IDE pyytää käyttö- tai päivitysluvan Javalle, sen voi hyväksyä. Arduino IDE käyttää Javaa. Pitäisi ilmestyä seuraava aloituskuva työpöydälle jonkun ajan kuluttua Ja sitten...vihdoinkin pääsemme aloittamaan. Tämä seuraava on alkuruutu Arduino IDEstä

Aloitamme Blink illä joka avataan <Tiedostot> <Esimerkit><01.Basic> <Blink> ja klik vasen hiiren nappula.

Ja sitten vihdoin Blink Ja nyt kytket Arduino alustan USB johdolla kiinni PC USB porttiin. Käytä USB 2.0 porttia. ERITTÄIN TÄRKEÄÄ. Ota aina USB-johto irti Arduinon ja Tietokoneen väliltä kun teet koekytkentää. Laite jos menee oikosulkuun niin käypi käry aivan varmasti. Tee siis kytkennät jännitteettömänä. Näyttöön ilmestyy driverin latauskuvake. Näitäkin on monia eri mahdollisuuksia. Ota yhteyttä kurssin vetäjään jos on ongelmia. Tämä on yksi niistä laitekohtaisista asioista jotka voivat olla ihan erilaisia..

Sitten kun asennus on valmis niin. Ilmaantuu OK ja voit sulkea <Sulje> latausikkunan.

Seuraavaksi tarkistetaa käytettävä alusta ja sen COM portti. Arduino IDEn painikkeet ja niiden tehtävät. Sitten se Blink Blink on ehkä käytetyin ja mainio ohjelma käyttää Arduino ja Arduino IDEn opiskeluun

Seuraavien ohjelmien Koodit löytyvät Arduino IDEn Tiedosto>Tässä on jo modifoitu versio Blink ohjelmasta Kytkentä I Blink2 ohjelma nostaa Arduino pin 11 ylös (1) ja laskee sen alas (0) noin 1 (1000 millisekuntia) sekunnin välein. Loopissa ohjelma toistaa itseään loputtomiin. Blink2 Raimo Kantoniemi */ // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 11 as an output. pinmode(11, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalwrite(11, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalwrite(11, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } Siihen kytkentäkaavio

Sekä fritzing Sehän vilkkuu Harjoitusta1: Nyt kun muutat delay(1000) arvoja kummasakin kohdassa digitalwrite(11,low) tai digitalwrite(11,high). Näet miten viiveen muuttaminen muuttaa LEDin vilkkumista.low tässä kytkennässä sammuttaa LEDin ja HIGH sytyttää LEDin. Delay(1000) on 1000 millisekunnin viive eli 1 sekunti. digitalwrite(11, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalwrite(11, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } Kytkentä II Luetaan analoginen arvo A0 pinnistä ja tulostetaan se sarjaporttiin Serial ja pidetään lukujen välillä 1 millisekunnin viipe

/* AnalogReadSerial Reads an analog input on pin 0, prints the result to the serial monitor. Graphical representation is available using serial plotter (Tools > Serial Plotter menu) Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground. This example code is in the public domain. */ // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600);} // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorvalue = analogread(a0); // print out the value you read: Serial.println(sensorValue); delay(1); // delay in between reads for stability } Tulos 1. Sarjaväylässä sarjamonitori ikkunassa COMXX (XX on se portti mihin Arduino on kytketty) pitäsi näkyä arvo väliltä 0 ja 1023 riippuen potentiometrin asennosta. Mitä lähempänä potentiometrin liuku (keskimmäinen liitin) on + Vcc 5v jännitettä sitä korkeampi on arvo ja siten mitä lähempänä liuku on GND maata sitä alempi on arvo. Nyt on hyvä hetki, myös kokeilla serialplotteria, löytyy samasta Työkaluvalikosta sarjamonitorin kanssa. Serialplotteri tekee lukuarvon sijasta xy-käyrää y=aika ja x= arvo, serialplotterin käytöstä tarkemmin myöhemmin. Vinkki 1. Jos et löydä oikeaa sarjaväylää COMXX, niin katso mikä COMväylä poistuu ja tulee takaisin kun otat Arduino USB johdon irti ja laitat sen takaisin. Löytyy valikosta Työkalut>Portti> Serial ports alta. Kun otat pois USB johdon muista sulkea valikko ja avata se uudestaan että porttipaikka varmasti päivittyy.

Tietoisku 1. Tarkka huomaa että kytkentään on lisätty 220µF kondensaattori jännite napojen + ja välille. Syy on se että kondensaattori vakauttaa tässä jännitteen koska elektrolyyttikondensaattori toimii kuin pieni akku. Se varaa itseensä jännitteen joka on napojen välillä ja purkaa sen salaman nopeasti kun jännite laskee jolloin µ-prosessori Arduinossa kehrää tasaisesti. Kytkentä III (nyt yhdistellään) Luetaan analoginen arvo A0 pinnistä 0-1023 muutetaan se PWM (pulse widh modulation) digitaaliseksi analogia arvoksii ja annetaan se arvo LEDille joka himmenee ja kirkastuu PWM arvon 0-255 mukaan ja tulostetaan samalla arvo sarjaporttiin Serial ja pidetään lukujen välillä 1 millisekunnin viipe

ERITTÄIN TÄRKEÄÄ. Ota aina USB-johto irti Arduinon ja Tietokoneen väliltä kun teet koekytkentää. Laite jos menee oikosulkuun niin käypi käry aivan varmasti. Tee siis kytkennät jännitteettömänä. Tässä kytkennässä yhdistetään blink ja analogiportin luku sekä sarjaväylän monitorointi. Jos sinulla on blink kytkentä purkamatta, niin lisää puutuvat komponentit kuvien mukaaisesti. Jos ei ole tämä on helppo rakentaa uudestaan Olen esimerkki kuvissa seurattavuuden takia käyttänyt seuraavia värejä. Punainen--- + 5v Vcc Sininen ---- - Maa GND Vihreä----- Signaali1 tai yleensä muuttuva signaali1 tai väylä1. Keltainen --- Signaali2 tai yleensä muuttuva signaali2 tai väylä 2. Nyt on myös aika tarkastella hieman ohjelmointia ja IDEä sekä ohjelman rakenetta. Aina on hyvä lisätä ohjelmaan kommetteja, ne ovat tärkeitä, vai sanoisko erittäin tärkeitä. Kommentointi tapahtuu seuraavasti // tämä on rivin pitunen kommentti joka loppuu rivin loputtua. /*tämä on kommentointi kenttä joka alkaa /* parilla merkkejä ja loppuu */ loppuu pariin merkkejä */ eli /* kommentteja ---------------------------------------------------------------------------------------------------------------------------------*/ loppu

/* Tosi tärkeää */ Kommetit eivät tee itse ohjelmalle mitään, kun käännät ja lataat ohjelmaa niin kommentit jätetään kääntämättä ja lataamatta µ-prosessorille. Opettele tekemään kommentteja, tuntuu joskus turhalta, mutta usko pois että muutaman vuoden päästä kun selaat ohjelmia kirjastostasi, huomaat että se vaiva kannatti. Tulevaisuutesi sinä kiittää tästä /* Raimo Kantoniemi 24.09.2017 Arduino IDE 1.8.3 tämä on ohjelma joka lukee analogia arvon analogisesta sisääntulosta A0 0-1023 arvo muunnetaan 0-255 välille, koska PWM on 8 bittinen ja analogia muunnin Arduinossa on 10 bittinen muunnos tehdään Arduinin sisäisellä funktiolla map() kirjoitetaan se arvo PWM ulosmenoon D03 */ /* void setup() ajetaan aina kun Arduino käynnistetää, kerran */ void setup() { // void setupin alkumerkki Serial.begin(9600); // tämä käynnistää sarjaväylän nopudella 9600 bittiä sekunnissa sarjamonitori nopeus pitää olla sama pinmode(3, OUTPUT); // asetetaan ulostulo 11 ulostulokseksei } // void setupin loppumerkki void loop() // loop() on ali ohjelma joka on pääohjelma se pyörii koko ajan silmukassa( loopissa) { // void loop() alkumerkki int sensorvalue = analogread(a0); // luetaan analookinen arvo analookisesta sisään tulosta A0 Serial.println(sensorValue); delay(1); //kaiutetaan arvo sarjaväylään jonka kautta monitorille //tämä on 1 millisekunni viipe // käsky map(x,y,w,z) siirtää luetun analogi arvon x min 0- y max 1023, Pulssi koodatuksi digitaali arvoksi w min 0 - z max255 analogwrite (3, (map(sensorvalue,0,1023,0,255))) ; delay(100); } // loopin loppu merkki // sekä kirjoittaa sen ulosmeno pinni D11 // PWM pulssin leveys modulaatio // 100 millisekunnin viipe jolloi ohjelma ei tee yhtään mitään

Ohjelmakoodin purku Setupissa käynnistetää sarjaväylä nopudella 9600 baudia. Sekä pinni D03, ULOSMENOKSI Loopissa luetaan arvo potentiometrin keskipinnistä joka on kytketty A0 alogiasisäänmenoon, liusta muuttujaan int sensorvalue int = integer = kokonaisluku väliltä -32,768 ja 32,767 Arvo muuttuu välillä 0.1023 koska Arduinon µ-prosessorin AD/muunnin on 10 bittinen 2^10 Kiroitetaan arvo PWM pulssinleveys modulaatio 0-255 ja nyt taas pulssinleveysmodulaatio on 8-bittinen 2^8 Tarvitaan muunnos joka hoituu Arduinon sisäisellä funtiolla map(x,y,w,z). Parhaiten Arduinon käskyt löytyy englanniksi Googlettamalla. Niitä ja niiden syntakseja on aika paljon noin 2000kpl tai enemmä. Joten Googlettamallla Arduino IDE map() Löytyy tietoa. Muistiinpanoja

Tietoisku PWM The Fading example demonstrates the use of analog output (PWM) to fade an LED. It is available in the File->Sketchbook->Examples->Analog menu of the Arduino software. Pulse Width Modulation, or PWM, is a technique for getting analog results with digital means. Digital control is used to create a square wave, a signal switched between on and off. This on-off pattern can simulate voltages in between full on (5 Volts) and off (0 Volts) by changing the portion of the time the signal spends on versus the time that the signal spends off. The duration of "on time" is called the pulse width. To get varying analog values, you change, or modulate, that pulse width. If you repeat this on-off pattern fast enough with an LED for example, the result is as if the signal is a steady voltage between 0 and 5v controlling the brightness of the LED. In the graphic below, the green lines represent a regular time period. This duration or period is the inverse of the PWM frequency. In other words, with Arduino's PWM frequency at about 500Hz, the green lines would measure 2 milliseconds each. A call to analogwrite() is on a scale of 0-255, such that analogwrite(255) requests a 100% duty cycle (always on), and analogwrite(127) is a 50% duty cycle (on half the time) for example. Once you get this example running, grab your arduino and shake it back and forth. What you are doing here is essentially mapping time across the space. To our eyes, the movement blurs each LED blink into a line. As the LED fades in and out, those little lines will grow and shrink in length. Now you are seeing the pulse width.

Toinen oppitunti Hello World Tämän oppitunnin aikana opetellaan LCD- näytön käyttöä Meiilä on käytössä LCD- näyttö (Liquid Crystal Display- Nestekidenäyttö) Ja se otetaan käyttöön näin. Tarvikkeet Arduino alusta LCD I2C näyttö joka on piirillä PCF8574-4kpl hyppylankaa ma-fe

LCD Koodi #include <Wire.h> #include <LiquidCrystal_PCF8574.h> LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line display int show; void setup() { int error; Serial.begin(9600); Serial.println("LCD..."); while (! Serial);

Serial.println("Dose: check for LCD"); // See http://playground.arduino.cc/main/i2cscanner Wire.begin(); Wire.beginTransmission(0x27); error = Wire.endTransmission(); Serial.print("Error: "); Serial.print(error); if (error == 0) { Serial.println(": LCD found."); } else { Serial.println(": LCD not found."); } // if lcd.begin(16, 2); // initialize the lcd show = 0; } // setup() void loop() { if (show == 0) { lcd.setbacklight(255); lcd.home(); lcd.clear(); lcd.print("hello LCD"); delay(1000); lcd.setbacklight(0); delay(400); lcd.setbacklight(255); } else if (show == 1) { lcd.clear(); lcd.print("cursor On"); lcd.cursor(); } else if (show == 2) { lcd.clear(); lcd.print("cursor Blink");

lcd.blink(); } else if (show == 3) { lcd.clear(); lcd.print("cursor OFF"); lcd.noblink(); lcd.nocursor(); } else if (show == 4) { lcd.clear(); lcd.print("display Off"); lcd.nodisplay(); } else if (show == 5) { lcd.clear(); lcd.print("display On"); lcd.display(); } else if (show == 7) { lcd.clear(); lcd.setcursor(0, 0); lcd.print("*** first line."); lcd.setcursor(0, 1); lcd.print("*** second line."); } else if (show == 8) { lcd.scrolldisplayleft(); } else if (show == 9) { lcd.scrolldisplayleft(); } else if (show == 10) { lcd.scrolldisplayleft(); } else if (show == 11) { lcd.scrolldisplayright(); } // if delay(2000); show = (show + 1) % 12; } // loop()

No sitten vielä Kosteus ja Lämpöanturi mukaan

DHT Koodi #include <SimpleDHT.h> // for DHT11, // VCC: 5V or 3V // GND: GND // DATA: 2 int pindht11 = 2; SimpleDHT11 dht11; void setup() { Serial.begin(115200); } void loop() { // start working... Serial.println("============================ ====="); Serial.println("Sample DHT11..."); // read without samples. byte temperature = 0; byte humidity = 0; if (dht11.read(pindht11, &temperature, &humidity, NULL)) { Serial.print("Read DHT11 failed."); return; } Serial.print("Sample OK: "); Serial.print((int)temperature); Serial.print(" *C, "); Serial.print((int)humidity); Serial.println(" %"); // DHT11 sampling rate is 1HZ. delay(1000); }

Sitten yhdistetään koodit #include <Wire.h> #include <LiquidCrystal_PCF8574.h> #include <SimpleDHT.h> // for DHT11, // VCC: 5V or 3V // GND: GND // DATA: 2 int pindht11 = 2; SimpleDHT11 dht11; LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line display int show; byte temperature = 0; byte humidity = 0; void setup() { int error; Serial.begin(9600); Serial.println("LCD..."); while (! Serial); Serial.println("Dose: check for LCD"); // See http://playground.arduino.cc/main/i2cscanner Wire.begin(); Wire.beginTransmission(0x27); error = Wire.endTransmission(); Serial.print("Error: "); Serial.print(error); if (error == 0) { Serial.println(": LCD found.");

} else { Serial.println(": LCD not found."); } // if lcd.begin(16, 2); // initialize the lcd show = 0; } // setup() void DHT11() { delay(3000); // start working... Serial.println("============================ ====="); Serial.println("Sample DHT11..."); // read without samples. if (dht11.read(pindht11, &temperature, &humidity, NULL)) { Serial.print("Read DHT11 failed."); return; } Serial.print("Sample OK: "); Serial.print((int)temperature); Serial.print(" *C, "); Serial.print((int)humidity); Serial.println(" %"); // DHT11 sampling rate is 3HZ. } void LCD() { lcd.setbacklight(255);

lcd.home(); lcd.clear(); lcd.setcursor(0, 0); lcd.print((int)temperature); lcd.print(" C astetta"); lcd.setcursor(0, 1); lcd.print((int)humidity); lcd.print(" % Kosteus"); } void loop() { DHT11(); LCD(); }