ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja -

Similar documents
ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja -

Programiranje III razred

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Sberbank Business Online na Mozilla FireFox

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

VDSL modem Zyxel VMG1312-B10A/B30A

Naredbe za kontrolu toka

PARALELNO PROGRAMIRANJE

Uputstvo za podešavanje mail klijenta

Upute za postavljanje Outlook Expressa

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

Uputstvo za korišćenje logrotate funkcije

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Uputa za instaliranje programske potpore za operativni sustav WINDOWS

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

PKI Applet Desktop Application Uputa za instalaciju programske potpore

Prva recenica. Druga recenica.

VRIJEDNOSTI ATRIBUTA

Izrada VI laboratorijske vježbe

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

VB komande. Programiranje 1

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

GUI - događaji (Events) i izuzeci. Bojan Tomić

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Računarske osnove Interneta (SI3ROI, IR4ROI)

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

SELECT CASE i FOR NEXT. Programiranje 1

Uvod, varijable, naredbe, petlje

VHDLPrimeri Poglavlje5.doc

PROGRAMIRANJE. Amir Hajdar

Uvod u relacione baze podataka

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Iskočni okviri (eng. popup boxes)

Primjer ispisuje rečenicu "Dobro dosli na brzi tecaj C-a" na ekranu

TP-LINK TL-WPA4220 strujni prijenosnik Internet ili IPTV signala s bežičnim modulom. Priručnik za korištenje i brzu instalaciju

