UVOD:

U ovoj lekciji programirati ćemo Arduino tako da upravlja 7-segmentnim displejom. Preciznije rečeno, Arduino će na 7-segmentnom displeju prikazivati brojeve od 0-9 sa razmakom od jedne sekunde,a decimalnu točku će uključiti samo kada se prikazuju parni brojevi.

MATERIJAL:

1x Arduino Uno
1x USB kabel
1x otpornik 220R
1x 7-segmentni displej
1x Prototipna pločica
– Nekoliko žica za spajanje

Kôd programa:

 

Kôd programa 2 (prikaz slova: A, b, C, d, E, F, H, I, J, L)

Neka slova je fizički nemoguće prikazati na ovakvom displeju !!!

 

SHEMA:

13_7-segment

Princip rada:

7-segmentni displej je vrsta elektroničkog uređaja za prikaz decimalnih brojeva (a može i slova,uvjetno rečeno) i najčešće je alternativa mnogo kompleksnijem matričnom displeju (dot matrix display).

7-segmentni displej je prilično raširena vrsta prikaznih uređaja i može ih se naći u digitalnim satovima, uređajima za mjerenje, industriji, nekim kalkulatorima i ostalim elektroničkim sustavima koji imaju potrebu prikazati brojčane vrijednosti.

7seg1 7segment

Ovdje ćemo početi sa osnovnim 7-segmentnim displejom koji je u mogućnosti,naravno, prikazati samo jedan broj istovremeno i najčešće dolazi sa “decimalnom točkom”. 7-segmentni displej ima oblik broja 8 i sastavljen je od osam LED dioda. Svaka LED dioda ima svoju “nožicu” i zadužena je za osvjetljavanje jednog segmenta. Postoje i veći/veliki 7-segmentni displejevi koji imaju više dioda u jednom segmentu,ali to je već neka druga priča.

Segmenti se najčešće pojavljuju u dvije osnovne izvedbe,sa zajedničkom anodom i zajedničkom katodom. Da biste pravilno spojili 7-segmentni displej morate poznavati njegovu unutarnju konstrukciju. Što to znači? To ćemo najlakše objasniti objašnjavajući slike prikazane ispod.

 

anoda    katoda

 

Svaki segment u displeju ima svoju internu oznaku koja se najčešće označava slovima u smjeru kazaljke na satu. To vrijedi za raspored segmenata u displeju,ali “nožice”, pinovi, konektori ne moraju biti postavljeni redom i to je razlika na koju treba paziti. Kratko rečeno, da biste točno spojili 7-segmentni displej potreban vam je takozvani tehnički list ili datasheet. U njemu se nalaze SVE informacije koje su vam potrebne za spajanje. Zapravo tamo ima puno više informacija,ali nisu sve informacije za početnike.

Dakle, svaki “normalni” 7-segmentni displej ima segmente A,B,C,D,E,F,G i najčešće DP odnosno decimalnu točku. Da bismo dobili prikaz broja 1 moramo osvijetliti segmente B i C, da bismo dobili prikaz broja dva moramo osvijetliti segmente A,B,D,E,G itd… Da bismo dobili prikaz broja 8 moramo osvijetliti sve segmente osim DP. Dakle moraju biti osvijetljeni segmenti A,B,C,D,E,F,G.

Glavna nepoznanica kod početnika leži u činjenici da ne znaju koji pin je spojen sa kojim segmentom. To možemo utvrditi eksperimentom, što može potrajati,ali zato za većinu elektroničkih komponenti imamo datasheet (tehnički list) u kojem ćemo te informacije pronaći. Ispod teksta moćete pronaći datasheet imena LD3361BS. Ovaj datasheet možda i nije najbolji primjer za početnike jer ima nekoliko različitih modela displeja u jednom dokumentu, što bi vas moglo zbuniti,ali stavio sam ga iz tog razloga jer na jednom mjestu imate priliku vidjeti razlike između pojedinih izvedbi.

