Kniha Arduino

3. Arduino komponenty

3.2. Arduino súčiastky

Rezistory

Rezistor je pasívnou súčiastkou (nespráva sa v obvode ako zdroj, energiu nevyrábajú len ju sprostredkúvajú). Jej hlavnou vlastnosťou je elektrický odpor. Rezistory používané v elektrotechnike sú vhodne upravené hmoty, ktoré kladú pretekajúcemu prúdu odpor. Veľkosť pretekajúceho prúdu je nepriamoúmerná veľkosti odporu. To znamená, že pri rovnakom napätí čím väčší odpor zaradíme, tým bude v obvode menší prúd. Počas práce s ňou ju môžeme využívať viacerými spôsobmi. 


Schématické značky 


  1. Obmedzenie prúdu - najčastejšie pri ovládaní LED diód
  2. Delička napätia - umožňuje nám znížiť merané napätie 
  3. Pull-up rezistor - Pull-up rezistor sa používa na udržanie napätia na danom vstupe na hodnote napájacieho napätia.

Rezistory sa podľa veľkosti a tvaru označujú viacerými spôsobmi. 

  1. Označovanie rezistorov písmenovým kódom s príponou 
  2. Označovanie rezistorov farebným kódom
  3. Označovanie rezistorov číselným kódom

My sa pri Arduine zameriame hlavne na označovanie farebným kódom. Toto označovanie sa používa hlavne pri rezistoroch malých rozmerov. Hodnotu odporu tohto rezistora zistíme vďaka tabuľkám. Tie sú väčšinou 4-5 prúžkové. Kód na rezistoroch čítame zľava doprava. Na ľavej strane máme sústredené prvé prúžky. Prvý prúžok nikdy nemôže mať nulovú hodnotu, platí pre čierny prúžok. 



Tabuľka farebných kódov rezistorov. 

Pri presnejších odporoch sa používa 5 prúžkové značenie, prvé tri prúžky nám označujú hodnotu, štvrtý určuje multiplikátor a piaty nám označuje toleranciu rezistora. Niekedy sa môžeme stretnúť aj so šiestym prúžkom, ten sa nachádza úplne napravo a definuje tepelný koeficient odporu, je výrazne širší. 

Ako pomôcka na zistenie hodnôt rezistorov nám slúžia aj kalkulačky, ktoré sú voľne dostupné na webe.


Odkaz na Resistor Calculator.ardui


Led


Potenciometer

Jedná sa o pasívnu súčiastku, je to mechanické zariadenie, ktoré pri otáčaní hriadeľa poskytuje rôzne množstvo odporu, jedná sa teda o nastaviteľný delič napätia. Privedením napätia cez potenciometer a do analógového vstupu na doske, je možné merať veľkosť odporu vytváraného potenciometrom. Ďalej sa ešte môžeme stretnúť s posuvným potenciometrom. Konštrukčné vlastnosti týchto dvoch potenciometrov sú rôzne, no pracovný princíp je rovnaký. Potenciometer má dve svorky vstupného zdroja pripevnené na koniec odporu. Na nastavenie výstupného napätia sa posuvný kontakt pohybuje pozdĺž rezistora na výstupnej strane.

Základy digitálních potenciometrů a jejich použití | Vývoj.HW.cz

Bzučiak

Aktívny bzučiak: alebo aj piezoelektrický menič, nám umožňuje vydávať rôzne tóny. Dlhšia nožička je kladná (+). Bzučiak môžeme ovládať ako digitálne (digitalWrite()), tak aj PWM (analogWrite()). Zmena frekvencie jeho bzučania môže produkovať iný zvuk. S týmto modulom sa môžeme stretnúť v každodennom živote, pri používaní rôznych spotrebičov sko napr. PC, chladničky či telefóny a podobne. Základným rozdielom medzi aktívnym bzučiakom a pasívnym bzučiakom je, že výrobok nevyžaduje rovnaký vstupný signál; ideálny signál pre aktívny bzučiak je DC, zvyčajne označený ako VDC, VDD atď. Pretože bzučiak má jednoduchý vnútorný kmitajúci obvod, konštantný jednosmerný prúd môže byť konvertovaný na impulzný signál s určitou frekvenciou a magnetické pole sa mení z povrchu, aby sa poháňal vibrácie molybdénovej dosky. Niektoré aktívne bzučiaky však môžu pracovať pod špecifickými striedavými signálmi, ale vyžadujú len vysoké napätie a frekvenciu AC signálov. Takéto metódy sa vo všeobecnosti nepoužívajú. 