/*#include <iostream> // Prvi zadatak sa integralnomg ispita

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

VEŽBA 5 do while petlja, switch case

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

4.1 Učitavanje podatka tipa string Učitavanje brojčanih vrijednosti Rad sa dinamičkim objektima... 7

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Vežbe - XII nedelja PHP Doc

Informacioni sistemi i baze podataka

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

JavaScript i HTML DOM

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

Shell programiranje. Damir Kirasić Škola otvorenog računarstva FER Zagreb

Korisničko uputstvo za podešavanje Home Gateway Cisco EPC3928S. (Windows XP)

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

Modbus TCP i dva PLC S7 1200

for i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end;

Uvod u Javu. Programski jezik Java Izvršavanje Java programa BlueJ razvojno okruženje Elementi Jave Tipovi podataka Prvi programi

For. 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} uses wincrt; var s,i:integer; begin for i:=1 to 5do writeln(i); end.

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

Push(3,&S) 3 1 S Uvijek trebamo paziti da ne zovemo Pop nad praznim stogom.

Rad sa MySQL bazom podataka

Scheme je funkcionalni jezik moderna varijanta jezika LISP-a, s dodacima iz Algola (lokalni doseg identifikatora).

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Numerical Computation

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

12. Uskladištene procedure (Stored Procedures)

KURSORI BAZE PODATAKA U ORACLE 11g

Objektno orijentirano programiranje. Auditorne vježbe

Nizovi. Programiranje 1

Upute za VDSL modem Zyxel VMG3312-T20A

Programiranje III razred

Uvod u programski jezik

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

dr. sc.. Josip Musić Originalne slideove izradio:

Kodiranje GUI aplikacija u Visual C#

Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr. Mijo Mirković" Marino Pereša. JavaScript. Završni rad. Pula, 2015.

Numeričke metode i praktikum

WEB APLIKACIJA ZA REZERVACIJU PACIJENATA

Visoka tehnička škola strukovnih studija Novi Sad. seminarski rad na temu: Modbus protokol. dr. Velibor Pjevalica

Što ćete naučiti. Internet općenito HTML CSS XML XHTML Javascript DOM DHTML PHP, ASP.NET

16. Sigurnije programiranje

progecad NLM Korisničke upute

Zadatci Small Basic za 7. Razred ( programa)

Backup i Restore C particije ili Windowsa sa NORTON-om

Planiranje implementacija PIM-a za Zebru

Predavanje 10. Odjel za matematiku 1 IP NETWORKING. Detaljnije o domenama, hostovima, socketima, TLSu, SSLu

1. Uvod. Evolucija Interneta.

Desktop IKONE START MENI. TASK BAR traka zadataka RADNA POVRŠINA

9. RAD S DATOTEKAMA PODATAKA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Upute za VDSL modem BiPAC 8700VNXL R3

Računalne mreže. Analiza Grafičkog mrežnog simulatora GNS3

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU STRUČNI STUDIJ RAČUNARSTVA PERO BUDEN UPRAVLJANJE GRIJANJEM POMOĆU ARDUINO PLATFORME PREKO WEB SUČELJA

Korisničko uputstvo za instalaciju i podešavanje securew2 programa za pristup eduroam servisu

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb,

OptiDSL. Samoinstalacija. Windows XP i Windows Vista operativnim sustavima

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

Ovde će se raditi na funkcijama konverzija: konverzija tipa datuma u znak tip i obrnuto, konverzija broja u karakter tip i obrnuto

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni preddiplomski studij matematike. Arhitektura računala. Osijek, 2016.

Programiranje kroz aplikacije. Kontrola toka programa Nizovi

Operativni Sistem koji podržava multitasking

Što ćete naučiti. Internet općenito HTML CSS XML XHTML Javascript DOM DHTML. AJAX jquery PHP ASP.NET Ruby On Rails MS Silverlight FLASH, SMIL, SVG...

Transcription:

ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja - PRIPREMA 6 SERIJSKA KOMUNIKACIJA S RAČUNALOM I ANALOGNI ULAZI Paolo Zenzerović, mag. ing. el. Zagreb, 2014.

2 ARDUINO KROZ JEDNOSTAVNE PRIMJERE SERIJSKA KOMUNIKACIJA S RAČUNALOM Serijska komunikacija je tip komunikacije gdje prijemnik i predajnik razmjenjuju podatke putem jednog para signala. Mikrokontroleri na Arduino i Croduino pločici spremni su za serijsku komunikaciju s računalom. Komunikacija se odvija putem istog USB kabla koji se koristi za programiranje mikrokontrolera. Podatci između računala i mikrokontrolera mogu teći u oba smjera mikrokontroler može slati podatke računalu i računalo može slati podatke mikrokontroleru. Mi ćemo se orijentirati na ovaj prvi slučaj. Sljedeći sketch prikazuje način slanja podataka na računalo: Serial.println("Arduino"); delay(1000); Kako bi započeli serijsku komunikaciju i postavili njezinu brzinu iskoristili smo naredbu Serial.begin(9600). Broj 9600 označava brzinu serijske komunikacije odnosno govori o tome koliko će bitova informacije biti poslano unutar jedne sekunde (bps bits per second). Za naše potrebe uvijek možete koristiti brzinu od 9600 bps. Unutar glavne petlje programa koristili smo Serial.println naredbu kako bismo računalu poslali neke podatke. U našem slučaju poslali smo string Arduino. Taj string će se svake sekunde poslati računalu od mikrokontrolera. Kako bi na računalu mogli pogledati podatke koji stižu u Arduino programsko okruženje ugrađen je alat za pregled podataka serijske komunikacije. Kako bi ga pokrenuli potrebno je kliknuti na ikonicu povećala u gornjem desnom uglu Arduino programskog okruženja, kako je naznačeno na sljedećoj slici. 2 ARDUINO KROZ JEDNOSTAVNE PRIMJERE

ARDUINO KROZ JEDNOSTAVNE PRIMJERE 3 Nakon pritiska na gornju ikonu otvara se novi prozor u kojem možemo vidjeti podatke koji dolaze od mikrokontrolera. Prozor s podatcima je prikazan na sljedećoj slici: ARDUINO KROZ JEDNOSTAVNE PRIMJERE 3

4 ARDUINO KROZ JEDNOSTAVNE PRIMJERE Korištenjem funkcije Serial.println nakon svakog poslanog podatka ispisuje se znak za novi red pa će sljedeći poslani podatak biti prikazan u retku ispod prethodnog. Ako želimo više podataka prikazati u istom retku možemo iskoristiti naredbu Serial.print koja ne šalje znak za novi red. Osim statičkih podataka kao što je bila riječ Arduino u prethodnom primjeru možemo na računalo slat ii podatke koji se mijenjaju recimo iznos neke varijable, očitanje nekog senzora itd. Pogledajmo jednostavni primjer: int brojac; for (brojac=0; brojac<10; brojac++){ Serial.print(brojac); delay(500); Serial.println(); Cilj primjera bio je prikazati kako računalu možemo poslati promjenjive podatke. Na početku programa stvorili smo jednu varijablu koju sm nazvali brojac. Varijablu brojač iskoristiti ćemo u for petlji kako bi mogli brojiti od 0 do 9. For petlja nam služi kako bismo dio koda u petlji mogli izvršiti određeni broj puta. For petlja prima tri argumenta koje je potrebno upisati u zagrade nakon ključne riječi for a to su: - početno stanje brojača: - uvijet do kada će se petlja izvršavati: - što je potrebno učiniti na kraju svake petlje: brojac=0 brojac<10 brojac++ Da pojasnimo, na početku petlje brojač smo stavili na vrijednost nula (brojac=0). U drugom argumentu rekli smo petlji da se izvršava sve dok je brojač manji od 10 (brojac<10), a u tećem argumentu zadali smo da se na kraju izvršenja svakog ciklusa petlje na prethodnu vrijednost brojača nadoda jedan (brojac++) kako bi postigli efekt brojenja. Naredbom Serial.print(brojac) unutar petlje poslali smo računalu brojeve 0, 1, 2, 3 itd do 9. Naredbom Serial.println() koja nema nikakvog argumenta poslali smo računalu samo znak za novi red. Rezultat ispisa je: 0123456789 0123456789 0123 itd. 4 ARDUINO KROZ JEDNOSTAVNE PRIMJERE

ARDUINO KROZ JEDNOSTAVNE PRIMJERE 5 Serijska veza nam može biti izuzetno korisna za prikaz očitanja stanja različitih senzora ili očitanja analognih ulaza. Spojimo primjer kao iz pripreme 4 kako bi pokazali ovu funkcionalnost: Grafički prikaz spajanja na prototipnoj pločici: Električna shema: ARDUINO KROZ JEDNOSTAVNE PRIMJERE 5

6 ARDUINO KROZ JEDNOSTAVNE PRIMJERE Zadatak 1: Očitajte stanje analognog ulaza na koji je spojen potenciometar i serijskim putem ga pošaljite na računalo kako biste mogli vidjeti kolika je očitana vrijednost. int potenciometar = A0; int analogna_vrijednost; pinmode(potenciometar, INPUT); analogna_vrijednost=analogread(potenciometar); Serial.println(analogna_vrijednost); delay(500); Gornji program očitava analognu vrijednost koju dobivamo sa analognog ulaza A0 na koji je spojen potenciometar kao naponsko djelilo. Nakon očitanja te vrijednosti istu šaljemo na računalo putem naredbe Serial.println(analogna_vrijednost); Ovo nam omogućava da na vrlo jednostavan način očitamo stanja raznih senzora. Kod korištenja analognih ulaza za očitanje senzora koji nam daju neku vrijednost od 0 do 5V često želimo uključiti ili isključiti uređaj samo onda kada očitana vrijednost prijeđe ispod ili iznad određene razine. Naprimjer kada mjerimo količinu svijetlosti pomoću fotootpornika želimo uključiti rasvjetno tijelo onda kada količina svijetlosti padne ispod određena razine, ili kada mjerimo temperaturu pa želimo uključiti grijanje samo onda kada je temperatura ispod određene vrijednosti. Zadatak 2: Spojite sklop kao na prethodnoj stranici. Napravite program koji će uključiti LED diodu kada je potenciometar zakrenut više od pola u desnu stranu. Kada se potenciometar vrati u lijevu stranu i prijeđe graničnu vrijednost LED dioda se isključuje. Za početak iskoristite prethodni primjer da odredite graničnu vrijednost. Spojite potenciometar i zakrećite ga ten a ekranu očitajte vrijednost koju poprima na sredini. To bi trebala biti vrijednost oko 512. Ja sam za svoj sklop odredio graničnu vrijednost od 515. Potom zakrenite potenciometar u desnu stranu. U ovisnisti o tome kako ste spojili potenciometar vrijednosti se mogu povećavati ili smanjivati. U mom slučaju vrijednosti se smanjuju. To znači da u rješenju zadatka moram provjeravati je li trenutna vrijednost analognog ulaza manja od 515 te u tom slučaju uključiti diodu. Ako se vrijednosti za vaš spoj povećavaju onda u rješenju zadatka morate provjeravati je li trenutna vrijednost analognog ulaza veća od 515 te u tom slučaju uključiti diodu. 6 ARDUINO KROZ JEDNOSTAVNE PRIMJERE

ARDUINO KROZ JEDNOSTAVNE PRIMJERE 7 Rješenje za prvi slučaj: int potenciometar = A0; int analogna_vrijednost; int led = 10; pinmode(potenciometar, INPUT); pinmode(led, OUTPUT); analogna_vrijednost=analogread(potenciometar); if (analogna_vrijednost<515) { digitalwrite(led, HIGH); else { digitalwrite(led, LOW); delay(100); Rješenje za drugi slučaj: int potenciometar = A0; int analogna_vrijednost; int led = 10; pinmode(potenciometar, INPUT); pinmode(led, OUTPUT); analogna_vrijednost=analogread(potenciometar); if (analogna_vrijednost>515) { digitalwrite(led, HIGH); else { digitalwrite(led, LOW); delay(100); Dodatni zadatak: Umjesto potenciometra za prethodni zadatak iskoristite fotootpornik spojen u spoj naponskog djelila zajedno s još jednim otpornikom. Kada fotootpornik zamračite neka se LED diode uključi a kada je fotootpornik osvjetljen neka se LED dioda isključi. Fotootpornik možete spojiti kako je prikazano na sljedećoj slici: ARDUINO KROZ JEDNOSTAVNE PRIMJERE 7