Datasheet najčešće sadrži informacije samo za jedan proizvod i ima u prosjeku do 5 stranica, za razliku od ovog koji ima više od 50. Zapravo ovdje je više riječ o katalagu, ali to trenutno nije bitno. Ukoliko želite primjer tehničkog lista za samo jedan proizvod, skinite PDF dokument 3641.pdf koji opisuje samo jedan prizvod. Odnosno riječ je o četveroznamenkastom displeju koji ima 4 komada 7-segmentnih displejeva u jednom kućištu. O tome više u lekciji broj 14.

pdf – LD3361BS.pdf

pdf– 3641.pdf

Ukoliko pogledamo stranicu broj 7 dokumenta LD3361BS.pdf vidjeti ćemo slijedeće:

– Riječ je o displeju sa zajedničkom katodom, što se vidi iz sheme na desnoj strani.
– Pin broj 1 nalazi se gore lijevo (gledano sa gornje strane) i taj pin (i pin broj 6) ujedno je i zajednička katoda za cijeli displej.

Pin 1 NE MORA uvijek biti gore lijevo!!! Ako pogledamo stranicu broj 9 tada ćemo vidjeti da ova izvedba displeja pin broj 1 ima dolje lijevo i da zajednički pin više nije katoda,već je to anoda i nije više na pinu broj 1 ili 6 već su to pinovi 3 ili 8.

Dokument 3641.pdf na stranici broj 3 također nam otkriva da i ovaj displej dolazi u dvije izvedbe (zajednička anoda i zajednička katoda).

Da ne odemo previše u širinu, jedan savjet za lakši elektronički život:

NAUČITE ČITATI DATASHEET DOKUMENTE !!!

Ako ne znate kako spojiti neki element (tranzistor,LED display, integrirani krug itd….)….PROČITAJTE TAJ DOSADNI DATASHEET !!!!

POGOTOVO AKO SE RADI O SKUPLJIM ELEMENTIMA, kao što je ovaj na slici ispod:

img_20161113_164609   pdfLD40011AB (tehnički list -datasheet)
Da vas još malo dodatno zbunim, postoje još i 9-segmentni, 14-segmentni i 16-segmentni displeji. Oni se ne koriste tako često, a osim toga za početnike je to malo prevelik zalogaj. Dok ste još na početku, držite se 7-segmentnih uređaja i to je to! Postoje i još neke posebne izvedbe displeja,kao ova na slici ispod.

man6750pdf – man6750.pdf datasheet

Slika projekta:

13_7-segment_slika

Video 1:

 

Video 2 (prikaz slova: A, b, C, d, E, F, H, I, J, L)

UVOD:

U ovoj lekciji napraviti ćemo jednostavni voltmetar, koristeći Arduino i LCD1602 displej. Opseg voltmetra je od 0-5V. Mjeriti ćemo napon podešen potenciometrom,a nakon toga taj rezultat će biti prikazan na ekranu.

MATERIJAL:

1x Arduino Uno
1x USB kabel
1x LCD1602
2x potenciometar 10kΩ
1x Prototipna pločica
– Nekoliko žica za spajanje

Kôd programa:

 

SHEMA:

12_voltage

Princip rada:

Osnovni princip rada ovog eksperimenta ide otprilike ovako: Pretvaranjem analognih vrijednosti napona u digitalne (korištenjem ADC konvertera), koje Arduino “prima” na svoje analogne ulaze, daljnjim programiranjem rezultatna vrijednost napona biti će prikazana na ekranu LCD1602.

Spojite tri žice sa potenciometra na Arduino pločicu. Prva žica ide sa jednog od vanjskih pinova potenciometra ide na minus (“masu”). Druga žica ide sa srednjeg pina potenciometra na analogni ulaz 0. Treća žica ide sa drugog vanjskog pina potenciometra na napajanje 5V (“plus”).

Okretanjem osovine potenciometra, mijenjamo vrijednost otpora na svakoj strani klizača koji je spojen na srednji pin potenciometra, što sve zajedno rezultira promjenom napona na srednjem pinu. Vrijednost napona na srednjem pinu, Arduino će čitati kao ulazni napon kojeg ćemo u konačnici mjeriti.