Aktívny bzučiak, dlhšia nôžka kladná (+)

Pasívny bzučiak: Pasívne bzučiaky nemajú vnútorný okruh ovládačov. Niektoré spoločnosti a továrne ich nazývajú sniffery, ktoré sa nazývajú sirény v národnom štádiu. Ideálnym signálom pre pasívny bzučiak je štvorcová vlna. Ak dáte DC Signálny bzučiak nie je citlivý, pretože magnetický okruh je konštantný, molybdénový film nemôže vibrovať výslovnosť. Jednoduchý spôsob rozlíšenia medzi aktívnymi a pasívnymi elektromagnetickými bzučiakmi - Po prvé, vizuálna kontrola, po druhé, multimetr test.


LCD display 

Na trhu sa môžeme stretnúť s viacerými druhmi LCD displejov. Líšia sa zobrazovacou kapacitou a spôsobom prenosu dát. Materiál ktorým sú tieto displeje tvorené sa nazýva tekuté kryštáli. Display je je konštruovaný tak , že vrstva tekutých kryštálov je umiestnená medzi dvoma elektródami. Keď na obe elektródy privedieme odpovedajúce napätie vznikne medzi nimi elektrické pole, ktoré zmení polohu kryštálov, materiál v miestach pôsobenia sa stane nepriehľadným. Display býva doplnený ešte o polarizačné filtre, pokiaľ sa jedná o farebné LCD týchto filtrov je viacej vrstiev na sebe. Ďalej sa stretneme aj s podsvietením ktoré zlepšuje čitateľnosť displeja.

 Princíp LCD displeja 

Najzákladnejšou skupinou LCD displejov sú znakové displeje. Poznáme displeje s klasickým prenosom dát, no dnes sa používajú aj displeje s prenosom dát po zbernici 12C. Znakové displeje zobrazujú znakové matice bodov, to nám umožňuje zobrazovať drobné texty, číselné znaky, namerané hodnoty na senzoroch a pod. Z hľadiska zobrazovaných znakov rozoznávame dva základné typy - jeden zobrazuje 16 znakov na dvoch riadkoch a druhý 20 znakov na 4 riadkoch. Zapojenie je rovnaké ale v programe je potrebné v inicializačnej fáze uviesť ktorý s ktorým typom bude Arduino pracovať.

LCD displej klasický typ: zapojenie a program 


Kód:

// importovanie knihovne
#include <LiquidCrystal.h>
// definícia pinov pre objekt lcd
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
// vyberte verziu displeja
//verzia 16×2
lcd.begin(16, 2);
//verzia 20×4
//lcd.begin(20, 4);
}
void loop()
{
//nekonečná slučka zobrazuje text – text je vždy uvedený v úvodzovkách
lcd.setCursor(3,0); //nastavenie kurzora – miesta odkiaľ sa začína zobrazovať text
lcd.print(„arduino“); //zobrazovaný text na prvom riadku
lcd.setCursor(1,1); //nastavenie kurzoru – miesta odkadiaľ sa začína zobrazovať text
lcd.print(„uno“); //zobrazovaný text na druhom riadku
}


LCD displej l2C: zapojenie a program


Kód:

// importovanie knihovní 
# include <Wire.h>
# include <LiquidCrystal_I2C.h>
//Inicializácia objektu lcd
LiquidCrystal_I2C lcd(0x27,16,2); // nastavenie LCD adresy na 0x27 na 16 x 2
void setup()
{
}
void loop()
{
lcd.init(); // inicializácia lcd
lcd.backlight(); // aktivácia podsvietenia displeja
lcd.setCursor(4,0); //nastavenie kurzora – miesta odkadiaľ sa začína zobrazovať text
lcd.print(„arduino“); //zobrazovaný text na prvom riadku
lcd.setCursor(1,1); //nastavenie kurzora – miesta odkadiaľ sa začína zobrazovať text
lcd.print(„uno“); //zobrazovaný text na druhom riadku
}

