sobota 13. prosince 2014

Arduino Lesson 7 - Real Time Clock

V dnešní sedmém tutoriálu se naučíme pracovat s real time clock modulem. Budeme potřebovat Arduino, display shield a real time clock modul.

Otevřete si vývojové prostředí pro Arduino a zkopírujte tento kód:


       #include <DS1307.h>
       #include <WProgram.h>
       #include <Wire.h>
       #include <LiquidCrystal.h>

       LiquidCrystal lcd(8, 9, 4, 5, 6, 7);        

       int rtc[7];

       void setup(){  
        lcd.begin(16, 2);
       }
       void loop(){
         RTC.get(rtc,true);
         char cas[9];
         sprintf(cas, "%02d:%02d:%02d", rtc[2],rtc[1],rtc[0]);
         lcd.clear();
         lcd.print(cas);
         delay(1000);
        }





Propojte podle těchto fotek.

Funkce setup() se spustí po spuštění programu, a v ní se deklaruje nastavení pinů, inicializace Ethernet Shieldu atd. a následně se zavolá funkce loop(). Funkce loop() se neustále opakuje.
#include <LiquidCrystal.h> inkluduje knihovnu LiquidCrystal. Pomocí LiquidCrystal lcd(8, 9, 4, 5, 6, 7) vybereme piny které chceme používat na LCD panelu. lcd.begin(16,2) spustí knihovnu.
Aby jsme mohli používat knihovnu DS1307, musíme ji nejprve stáhnout a poté přidat do adresáře knihoven. Stáhnete ji zde. RTC.get(rtc,true)  vloží čas z modulu do proměnné rtc. char cas[9] vytvoří pole znaků pro čas. sprintf(cas, "%02d:%02d:%02d", rtc[2],rtc[1],rtc[0]) zapíše čas z rtc do cas. lcd.clear() vyčistí display a lcd.print(cas) zobrazí čas.



GitHub: https://github.com/vaclavpavlicek/Arduino-Tutorial/tree/master/Lesson7_Real_time_clock

neděle 7. prosince 2014

Arduino Lesson 6 - Display and Buttons

V dnešní šestém tutoriálu pomocí tlačítek budeme přičítat a odečítat proměnnou a poté ji zobrazíme na displayi. Budeme potřebovat Arduino, display shield, dvě tlačítka a dva rezistory.

Otevřete si vývojové prostředí pro Arduino a zkopírujte tento kód:


        #include <LiquidCrystal.h>
        int buttonPlusPin = 2;
        int buttonMinusPin = 3;

        LiquidCrystal lcd(8, 9, 4, 5, 6, 7);        
        int buttonPlusState = 0;
        int buttonMinusState = 0;

        int number = 0;

        void setup() {
         lcd.begin(16, 2);
         lcd.print("0");
         pinMode(buttonPlusPin, INPUT);  
         pinMode(buttonMinusPin, INPUT);    
        }

        void loop(){
         buttonPlusState = digitalRead(buttonPlusPin);
         buttonMinusState = digitalRead(buttonMinusPin);
 
         if (buttonPlusState == HIGH) {  
                 lcd.clear();
                 number++;
                 lcd.print(number);
                 delay(500);
         }
         else {

         }

         if (buttonMinusState == HIGH) {  
                 lcd.clear();
                 number--;
                 lcd.print(number);
                 delay(500);
         }
         else {

         }

        }


Propojte podle následujícího schématu.

Funkce setup() se spustí po spuštění programu, a v ní se deklaruje nastavení pinů, inicializace Ethernet Shieldu atd. a následně se zavolá funkce loop(). Funkce loop() se neustále opakuje.
#include <LiquidCrystal.h> inkluduje knihovnu LiquidCrystal. Pomocí LiquidCrystal lcd(8, 9, 4, 5, 6, 7) vybereme piny které chceme používat na LCD panelu. lcd.begin(16,2) spustí knihovnu,
lcd.print("0") zobrazí na displayi 0. Řádek pinMode deklaruje že pin 2 a pin 3 bude výstup. Pomocí digitalRead zjisťujeme stav tlačítka jestli se rovná HIGH a nebo LOW. Když stiskneme tlačítko plus tak se proměnná buttonPlusState nastaví na HIGH. A když tlačítko plus není stisknuté, tak se buttonPlusState nastaví na LOW. Stejné je to i u tlačítka minus a u buttonMinusState. První podmínka if zjišťuje jestli je tlačítko plus stisknuté, když je tlačítko plus stisknuté, tak zvýší proměnnou number o 1 a poté ji pomocí lcd.print(number) zobrazí. Druhá podmínka if zjišťuje jestli je tlačítko minus, když je tlačítko minus stisknuté, tak sníží proměnnou number o 1. Příkaz lcd.clear() vyčístí display, a to doslova, kdyby tam tento příkaz nebyl, tak by se proměnná number zobrazovala vícekrát.



neděle 30. listopadu 2014

Arduino Lesson 5 - Display

V dnešní pátém tutoriálu si ukážeme display shield. Budeme potřebovat Arduino a display shield.

Otevřete si vývojové prostředí pro Arduino a zkopírujte tento kód:

        #include <LiquidCrystal.h>

        LiquidCrystal lcd(8, 9, 4, 5, 6, 7);           

        void setup(){
         lcd.begin(16, 2);             
         lcd.print("Hello!");
        }

        void loop(){
        }


Připojte display shield k Arduinu podle těchto fotek.