Arduino ima ugrađen analogno-digitalni pretvarač (ADC) koji čita ove različite vrijednosti i pretvara ih u brojeve između 0 i 1023. Kada je osovina potenciometra zakrenuta do kraja u jednu stranu, tada na srednjem pinu napon iznosi 0V. Tu vrijednost Arduino će očitati i preko ADC-a ulazna vrijednost će biti 0V. Kada je osovina potenciometra u potpunosti okrenuta na drugu stranu, tada je ulazni napon 5V,a Arduino će očitati vrijednost 1023. Funkcija analogRead() vraća broj između 0 i 1023 koji je proporcionalan veličini napona na ulaznom pinu. (U našem slučaju A0).

Funkcija:
analogRead()
Očitava vrijednost sa nekog određenog pina. Arduino ima 6 kanala (8 kanala Mini i Nano, a 16 kanala Mega), 10-bitni analogno-digitalni konverter (ADC). To znači da će ulazne vrijednosti napona između 0-5V, biti intrepetirane vrijednostima između 0 i 1023. Ovo daje rezoluciju očitanja od 5 volti/1024 jedinica ili 0,0049volti (4,9mV) po jedinici. Ulazni opseg i rezolucija mogu se mijenjati koristeći analogReference().

Sintaksa:
analogRead(pin)

Parametri:
pin: broj analognog ulaza koji na kojem će Arduino očitati ulazne vrijednosti.

Returns:
int(0 do 1023)

Sada nam preostaje sastaviti projekt i isprobati ga u praksi. Kako to izgleda, pogledajte u videu ispod teksta.

 

Osnovi dijelovi potenciometra:

potenciometar

  1. A i C su osnovni priključci potenciometra,na njih spajamo napon
  2. Klizna staza (traka) od otpornog materijala,najčešće grafit ili karbonski materijali miksani sa keramikom ili plastikom i tka zna čime sve.
  3. Klizač (wiper) B je treći i najglavniji dio potenciometra. On kliže po kliznoj stazi i njegova pozicija određuje napon na kontaktu B. Ako je klizač bliže “+” naponu tada je napon na srednjem pinu veći,a ako je bliže “-” (“masi”) tada je napon manji.

Slika projekta:

img_20161024_215647

Video:

UVOD:

U ovoj lekciji naučiti ćemo kako koristiti LCD1602 na Arduino platformi. Najprije ćemo na ekranu LCD1602 prikazati putujući tekst “Pozdrav svima!”, a nakon toga prikazati ćemo statični tekst “MERLIN10” i “www.merlin10.com”. Naravno da je moguće promijeniti ovaj tekst.

MATERIJAL:

1x Arduino Uno
1x USB kabel
1x LCD1602
1x potenciometar 10k
1x Prototipna pločica
– Nekoliko žica za spajanje

Kôd programa:

 

 

SHEMA:

Princip rada:

LCD1602 je,očigledno, vrsta LCD ekrana. LCD ima paralelno sučelje, što znači da mikrokontroler istovremeno mora upravljati sa nekoliko pinova na sučelju da bi mogao upravljati prikazoma na ekranu. Sučelje sadrži sljedeće pinove:

– (RS) Register select pin koji upravlja gdje će se u memoriji LCD-a zapisati podaci. Možete odabrati ili podatkovni register, koji zadržava ono što ide na ekran, ili instrukcijski register koji “govori” kontroleru LCD-a gdje da traži instrukcije za sljedeći korak
– (R/W) Read/Write pin koji određuje mod čitanja ili mod zapisivanja podataka
– “Enable” pin koji omogućava zapisivanje u registre
– 8 podatkovnih pinova (D0-D7). Stanje ovih pinova (uključeno ili isključeno) su bitovi podataka koji zapisujete u register kada zapisujete, ili neka vrijednost podatka kada isčitavate podatke.
– Imamo još (Vo) pin za kontrolu kontrasta ekrana, pinove za napajanje (+5V i Gnd) i pinove za pozadinsko osvljetljenje ekrana (Bklt+ i Bklt-).

Proces upravljanja ekranom uključuje slanje podataka koji čine sliku onoga što želimo prikazti na ekranu. Ti podaci šalju se u registar podataka,a zatim se šalju instrukcije u registar instrukcija. LiquidCrystal library vam pomaže u tome i čini ovaj postupak jednostavnijim, tako da ne morate znati “low-lwvwl” instrukcije.