Joystick PS2

Jedná sa o herný modul. Sníma pohyb páčky v dvoch smeroch. Konštrukcia obsahuje 2 potenciometre s hodnotou 10 kiloohmov a tlačidlo pre detekciu stisku joysticku. V normálnom stave je potenciometer nastavený približne do polovice svojho rozsahu a pri pohybe páčky sa mení jeho odpor od 0 po 10 ohmov. Pre zapojenie joysticku ku Arduinu stačí zapojiť 5 prepojovacích pinov.  


// nastavení prepojovacích pinov modulu
#define pinX A0
#define pinY A1
#define pinKey 2
// premenné pre uloženie hodnoty
// stredu joysticku
int nulaX, nulaY;

void setup() {
  // inicializácia tlačítka joysticku
  pinMode(pinKey, INPUT_PULLUP);
  // komunikácia cez sériovú linku rýchlostí 9600 baud
  Serial.begin(9600);
  // načítanie a uloženie hodnôt pre x a y osy
  nulaX = analogRead(pinX);
  nulaY = analogRead(pinY);
}
void loop() {
  // vytvorenie premenných pre uloženie
  // hodnôt pre osy x, y a stav tlačítka
  int aktX, aktY, stavTlac;
  // načítenie analógových hodnôt osy x a y
  aktX = analogRead(pinX) - nulaX;
  aktY = analogRead(pinY) - nulaY;
  // načítanie stavu tlačítka
  stavTlac = digitalRead(pinKey);
  if (aktX > 0) {
    aktX = map(aktX, 0, 1023-nulaX, 0, 100);
  }
  else {
    aktX = map(aktX, 0, -nulaX, 0, -100);
  }
  if (aktY > 0) {
    aktY = map(aktY, 0, 1023-nulaY, 0, 100);
  }
  else {
    aktY = map(aktY, 0, -nulaY, 0, -100);
  }
  // vyčistenie informácií o súradniciach
  // po sériovej linke
  Serial.print("Souradnice X,Y = ");
  Serial.print(aktX);
  Serial.print(", ");
  Serial.print(aktY);
  // kontrola stavu tlačítka, v prípade stisku
  // vytlačíme informáciu po sériovej linke
  if(stavTlac == LOW) {
    Serial.print(" | Tlacitko stisknute.");
  }
  Serial.println();
  // voliteľná pauza pre prehladné zobrazenie
  delay(1000);
}

Arduino senzory

Medzi veľmi obľúbené doplnky pri práci s Arduino patria senzory. Na trhu sa momentálne nachádza množstvo senzorov od rôznych výrobcov. Umožňujú nám rozšíriť funkčnosť dosky a získavať informácie z okolia. Pre každý podnet ktorý chceme z okolia získať musíme použiť iný senzor (meranie vzdialenosti, teploty, pohybu. náklonu, vlhkosti, farby, zvuku....  ). 

V tejto časti si o pár senzoroch niečo povieme:

 Ultrazvukový merač vzdialenosti HC-SR04

Umožňuje nám meranie vzdialenosti s presnosťou až 3mm a do vzdialenosti 4m. Funguje na princípe odrazu zvukových vĺn od prekážky. Pracovný uhol je 15 stupňov. Nie sú potrebné knižnice. 



Spôsob zapojenia

ME svetelný senzor

Tento senzor je od spoločnosti Makeblock, meria intenzitu svetla. Je možné ho použiť pri tvorbe jednoduchých projektov, napr. pri vytváraní inteligentnej lampičky ktorej svetlo sa bude upravovať podľa intenzity svetla alebo na stavbu robota ktorý bude reagovať na svetlo. Je k nemu vytvorená aj Arduino knižnica pre zjednodušenie programovania. Výhodou je široký rozsah merania a vysoké rozlíšenie.

 

________________________________________________________________________

Arduino po slovensky: Rezistor

Arduino Slovakia - Rezistor

Resistor Calculator

Arduino po slovensky: Farebné značenie rezistorov

Průvodce-světem-Arduina-CZ.pdf (robotikabrno.cz)

Arduino Joystick PS2 | Návody Drátek (dratek.cz)