ARDUINO -PROJEKTY

Všetky návody na tejto stránke sa dajú použiť na tvorbu projektov a to ich zlúčením do jedného programu a jedného zapojenia. Náplň projektu je limitovaný len vašou fantáziou, rozsah možností je ohromný – od obyčajných počitadiel prístupov do miestnosti po sofistikovaných robotov.

Tu si teraz môžete pozrieť jeden príklad takého zlúčenia návodov:

Meranie vzdialenosti so zobrazením na displeji

Na vytvorenie tohto projektu potrebujeme zlúčiť 2 návody – merač vzdialenosti a displeje (konkrétne 16×2 číslicový displej). Tie sú k dispozícii na našej stránke.

Zlúčenie programov z týchto návodov je vcelku jednoduché. Z obidvoch programov vytvoríme nový takto(červeným obdĺžnikom vyznačené miesta prepíšeme vyznačeným textom):

Výber z programu na merač vzdialenosti

Výber z programu na displej

Nový program potom vyzerá takto:

float trvanie, vzdialenost;
  #include <Wire.h> 
  #include <LiquidCrystal_I2C.h>
  LiquidCrystal_I2C lcd(0x3F, 16, 2);
  void setup() {
    pinMode(11, OUTPUT);
    pinMode(12, INPUT);
    Serial.begin(9600);
    lcd.begin();
    lcd.backlight();
  }
  void loop() {
    digitalWrite(11, LOW);
    delayMicroseconds(2);
    digitalWrite(11, HIGH);
    delayMicroseconds(10);
    digitalWrite(11, LOW);
    trvanie = pulseIn(12, HIGH);
    vzdialenost = (trvanie*.0343)/2;
    Serial.print("Vzdialenost: ");
    Serial.println(vzdialenost);
    delay(100);
    lcd.setCursor(0, 0); 
    lcd.print("Vzdialenost:"); 
    lcd.setCursor(0, 1); 
    lcd.print(vzdialenost);
    delay(500);
 }

Zlúčenie zapojení z týchto návodov je tiež jednoduché. Z obidvoch zapojení vytvoríme nové takto:

Obidve zapojenia pred zlúčením:

Po zlúčení:

Teraz stačí už len nahrať kód do Arduina a vyskúšať funkčnosť projektu.

Arduino-pohybový senzor

Využitelný na detekciu pohybu v stráženom priestore. Na ukážkové zapojenie potrebujeme Arduino, pohybový senzor, LEDku, nepájivé pole a pár káblikov.

Zapojenie vyzerá takto:

Zdroj: randomnerdtutorials.com

Ak program nefunguje skúste prehodiť červený a čierny káblik medzi sebou. Senzor detekuje pohyb s asi 2 sekundovým zdržaním.

Program vyzerá takto:

int a = 0;   
 void setup() {
   pinMode(13, OUTPUT);     
   pinMode(2, INPUT); 
 }
 void loop(){
   a = digitalRead(2);  
   if (a == HIGH) {         
     digitalWrite(13, HIGH);   
     delay(100);               
     }
   if (a == LOW) {
     digitalWrite(13, LOW); 
     delay(100);                
     }
 }

Keď na pin 2 príde zo senzoru 5 voltov tak bol detekovaný pohyb, príkaz digitalRead to načíta ako logickú 1ku (HIGH) a uloží do premennej A. Ak je v premennej A hodnota HIGH zapne sa LEDku inak je vypnutá.

Arduino -tlačidlo

Pre zapínanie a vypínanie komponentov potrebujete tlačidlo. Na ovládanie LEDky cez tlačidlo potrebujeme Arduino, tlačidlo, LEDku, 220 ohmový a 10 kiloohmový rezistor , nepájivé pole a pár káblikov.

Samotné zapojenie vyzerá takto:

Zdroj: create.arduino.com

Keď sa stlačí tlačidlo tak na pin 2 príde 5 voltov teda logická 1-ka. Keď nie je tlačidlo stlačené stále do pinu 2 prúdi ide malé napätie cez 10kiloohmový odpor pretože v Arduine logická nula nie je 0 voltov ale asi 0,2 voltov. Bez tohto zapojenia by sa obvod správal nestabilne.

Program vyzerá takto:

int stav = 0;      
 void setup() {
   pinMode(13, OUTPUT);
   pinMode(2, INPUT);
 }
 void loop() {
   stav = digitalRead(2);
   if (stav== HIGH) {
     digitalWrite(13, HIGH);
     delay(2000);
     digitalWrite(13, LOW);
   }
   delay(100);
 }

Po spustení programu sa prečíta z pinu 2 (stav=digitalRead(2);) stav stlačenia tlačidla. Ak je tam 5voltov -HIGH , tak sa zapne LEDka na pine 13, počká sa 2 sekundy a LEDka sa vypne.

Arduino-infračervený senzor

Slúži na ovládanie robotov, autíčok a podobných zariadení pomocou diaľkového ovládača k televízoru.