Hitachi kompatibilni LCD ekrani mogu biti upravljani u dva moda: 4-bitni ili 8-bitni. 4-bitni mod zahtjeva sedam ulazno-izlaznih pinova na Arduinu, dok 8-bitni mod zahtjeva 11 pinova. Za prikaz praktički bilo kakvog teksta na ekranu dovoljan vam je 4-bitni mod, tako da će i naš primjer prikazati kako upravljati 2×16 LCD-om u 4-bitnom modu.

Potenciometar je vrsta otpornika sa tri kontakta, sa kliznim ili rotirajućim kontaktom koji radi kao podesivi djelitelj napona. Ako koristimo samo dva kontakta(jedan fiksni i klizač), tada potenciometar radi kao promijenjivi otpornik ili reostat. Na slikama ispod možete vidjeti najčešće oblike potenciometara koji se danas susreću.

xxxxxslike potencometaraxxxxxx

Funkcije:
-begin()
Određuje dimenzije (širina i visina) ekrana/displeja

Sintaksa:
lcd.begin(cols,rows)

Parametri:
lcd: varijabla vrste LiquidCrystal
cols: broj stupaca koje ima ekran
rows: broj redova koje ima ekran

setCursor()
Pozicionira kursor na LCD-u; odrđuje položaj na ekranu gdje će tekst biti prikazan.

Sintaksa:
lcd.setCursor(col, row)

Parametri:
lcd: varijabla vrste LiquidCrystal
col: stupac na kojem će se pozicionirati kursor (0 je početak prvog stupca)
row: red u kojem će se pozicionirati kursor (0 je početak prvog reda)

scrollDisplayLeft()
Skrola (pomiče) sadržaj ekrana (tekst i kursor)za jedno mjesto u lijevo.

Sintaksa:
lcd.scrollDisplayLeft)

Parametri:
lcd: varijabla vrste LiquidCrystal

Primjer:
scrollDisplayLeft() i scrollDisplayRight()

Pogledajte i scrollDisplayRight()

print()
Ispisuje tekst na LCD-u

Sintaksa:
lcd.print(data)
lcd.print(data, BASE)

Parametri:
lcd: varijabla vrste LiquidCrystal
data: podaci za ispis (char, byte, int, long, ili string)
BASE: (opcionalno): baza za ispis brojeva : BIN za binarno (baza 2), DEC za decimalno (baza 10), OCT za oktalno (baza 8), HEX za heksidecimalno (baza 16).

Returns:
byte
print() će vratiti broj zapisanih bajtova, što je opcionalno

clear()
Čisti ekran i postavlja kursor u gornji lijevi kut

Sintaksa:
lcd.clear()

Parametri:
lcd: varijabla vrste LiquidCrystal

Video:

UVOD:

U ovoj lekciji, programirati ćemo Arduino za upravljanje pasivnom zujalicom (buzzerom). Posljedično, zujalica će proizvesti zvuk, melodiju, odnosno reproducirati određene tonove. Molim vas da ovakvu vrstu reprodukcije ne zamjenjujete sa MP3 formatom, jer u ovom slučaju to nije MP3 ili neki drugo audio format.

 

MATERIJAL:

1x Arduino Uno
1x USB kabel
1x NPN tranzistor (8050)
1x otpornik 1k
1x otpornik 220R
1x pasivna zujalica
1x LED
1x Prototipna pločica
– Nekoliko žica za spajanje

Kôd programa:

 

SHEMA:

Princip rada:

Štreberski opis principa rada pasivne zujalice ide otprilike ovako: sve dok pasivnoj zujalici šaljete pravokutni signal različite frekvencije, zujalica će proizvoditi različite zvukove.
Ključne funkcije:

– tone()
Generira pravokutni signal određene frekvencije (ciklus od 50%) na određenom pinu. Trajanje može biti određeno, inače se signal ponavlja sve do pozivanja funkcije noTone(). Na pin možemo spojiti piezo zujalicu ili neki drugi odgovarajući zvučnik za reprodukciju tonova.

Istovremeno možemo generirati samo jedan ton. Ako se na nekom drugom pinu već reproducira ton, tada pozivanje funkcije tonne() neće imati efekta. Ukoliko se ton izvodi na istom pinu pozivanje funkcije će podesiti njegovu frekvenciju.