Funkce setup() se spustí po spuštění programu, a v ní se deklaruje nastavení pinů, inicializace Ethernet Shieldu atd. a následně se zavolá funkce loop(). Funkce loop() se neustále opakuje.
#include <LiquidCrystal.h> inkluduje knihovnu LiquidCrystal. Pomocí LiquidCrystal lcd(8, 9, 4, 5, 6, 7) vybereme piny které chceme používat na LCD panelu. lcd.begin(16,2) spustí knihovnu,
lcd.print("Hello!") zobrazí na displayi Hello!



pátek 21. listopadu 2014

Arduino Lesson 4 - Serial print

V dnešní čtvrtém tutoriálu si ukážeme sériový port. Budeme potřebovat jenom Arduino.

Otevřete si vývojové prostředí pro Arduino a zkopírujte tento kód:

        void setup() {

         Serial.begin(9600);

        }

        void loop() {

         Serial.println("Hello!");
         delay(1000);

        }

Funkce setup() se spustí po spuštění programu, a v ní se deklaruje nastavení pinů, inicializace Ethernet Shieldu atd. a následně se zavolá funkce loop(). Funkce loop() se neustále opakuje.
Serial.printl do sériového monitoru zobrazuje Hello!

Program pošlete do Arduina a otevřete si monitor sériového portu.


A každou sekundu se vám v něm zobrazí Hello!




GitHub: https://github.com/vaclavpavlicek/Arduino-Tutorial/tree/master/Lesson4_SerialPrint

sobota 8. listopadu 2014

Arduino Lesson 3 - Button

V dnešní třetím tutoriálu si ukážeme jak na zmáčknutí tlačítka zablikat LED diodou. Je to jednoduché potřebujete k tomu jenom Arduino, LED diodu, tlačítko a dva odpory.

Otevřete si vývojové prostředí pro Arduino a zkopírujte tento kód:

        int buttonPin = 2;
        int ledPin =  8;

        int buttonState = 0;

        void setup() {
         pinMode(ledPin, OUTPUT);    
         pinMode(buttonPin, INPUT);  
        }

        void loop(){
         buttonState = digitalRead(buttonPin);

         if (buttonState == HIGH) {  
          digitalWrite(ledPin, HIGH);
         }
         else {
          digitalWrite(ledPin, LOW);
         }
        }
Zapojte podle nákresu.

Funkce setup() se spustí po spuštění programu, a v ní se deklaruje nastavení pinů, inicializace Ethernet Shieldu atd. a následně se zavolá funkce loop(). Funkce loop() se neustále opakuje. Řádek pinMode deklaruje že pin 2 bude vstup a pin 8 bude výstup. Pomocí digitalRead zjisťujeme stav tlačítka jestli se rovná HIGH a nebo LOW. Když stiskneme tlačítko, tak se proměnná buttonState nastaví na HIGH. A když tlačítko není stisknuté tak se buttonState nastaví na LOW. Podmínka if zjišťuje jestli je tlačítko stisknuté, když je tlačítko stisknuté, tak rozsvítí LED diodu. Když tlačítko není stisknuté, tak LED dioda nebude svítit. 

neděle 2. listopadu 2014

Arduino Lesson 2 - Traffic light

V dnešní druhém tutoriálu si ukážeme jak udělat semafor pomocí Arduina a LED diody.

Otevřete si vývojové prostředí pro Arduino a zkopírujte tento kód:

        int redLed = 7;
        int yellowLed = 8;
        int greenLed = 9;

        void setup(){

          pinMode(redLed,OUTPUT);
          pinMode(yellowLed,OUTPUT);
          pinMode(greenLed,OUTPUT);  
 
        }

        void loop(){

          digitalWrite(redLed,HIGH);  
          delay(1000);
          digitalWrite(yellowLed,HIGH);  
          delay(500);
          digitalWrite(redLed,LOW);
          digitalWrite(yellowLed,HIGH);  
          delay(1000);
          digitalWrite(yellowLed,LOW);
          digitalWrite(greenLed,HIGH);
          delay(1000);
          digitalWrite(greenLed,LOW);

        }


Zapojte podle nákresu. Na nákresy je hodně dobrý program Fritzing.

Funkce setup() se spustí po spuštění programu, a v ní se deklaruje nastavení pinů, inicializace Ethernet Shieldu atd. a následně se zavolá funkce loop(). Funkce loop() se neustále opakuje.
Řádek pinMode deklaruje že piny 7,8,9  budou výstupy.Pomocí digitalWrite rozsvítíme LED diodu nebo naopak zhasneme.Příkaz delay program zastaví program. To znamená že příkaz delay(1000); zastaví program na jednu sekundu.



sobota 25. října 2014

Arduino Lesson 1 - Blink

V dnešní prvním tutoriálu si ukážeme jak zablikat LED diodou. Je to jednoduché potřebujete k tomu jenom Arduino a nic víc.

Otevřete si vývojové prostředí pro Arduino a zkopírujte tento kód:

        int led = 13;

        void setup(){

          pinMode(led,OUTPUT);
  
        }

        void loop(){

          digitalWrite(led,HIGH);
          delay(1000);
          digitalWrite(led,LOW);
          delay(1000);
  
        }

Funkce setup() se spustí po spuštění programu, a v ní se deklaruje nastavení pinů, inicializace Ethernet Shieldu atd. a následně se zavolá funkce loop(). Funkce loop() se neustále opakuje.
Řádek pinMode deklaruje že pin 13 bude výstup.Pomocí digitalWrite rozsvítíme LED diodu nebo naopak zhasneme.Příkaz delay program zastaví program. To znamená že příkaz delay(1000); zastaví program na jednu sekundu.