Arduino

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(www:)
Řádka 16: Řádka 16:
  
 
==Vývoj MIT aplikace s Arduino:==
 
==Vývoj MIT aplikace s Arduino:==
 +
 +
=== Co potřebujeme: ===
 +
 +
Varianta A:
 +
 +
<Gallery>
 +
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]
 +
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem]
 +
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod]
 +
Soubor:Arduino_SW.jpg|[http://arduino.cc/en/Main/Software SW Download]
 +
</Gallery>
 +
  
 
<source lang"C">
 
<source lang"C">
Řádka 156: Řádka 168:
  
 
{|
 
{|
 
 
|-
 
|-
 +
| [[Soubor:arduino_tutorial_series_jeremy_blum.jpg|100px]] [http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]
 +
|-
 +
 
| [[Soubor:arduino-blok.png|100px]] [http://arduino-blog.cz/?page_id=6 Arduino Blog]
 
| [[Soubor:arduino-blok.png|100px]] [http://arduino-blog.cz/?page_id=6 Arduino Blog]
 
|-
 
|-
Řádka 186: Řádka 200:
 
|-
 
|-
 
| [[Soubor:arduino_tutorial.jpg|100px]] [http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial]
 
| [[Soubor:arduino_tutorial.jpg|100px]] [http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial]
|-
 
| [[Soubor:arduino_KNP.jpg|100px]] [http://uart.cz/452/arduino-na-nepajivem-poli/ Arduino na nepájivém poli] [http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem]
 
 
|-
 
|-
  
Řádka 222: Řádka 234:
 
|-  
 
|-  
  
| [[Soubor:Prevodnik_arduino.jpg|100px]]
+
 
| [http://aukro.cz/listing/user.php?us_id=5586127 Převodník pro Arduino]
+
|-
+
  
 
|}
 
|}

Verze z 19. 5. 2012, 17:09

Arduino Duemilanove
SW
Arduino Uno

Arduino

  • Mikrokontrolér: ATmega168 / ATmega328
  • Takt procesoru: 16 MHz
  • Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)
  • 14 digitálních vstupně-výstupních pinů (z toho 6 s podporou PWM)
  • 6 analogových vstupů
  • Proudové zatížení I/O pinu: 40mA
  • Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader
  • SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)
  • EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)

Obsah

Vývoj MIT aplikace s Arduino:

Co potřebujeme:

Varianta A:


/*
* Blink
* http://www.arduino.cc/en/Tutorial/Blink
*/
 
int ledPin = 13;   // LED je připojena na pin 13
 
void setup() // tato část proběhne jednou po startu
{
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní
}
 
void loop()    // tato část probíhá stále dokola
{
digitalWrite(ledPin, HIGH);   // rozsvícení LED
delay(1000);                  // pauza 1s
digitalWrite(ledPin, LOW);    // zhasnutí LED
delay(1000);                  // pauza 1s
}

jednoduchá aplikace pro Arduino:

/*
* Robot Pepík - učebna D10
* Tento program zobrazuje čas, který uběhl od spuštění programu   
* - při každé 0té sekundě popojede dopředu   
* - při každé první sekundě se zastavý     
* - při každé desáté sekundě popojede zpět   
* - při každé jedenácté sekundě se zastavý      
*/   
 
// přiložení knihovny pro práci s LCD  
#include <LiquidCrystal.h>   
 
// inicializace LCD - nastavení používaných pinů 
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    
 
//inicializace portů DC Motorů  
int motor_left[] = {6, 7};   
// pole obsahující ovládací piny levého motoru  
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    
 
int i;  for(i = 0; i < 2; i++){
  pinMode(motor_left[i], OUTPUT);  
  pinMode(motor_right[i], OUTPUT);
  }     
 
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  
 
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    
lcd.print("Minuty:");  // vytiskne text na LCD    
 
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    
lcd.print("Sekundy:"); // vytiskne text na LCD    
}    
 
void loop() {  // tato funkce se neustále opakuje   
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže
    {  
    lcd.setCursor(10, 0);
    lcd.print("     ");
 
    lcd.setCursor(10, 1);
    lcd.print("     ");
 
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu
    }
 
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách
 
  if(sekundy==1)  // v první sekundě se motor vždy zastavý 
    {
    motor_stop();
    }
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu
    {
    drive_backward();
    }
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý
    {
    motor_stop();
    }
 
    lcd.setCursor(10, 1);
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách
    }
 
  void motor_stop(){       //zastaví DC motory
   digitalWrite(motor_left[0], LOW);
   digitalWrite(motor_left[1], LOW);
 
   digitalWrite(motor_right[0], LOW);
   digitalWrite(motor_right[1], LOW);
   delay(25);
   }    
 
  void drive_forward(){    //zapne DC motory směrem dopředu
   digitalWrite(motor_left[0], HIGH);
   digitalWrite(motor_left[1], LOW);
 
   digitalWrite(motor_right[0], HIGH);
   digitalWrite(motor_right[1], LOW);
   }
 
  void drive_backward(){    //zapne DC motory směrem vzad
   digitalWrite(motor_left[0], LOW);
   digitalWrite(motor_left[1], HIGH);
 
   digitalWrite(motor_right[0], LOW);
   digitalWrite(motor_right[1], HIGH);
   }
 
  void turn_left(){    //zapne DC motory a zatočí vlevo
   digitalWrite(motor_left[0], LOW);
   digitalWrite(motor_left[1], HIGH);
 
   digitalWrite(motor_right[0], HIGH);
   digitalWrite(motor_right[1], LOW);
   }
 
  void turn_right(){    //zapne DC motory a zatočí vpravo
   digitalWrite(motor_left[0], HIGH);
   digitalWrite(motor_left[1], LOW);
 
   digitalWrite(motor_right[0], LOW);
   digitalWrite(motor_right[1], HIGH);
   }

www:

Arduino tutorial series jeremy blum.jpg Arduino Tutorial Series by Jeremy Blum
Arduino-blok.png Arduino Blog
Arduino-josefnav.jpg Arduino Duemilanove
Blikani-LED.jpg Arduino: První program - blikání LED Arduino Examples #1
Arduino-LCD.png LCD displays HD44780
Arduino-L293.jpg Control your motors with L293D
Arduino-Knight-rider.jpg Arduino: Knight rider
Arduino-web-camera.jpg Arduinem ovládaná webkamera streamující video přes VLC #2
Arduino-a-LCD-s-S6A0069-radicem.png Arduino a LCD s S6A0069 řadičem
How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg How to Make LEDs Flash to Music with an Arduino
Arduino-distance-sensor-ping.jpg Arduino – Distance Sensor PING)))
Arduino-na-wiki.jpg Arduino
Cesky-arduino.jpg První český Arduino obchod
Arduino tutorial.jpg Arduino Tutorial
Arduino dc motor.jpg Control a DC motor with Arduino and L293D chip
Arduino MPX display.jpg Display the fan speed for the PC
Arduinocheatsheet.png download


Doplňky:

100px Arduino Robot Car Kits
Arduino deal.jpg Arduino Compatible Duemilanove
R8X Digital.jpg 8X Digital Tube + 8X Key + 8X Double Color LED Module
Propoj kabel.jpg Propojovací kablíky
Osobní nástroje
Jmenné prostory
Varianty
Akce
Rychlá navigace
NEJ aktivity
Nejlepší předměty
Nejlepší MCU
SW-HW
Ostatní
Utility
Nástroje
Tisk/export