Korištenje funkcije tone() će interferirati sa PWMmpinovima 3 i 11 (na svim pločama osim Mega ploče).

NAPOMENA:
Ukoliko želite izvoditi različite visine tonova na više pinova, tada morate pozvati funkciju noTone() na pinu prije pozivanja funkcije tone()na slijedećem pinu.

Sintaksa:
tone(pin, frequency)
tone(pin, frequency, duration)

Parametri:
pin: pin na kojem će se generirati ton
frequency: frekvencija tona u hercima – unsignet int
duration: trajanje tona u milisekundama (opcija) – unsignet long

Returns:
ništa

noTone()
Zaustavlja generiranje pravokutnog signala pokrenutog funkcijom tone(). Ova funkcija neće imati nikakav efekt,ako nije generiran niti jedan ton.

NAPOMENA:
Ukoliko želite izvoditi različite visine tonova na više pinova, tada morate pozvati funkciju noTone() na pinu prije pozivanja funkcije tone()na sljedećem pinu.

Sintaksa:
noTone(pin)

Parametri:
pin: pin na kojem će se zaustaviti generiranje tona

Returns:

ništa

Video:

UVOD:

Ovo lekcija naučiti će nas kako napraviti sat sa dodatnim funkcijama. Ovaj sat uz prikaz vremena daje i informacije o temperaturi i vlažnosti zraka. Da bi sat zadržao informacije o vremenu i točnost, ovaj projekt koristi DS3231 RTC modul. RTC= Real Time Clock. Za prikupljanje informacija o temperaturi i vlažnosti zraka koristi senzor DHT11.

MATERIJAL:

1x Arduino Uno
1x USB kabel
1x DS3231 RTC modul (možete koristiti i DS1307), koristite odgovarajući library u kôdu
2x 74HC595 (8 bit shift register )
8x otpornik 150 R
1x 7 segmentni LED display sa zajedničkom anodom (FYQ-5642AX/BX-XX ili LG5643DH ili blo koji ekvivalent; pazite na raspored pinova)
1x DHT11 modul
1x Prototipna pločica
– Dosta žica za spajanje

 

Kôd programa 1 – Podešavanje vremena na DS3231(DS1307):

 

Kôd programa 2 – Digitalni sat + temperatura+vlažnost

 

 

SHEMA:

 

digitalni sat

 

Princip rada:

Kao što piše u uvodu ovo je sat sa prikazom temperature i vlažnosti zraka. Za kontrolu prikaza na displeju koristi se Arduino UNO i dva čipa 74HC595. Informacije prikazane na displeju se međusobno izmjenjuju u razmaku od tri sekunde. Ovo vrijeme je moguće podesiti.

Programiranje:
Za uspješno pokretanje na Arduinu potrebni su vam sljedeći library:

– Time (library za datum i vrijeme)
– DS1307RTC (library za Real Time Clock)
– Wire (library kao podrška za RTC)
– dhtt11 (library za senzor temperature i vlažnosti)

Za prikaz brojeva (0-9) na displeju potrebno je napraviti odgovarajuću tablicu znakova za svaki segment (A-G) u binarnom obliku:

B01111110 = 0
B00110000 = 1
B01101101 = 2
B01111001 = 3
B00110011 = 4
B01011011 = 5
B01011111 = 6
B01110000 = 7
B01111111 = 8
B01111011 = 9

Za prikaz sekvence sata, temperature i vlažnosti, koristi se “timer” sa funkcijom milis() i while().
U ovom primjeru svaka informacija prikazuje se na displeju i nakon tri sekunde prebacuje se na sljedeću.

Postupak:

1. Potrebno je uploadati podatke o vremenu na DS3231 – Uploadajte kôd broj je jedan sa početka stranice
2. Sada uploadamo program za Arduino koji će prikazati sat. – Uploadajte kôd broj 2 na Arduino
Ako je sve prošlo kako treba, trebali biste vidjeti sat i informacije o temperaturi i vlažnosti zraka.

Ovaj projekt je nešto složeniji za izradu, stoga je JAKO POŽELJNO da pripazite kod spajanja žica jer bi se mogao pojaviti efekt bijelog dima 😀 !!!

Video:

 

 

UVOD:

