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.