Na zapojenie potrebujeme Arduino, infračervený senzor a kedže ideme spúštať pomocou diaľkového ovládača LEDku potrebujeme aj 1 LEDku, 100ohmový odpor, nepájivé pole a pár káblikov.

Zapojenie vyzerá takto:

Zdroj: fritzing.com

A program vyzerá takto:

#include <IRremote.h>
const int RECV_PIN = 11;
 IRrecv irrecv(RECV_PIN);
 decode_results results;
 void setup(){
   Serial.begin(9600);
   irrecv.enableIRIn();
   pinMode(9,OUTPUT);
 }
 void loop(){
   if (irrecv.decode(&results)){
         Serial.println(results.value, HEX);
   if (results.value==0x123456){
   digitalWrite(9,HIGH);
   }
   if (results.value==0x654321){ 
   digitalWrite(9,LOW);
   }
         irrecv.resume();
   }
 }

Na správne fungovanie programu potrebujeme stiahnuť a nainštalovať knižnicu IRremote do počítača. Najprv stiahnite knižnicu na stránke https://github.com/z3t0/Arduino-IRremote (kliknite na Clone or download a potom na Dowload ZIP). V programe Arduino IDE choďte do ponuky Projekt-Zahrnúť knižnice-Pridať ZIP. knižnicu ,vyberte priečinok so stiahnutou knižnicou a stlačte tlačidlo Open.

Po nahratí programu do Arduina zoberte ľubovoľný funkčný ovládač od televízora alebo dataprojektoru, v Arduino IDE kliknite na monitor sériového portu v hornom pravom rohu:

Potom kliknite na tlačidlo na ovládači , ktorým chcete zapnúť LEDku. Zobrazí sa kód tlačidla ktoré ste stlačili. Skopírujte ho do programu na miesto kde je 123456 (časť 0x nemazať). Rovnakým spôsobom si vyberte a skopírujte kód tlačidla ,ktorým chcete vypnúť LEDku do programu na miesto kde je 654321 (časť 0x nemazať) . Občas je potrebné stlačiť tlačidlo viackrát lebo keď zle namierite ovládačom na senzor tak sa vypíše kód 0XFFFFFFFF .

Jednoduchou úpravou programu a zapojenia je možné takto ovládať rôzne komponenty.

Arduino-displeje

Do Arduina je možné zapojiť viacero typov displejov. Tento článok obsahuje návod ako pripojiť dva z nich. Prvým je 16×2 číslicový displej z prevodníkom I2C (to je tá malá prilepená vec na zadnej strane displeja – s ňou je zapojenie veľmi jednoduché).

Zapojenie vyzerá takto:

zdroj: fritzing.com

Program vyzerá takto:

 #include <Wire.h>
 #include <LiquidCrystal_I2C.h> 
 LiquidCrystal_I2C lcd(0x3F, 16, 2);
 void setup() {
   lcd.begin();
   lcd.backlight();
 }
 void loop() {
   lcd.setCursor(0, 0); 
   lcd.print("Prvy text"); 
   lcd.setCursor(0, 1); 
   lcd.print("Druhy text");
   delay(500);
 }

Na správne fungovanie programu potrebujeme stiahnuť a nainštalovať knižnicu LiquidCrystal_I2C do počítača. Najprv stiahnite knižnicu na stránke https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library (kliknite na Clone or download a potom na Dowload ZIP). V programe Arduino IDE choďte do ponuky Projekt-Zahrnúť knižnice-Pridať ZIP. knižnicu ,vyberte priečinok so stiahnutou knižnicou a stlačte tlačidlo Open.

Ak Vám po spustení displej nefunguje skúste ešte v druhom riadku zameniť 0x3F za 0x27 .

Druhým displejom je 0,96 palcový OLED displej 128*64:

Existujú dva typy -so 4 nožičkami a so 7 nožičkami. Lahší na použitie je ten so 4 nožičkami a na ten je aj robený tento návod.

Zapojenie vyzerá takto:

Zdroj: fritzing.com

Program vyzerá takto:

#include "U8glib.h"
U8GLIB_SSD1306_128X64 mujOled(U8G_I2C_OPT_NONE);
void setup() { 
 }
void loop() { 
   mujOled.firstPage(); 
   do {
   mujOled.setFont(u8g_font_unifont);
   mujOled.setPrintPos(0, 25);
   mujOled.print("TEXT1");
   mujOled.setPrintPos(0, 40);
   mujOled.print("TEXT2");
   mujOled.setPrintPos(0, 55);
   mujOled.print("TEXT3");  
     } while( mujOled.nextPage() ); 
 delay(10);
 }

Na správne fungovanie programu potrebujeme stiahnuť a nainštalovať knižnicu U8glib do počítača. Najprv stiahnite knižnicu na stránke https://bintray.com/olikraus/u8glib/download_file?file_path=u8glib_arduino_v1.18.1.zip . V programe Arduino IDE choďte do ponuky Projekt-Zahrnúť knižnice-Pridať ZIP. knižnicu ,vyberte priečinok so stiahnutou knižnicou a stlačte tlačidlo Open. .