U ovoj lekciji programirati ćemo Arduino za upravljanje RGB LED-icom, koja će emitiriati različite boje.

MATERIJAL:

1x Arduino Uno
1x USB kabel
1x RGB LED-ica
3x otpornika 220Ω
1x Prototipna pločica
– Nekoliko žica za spajanje

Kôd programa:

SHEMA:

09_rgbLed

Princip rada:

RGB LED-ica sadrži tri LED-ice u sebi. Odnosno unutar njenog kućišta ukomponirane su tri različite LED diode. Sadrži crveno,zeleno i plavo svijetlo, odatle i naziv ovom elementu. Pomoću ove tri boje, praktički možemo generirati bilo koju boju.
Trobojne LED-ice sa crvenim,zelenim i plavim emiterima, u osnovi koriste četiri “nožice” za rad. To znači da za svaku “boju” imamo jednu “nožicu” i jednu zajedničku. Zajednička “nožica” može biti katoda ili anoda,ovisno o izvedbi elementa. Zajednička “nožica” najčešće je duža od ostalih.

Na slici ispod možete vidjeti prikaz RGB LED-ice:

rgb_LED
U ovoj lekcijikoristiti ćemo RGB LED-icu sa zajedničkom anodom. Najduža “nožica” (zajednička anoda)je spojena na +5V pin na Arduinu,a preostale tri “nožice” spojene su na pinove D9,D10,D11 preko otpornika koji ograničava protok struje.

rgb_LED_slika

 

Spojite sve elemente prema ponuđenoj shemi, te uploadajte skeč na Arduino. Ako je sve napravljeno kako treba, trebali biste vidjeti emitiranje crvene,zelene,plave,žute, bijele i ljubičaste boje.Nakon toga RGB dioda se gasi. nakon jedne sekunde pauze. Postupak se ponavlja sve dok nešto ne crkne 🙂

Video:

UVOD:

U ovoj lekciji prikazati ćemo kako programirati Arduino da generira PWM pravokutni signal koji će upravljati LED diodom. Efekt kojeg ovdje želimo postići je pulsirajuća ili dišuća LED-ica. Dakle, LED-ica se postupno uključuje, te se postupno isključuje.

MATERIJAL:

1x Arduino Uno
1x USB kabel
1x LED bilo koje boje
1x otpornik 220R
1x Prototipna pločica
– Nekoliko žica za spajanje

 

Kôd programa:

SHEMA:

08_breathingLed

Princip rada:

PWM je kratica za Pulse Widht Modulation. A PWM je tehnika za dobivanje analognih rezultata sa digitalnim značenjem. Digitalna kontrola koristi se za izradu pravokutnog signala koji naravno može biti samo uključen ili isključen(on-off). Ovakav on-off uzorak može simulirati napone između ON=5 volti i OFF=0 volti, promijenom količine vremena koje signal provede u stanju ON ili stanju OFF.
Trajanje kada je signal “ON” naziva se širina pulsa ili eng. pulse width (odatle i naziv za ovu funkciju). Za dobivanje različitih analognih vrijednosti, mijenjamo ili moduliramo tu širinu pulsa. Ako dovoljno brzo ponavljamo ON-OFF uzorak sa npr. LED diodom, tada napon “varira” između 0 i 5V te na taj način reguliramo svjetlost LED-ice. U našem slučaju napon neće ići do 5V jer to ne bi bilo “zdravo” za LED-icu. U videu na kraju ove lekcije možete pogledati kako se mijenja napon tijekom “disanja” diode.

Na slici ispod zelene crte predstavljaju regularni vremenski period u postupku. Trajanje ili period je inverzan frekvenciji PWM-a. Drugim riječima, Arduinova PWM frekvencija od oko 500Hz,daje rezultat da svaka zelena linija mjeri 2 milisekunde. Pozivanje funkcije analogWrite()

 

pwm

 

Video:

UVOD:

U ovoj lekciji naučiti ćemo kako programirati Arduino da upravlja LED bar grafičkim displayom.

MATERIJAL:

  • 1x Arduino Uno
  • 1x USB kabel
  • 1x potenciometar 10kΩ
  • 10 otpornika od 220Ω
  • 1x LED Bar Graph
  • 1x Prototipna pločica
  • Nekoliko žica za spajanje

Kôd programa:

SHEMA:

 

07_LEDBarGraph

Najprije da pokušam objasniti što je to LED Bar graf. Riječ je o elektroničkoj komponenti,odnosno skupu komponenti koje ne srećemo tako često u svakodnemvnom životu,ali možete je primjeniti na nekoliko načina. Stoga bih vam želio ukratko objasniti ovu komponentu.
Zapravo riječ je od 10 LED dioda naguranih u jedno kućište. Postoji nekoliko izvedbi ovih komponenti, tako da mogu sve diode biti jedne boje ili mogu biti RGB. U nekim LED Bar-ovima uz diode dolazi i otpornik, pa vam u biti preostaje samo priključiti odgovarajući napon da bi to sve proradilo.
U našem slučaju imamo LED Bar bez otpornika te smo morali dodati vanjske otpornike da bi regulirali napajanje.

Naš LED Bar ima 20 izvoda što znači da za svaku LED-icu u kućištu postoje dva kontakta,odnosno katoda i anoda kao i na samostalnoj LED-ici.
Jednostavnije rečeno, potenciometrom ćemo upravljati koliko LED-ica će biti upaljeno,a koliko ugašeno.

 

led_bar_graph

Video:

 

PROBLEM SA NONAME PLOČICOM:

Ovaj video prikazuje problem koji se javio kod no name Arduino Uno pločice. Kada se projekt napravi i pokrene,a napajanje Arduina ide preko USB kabela dolazi do isključivanja, ako u međuvremenu pokrenemo Arduino IDE.
Dakle, dok je Arduino IDE pokrenut pločica ne radi kako treba. Kada IDE ugasimo,sve radi kako treba. Ovaj problem se ne javlja kada pločica ima samostalno napajanje.

Dakle,možda je pametnije kupiti malo skuplju pločicu da biste izbjegli ovakve probleme.

UVOD:

U prvoj lekciji naučili smo kako isprogramirati Arduino da daje efekt treptajuće LED-ice. U ovoj lekciji Arduino  ćemo koristiti za upravljanje 8 LED dioda koje imaju efekt putujućeg svjetla.

MATERIJAL:

  • 1x Arduino Uno
  • 1x USB kabel
  • 8x Svjetleća diode (LED) bilo koje boje
  • 8x Otpornik 220Ω
  • 1x Prototipna pločica
  • Nekoliko žica za povezivanje

Kôd programa:

 

 

SHEMA:

06_flowingLed

 

Video:

 

 

Unutar koda možete promijeniti vremena i postići drugačiji efekt od ovdje prikazanog. Podesite po vlastitoj želji.

UVOD:

U ovoj lekciji programirati ćemo Arduino Uno tako da je u mogućnosti slati i primati podatke preko serijskog porta. Arduino će primati podatke sa računala,a zatim upravljati LED diodom sukladno primljenom podacima. Nakon toga Arduino će računalu putem serijskog porta vratiti podatke o trenutnom stanju LED diode.

Pošto je ovo sažeta lekcija, topla preporuka je posjetiti stranicu na adresi: https://www.arduino.cc/en/Reference/Serial i pročitati te shvatiti što se tamo nalazi.

MATERIJAL:

1x Arduino Uno
1x USB kabel
1x LED
1x Otpornik 220 ohma
1x Prototipna pločica
Nekoliko žica za spajanje

Kôd programa:

Shema:

05_serial

Princip rada:

1.Serijski port

Koristi se za komunikaciju između Arduino pločice i računala ili ostalih uređaja. Sve Arduino pločice imaju najmanje jedan serijski port. Serijski port se često naziva i UART (Universal Asynchronous Receiver Transmitter) port ili USART (Universal Synchronous Asynchronous Receiver Transmitter) port. Za komunikaciju koristi se digitalni pin 0 (RX) i pin 1 (TX) i USB port za komunikaciju sa računalom. Za neupućene, USB (Universal Serial Bus) port također koristi serijsku komunikaciju. Prema tome,ako pinove 0 i 1 koristite za serijsku komunikaciju, ne možete ih istovremeno koristiti koristiti kao digitalni ulaz/izlaz.

Za komuniciranje sa Arduino pločicom možemo koristiti Arduino aplikaciju koja ima ugrađeni serijski monitor. Iz izbornika Tools/Alati odaberite Serial Monitor ili na alatnoj traci odaberite ikonu koja se nalazi skroz desno.
Otvoriti će se novi prozor u kojem je potrebno podesiti baud rate korišten za pozivanje funkcije begin().
2. Ključne funkcije

begin()
Postavlja brzinu prijenosa podataka za serijsku komunikaciju u bitovima po sekundi (baud). Za komunikaciju sa računalom, koriste se sljedeće brzine: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 ili 115200. Ukoliko vam je potrebno možete podesiti i neki drugi bit rate ukoliko vam to projekt zahtijeva.

Sintaksa

Serial.begin(speed)

Parameteri
speed: u bitovima po sekundi (baud)

Returns
ništa

print()
Ispisuje podatke na serijski port kao ASCII tekst razumljiv ljudima. Ova naredba može imati mnogo oblika. Brojevi se također ispisuju kao ASCII znakovi za svaki broj. Operacije sa pomičnim zarezom su ispisane slično ASCII brojevima,ali su defaultno prikazane na dvije decimale.

Evo nekoliko primjera za prikaz:

Serial.print(78) prikazuje “78”
Serial.print(1.23456) prikazuje “1.23”
Serial.print(‘N’) prikazuje “N”
Serial.print(“Hello world.”) prikazuje “Hello world.”

Opcionalni drugi parametar određuje bazu (format) za korištenje; dozvoljene vrijednosti su BIN (binarno, ili baza 2), OCT (oktalno, ili baza 8), DEC (decimalno, ili
baza 10), HEX (heksadecimalno, ili baza 16). Za decimalne brojeve, ovaj parametar određuje broj decimalnih mjesta za korištenje.

Evo nekoliko primjera za prikaz:

Serial.print(78, BIN) prikazuje “1001110”
Serial.print(78, OCT) prikazuje “116”
Serial.print(78, DEC) prikazuje “78”
Serial.print(78, HEX) prikazuje “4E”
Serial.println(1.23456, 0) prikazuje “1”
Serial.println(1.23456, 2) prikazuje “1.23”
Serial.println(1.23456, 4) prikazuje “1.2345”

You can pass flash-memory based strings to Serial.print() by wrapping them
with F(). For example :
Serial.print(F(“Hello World”))
To send a single byte, use Serial.write().

Sintaksa

Serial.print(val)
Serial.print(val, format)

Parametri
val: vrijednost za ispis – bilo koji oblik podataka: određuje broj baze (za integralne vrste podataka) ili broj decimalnih mjesta

Returns
byte print() će vratiti broj zapisanih bajtova, iako je čitanje tog broja opcionalno.

println()

Ispisuje podatke na serijski port kao ASCII tekst razumljiv ljudima, popraćen nosećim povratnim znakom (ASCII 13 ili ‘\r’) ili znakom za novu liniju (ASCII 10, ili ‘\n’). Ova naredba slična je naredbi Serial.print().

Sintaksa
Serial.println(val)
Serial.println(val, format)

Parametri
val: vrijednost za ispis – bilo koji oblik podataka
format: određuje broj baze (za integralne vrste podataka) ili broj decimalnih mjesta

Returns
byte print() će vratiti broj zapisanih bajtova, iako je čitanje tog broja opcionalno.

read()
Čita dolazne serijske podatke.

Sintaksa
Serial.read()

Parameteri
ništa

Returns
prvi dostupni bajt dolaznih podataka preko serijske komunikacije (ili -1 ako nema podataka) – int

 
Sada uploadajte ovaj skeč na Arduino i u serial monitoru upišite broj 1 i pritisnite “Send/Pošalji”. LED-ica bi trebala svijetliti,a kada upišete 0 (ovo je nula, nije slovo O) tada bi se LED-ica trebala ugasiti.
Istovremeno na monitoru bi trebali dobiti poruku o statusu LED-ice.

 

serial_monitor

 

U ovoj lekciji pokazali smo kako računalo može poslati podatke na Arduino UNO putem serijskog porta te na taj način kontrolirati rad LED diode.