<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>http://wiki.sps-pi.cz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dkalis</id>
	<title>MediaWiki SPŠ a VOŠ Písek - Příspěvky [cs]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.sps-pi.cz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dkalis"/>
	<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php/Speci%C3%A1ln%C3%AD:P%C5%99%C3%ADsp%C4%9Bvky/Dkalis"/>
	<updated>2026-05-03T16:41:17Z</updated>
	<subtitle>Příspěvky</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14918</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14918"/>
		<updated>2012-12-17T10:48:30Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: /* Arduino Compatible 8X Seven Segments Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
[[Soubor:Arduino-blik-01.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/* Blink * http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino-settings-LED.jpg|[http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard Setting up an Arduino on a breadboard]&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://old.pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-traffic-light.jpg|[http://fritzing.org/projects/traffic-light-with-stop-request/ TRAFFIC LIGHT WITH STOP REQUEST]&lt;br /&gt;
Soubor:Arduino-74HC164.jpg|[http://www.instructables.com/id/The-74HC164-Shift-Register-and-your-Arduino/?ALLSTEPS The 74HC164 Shift Register and your Arduino]&lt;br /&gt;
Soubor:Arduino-4094.jpg|[http://www.buildcircuit.com/decimal-to-binary-converter-using-cd4094-android-phone-and-bluesmirf/ Decimal To Binary Converter Using CD4094]&lt;br /&gt;
Soubor:Arduino-74HC595v3.jpg|[http://arduino.cc/en/Tutorial/ShiftOut Serial to Parallel Shifting-Out with a 74HC595]&lt;br /&gt;
Soubor:Arduino-74HC595.jpg|[http://fritzing.org/projects/nightrider-with-arduino-16-leds-and-two-74hc595/ KNIGHTRIDER WITH ARDUINO, 16 LEDS AND TWO 74HC595]&lt;br /&gt;
Soubor:Arduino-74HC595v2.jpg|[http://fritzing.org/projects/arduino-shift-register-larson-scanner/ ARDUINO SHIFT REGISTER LARSON SCANNER]&lt;br /&gt;
Soubor:Arduino-74HC595v4.jpg|[http://www.protostack.com/blog/2010/05/introduction-to-74hc595-shift-register-controlling-16-leds/ Introduction to 74HC595 shift register – Controlling 16 LEDs]&lt;br /&gt;
Soubor:Arduino-7SegmentLED2.jpg|[http://blog.bsoares.com.br/arduino/cpp-class-for-controlling-7-segments-led-display Classe C++ para controlar Display de 7 seguimentos]&lt;br /&gt;
Soubor:Arduino-7SegmentLED.jpg|[http://www.hacktronics.com/Tutorials/arduino-and-7-segment-led.html Arduino and 7 Segment LED]&lt;br /&gt;
Soubor:Arduino-4-Digit-7-Segment-LED.jpg|[http://www.instructables.com/id/4-Digit-7-Segment-LED-Display-Arduino/ 4-Digit 7-Segment LED Display + Arduino]&lt;br /&gt;
Soubor:Arduino-4511-dec.jpg|[http://nzlamb.wordpress.com/2010/01/30/simple-arduino-7-segment-display-example/ Simple Arduino 7 segment display example with 4511 LED decoder]&lt;br /&gt;
Soubor:Arduino-74HC595-Shift-Register.jpg|[http://www.sweeting.org/mark/blog/2011/11/27/arduino-74hc595-shift-register-and-a-7-segment-led-display 74HC595 Shift Register]&lt;br /&gt;
Soubor:Arduino-74HC595-Shift-Register_v3.jpg|[http://www.geeetech.com/wiki/index.php/Arduino_7_segment_LED_timer_with_74HC595_module LED timer with 74HC595] [[Arduino - 74HC595 2|Source]]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
Soubor:AVR-cube_8x8.jpg|AVR19 [http://www.instructables.com/id/Led-Cube-8x8x8/?ALLSTEPS Building] [http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html SW]&lt;br /&gt;
Soubor:nathan_arduino.jpg|[http://nathan.chantrell.net/arduino/ nathan.chantrell.net]&lt;br /&gt;
Soubor:matrix_arduino-AS1106.jpg|[http://arduinoexamples.wordpress.com/2012/11/05/dedicated-ic-to-control-7-segment-display-drivers-for-7-segment/ Popis][http://www.spezial.cz/news/as1106-8-mistny-seriove-rizeny-led-driver.html popis AS1106] [http://www.elsniwiki.de/index.php/Main/ArduinoLedMatrix Ansteuern einer 8x8 LED-Matrix mit dem Arduino]&lt;br /&gt;
Soubor:matrix_arduino.jpg|[http://www.pjrc.com/teensy/td_libs_Matrix.html Matrix &amp;amp; Sprite Libraries]&lt;br /&gt;
Soubor:matrix_LED_arduino.jpg|[http://www.instructables.com/id/Arduino-8x8-Matrix-LED-Game/?ALLSTEPS Arduino 8x8 Matrix LED Game]&lt;br /&gt;
Soubor:Arduino-RGB-LED-Controller.jpg|[http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/#more-1347 Arduino RGB LED Controller]&lt;br /&gt;
Soubor:Arduino-RFID-Door-Lock.jpg|[http://blog.tkjelectronics.dk/2011/04/arduino-rfid-door-lock/#cut-1 Arduino RFID Door Lock]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
&lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
Soubor:8-LED.jpg|[http://dx.com/p/8-led-red-light-strip-microcontroller-module-green-red-150330 8-LED CZ 70]&lt;br /&gt;
&lt;br /&gt;
Soubor:8-Segment_LED.jpg|[http://dx.com/p/8-segment-led-display-board-module-for-arduino-147814 8-Segment LED CZK 112]&lt;br /&gt;
&lt;br /&gt;
Soubor:8-Segment_LED2.jpg|[http://dx.com/p/8-segment-led-display-board-module-for-arduino-147814 8-Segment LED CZK 95]&lt;br /&gt;
&lt;br /&gt;
Soubor:dot-matrix-display.jpg|[http://dx.com/p/diy-max7219-dot-matrix-display-module-for-arduino-green-151840 Matrix display CZK 134]&lt;br /&gt;
&lt;br /&gt;
Soubor:PL2303HX.jpg|[http://dx.com/p/pl2303hx-usb-to-ttl-converter-module-149859%20PL2303HX%20USB%20to%20TTL%20Converter%20Module CZK 66]&lt;br /&gt;
&lt;br /&gt;
Soubor:ht1632c.jpg|[http://dx.com/p/jy-mcu-3208-lattice-clock-ht1632c-driver-with-mcu-support-secondary-development-104306 Clock HT1632C CZ 236]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Videa ==&lt;br /&gt;
&lt;br /&gt;
{{#widget:YouTube|id=o0GyeYBJ4QM|height=160|width=240|link=http://www.x-sim.de/forum/viewtopic.php?f=40&amp;amp;t=155}}&lt;br /&gt;
{{#widget:YouTube|id=azfPoXOmKog|height=160|width=240|link=http://www.buildcircuit.com/decimal-to-binary-converter-using-cd4094-android-phone-and-bluesmirf/}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]] [[Soubor:arduino fotka.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Příklad pro funkční modul&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
#include &amp;lt;InvertedTM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NO_MODULES  2&lt;br /&gt;
&lt;br /&gt;
// define a regular module and a inverted module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
InvertedTM1638 module2(3, 2, 5);&lt;br /&gt;
TM1638* modules[NO_MODULES] = {&lt;br /&gt;
  &amp;amp;module1,&lt;br /&gt;
  &amp;amp;module2&lt;br /&gt;
};&lt;br /&gt;
byte modes[NO_MODULES];&lt;br /&gt;
&lt;br /&gt;
unsigned long startTime;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  startTime = millis();&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    modules[i]-&amp;gt;setupDisplay(true, 7);&lt;br /&gt;
    modes[i] = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void update(TM1638* module, byte* mode) {&lt;br /&gt;
  byte buttons = module-&amp;gt;getButtons();&lt;br /&gt;
  unsigned long runningSecs = (millis() - startTime) / 1000;&lt;br /&gt;
  &lt;br /&gt;
  // button pressed - change mode&lt;br /&gt;
  if (buttons != 0) {&lt;br /&gt;
    *mode = buttons &amp;gt;&amp;gt; 1;&lt;br /&gt;
    module-&amp;gt;clearDisplay();&lt;br /&gt;
    module-&amp;gt;setLEDs(0);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  switch (*mode) {&lt;br /&gt;
    case 0:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 7);&lt;br /&gt;
      break;&lt;br /&gt;
    case 1:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 6, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 2:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 5);&lt;br /&gt;
      break;&lt;br /&gt;
    case 4:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 4, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 8:&lt;br /&gt;
      module-&amp;gt;setDisplayToBinNumber(runningSecs, 1 &amp;lt;&amp;lt; 3);&lt;br /&gt;
      break;&lt;br /&gt;
    case 16:&lt;br /&gt;
      module-&amp;gt;clearDisplayDigit((runningSecs - 1) % 8, 0);&lt;br /&gt;
      module-&amp;gt;setDisplayDigit(runningSecs % 8, runningSecs % 8, 0);&lt;br /&gt;
      break;&lt;br /&gt;
    case 32:&lt;br /&gt;
      char s[8];&lt;br /&gt;
      sprintf(s, &amp;quot;Secs %03d&amp;quot;, runningSecs % 999);&lt;br /&gt;
      module-&amp;gt;setDisplayToString(s);&lt;br /&gt;
      break;&lt;br /&gt;
    case 64:&lt;br /&gt;
      if (runningSecs % 2 == 0) {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;TM1638  &amp;quot;);&lt;br /&gt;
      } else {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;LIBRARY &amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      module-&amp;gt;setLED(0, (runningSecs - 1) % 8);&lt;br /&gt;
      module-&amp;gt;setLED(1 + runningSecs % 3, runningSecs % 8);&lt;br /&gt;
      break;&lt;br /&gt;
    case 65:&lt;br /&gt;
      module-&amp;gt;setDisplayToError();&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    update(modules[i], &amp;amp;modes[i]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Jednoduchý příklad pro jedno Arduino&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 3, clock pin 2 and strobe pin 4&lt;br /&gt;
TM1638 module(3, 2, 4);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Příklad pro pohybující se text&#039;&#039;&#039;- zde se bude psát SPS A VOS PISEK, nápis lze změnit jednoduchým přepsáním textu const char string, rychlost pohybu textu určuje delay&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MODULES 4&lt;br /&gt;
&lt;br /&gt;
// define a modules&lt;br /&gt;
TM1638 modules[] = {&lt;br /&gt;
	TM1638(3, 2, 4),&lt;br /&gt;
	TM1638(3, 2, 5),&lt;br /&gt;
	TM1638(8, 9, 5),&lt;br /&gt;
	TM1638(8, 9, 4)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const char string[] = &amp;quot;      SPS A VOS PISEK        &amp;quot;;&lt;br /&gt;
int base = 0;&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; MODULES; i++) {&lt;br /&gt;
    const char* pos = string + base + (i * 8);&lt;br /&gt;
&lt;br /&gt;
    if (pos &amp;gt;= string &amp;amp;&amp;amp; pos + 8 &amp;lt; string + sizeof(string)) {&lt;br /&gt;
      modules[i].setDisplayToString(pos);&lt;br /&gt;
    } else {&lt;br /&gt;
      modules[i].clearDisplay();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  base++;&lt;br /&gt;
&lt;br /&gt;
  if (base == sizeof(string) - 8) {&lt;br /&gt;
    base = -MODULES * 8;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(300);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Příklad pro dva Displaye&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;TM1638.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// hello segments for display&lt;br /&gt;
const byte hello[] = {&lt;br /&gt;
  0b00000000, 0b01110110, 0b01111001, 0b00111000, 0b00111000, 0b00111111, 0b00000000, 0b00000000&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// define the first module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
// to chain modules, use the same clk and data - just specify a different strobe pin&lt;br /&gt;
TM1638 module2(3, 2, 5);&lt;br /&gt;
&lt;br /&gt;
unsigned long value = 0L;&lt;br /&gt;
boolean state = true;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // display the hello segments on module 1&lt;br /&gt;
  module1.setDisplay(hello);	&lt;br /&gt;
  // display the hello segments on module 2&lt;br /&gt;
  module2.setDisplay(hello);	&lt;br /&gt;
&lt;br /&gt;
  // light the lower 5 red LEDs and the top 5 green LEDs&lt;br /&gt;
  module1.setLEDs(0b00011111 | 0b11111000 &amp;lt;&amp;lt; 8);&lt;br /&gt;
&lt;br /&gt;
  // light the 3rd red LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED, 3);&lt;br /&gt;
  // light the 5th green LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_GREEN, 5);&lt;br /&gt;
  // light the 7th red and green LEDs&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED | TM1638_COLOR_GREEN, 7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  byte key1, key2;&lt;br /&gt;
&lt;br /&gt;
  // read the buttons from the first module&lt;br /&gt;
  key1 = module1.getButtons();&lt;br /&gt;
  // read the buttons from the second module&lt;br /&gt;
  key2 = module2.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // both pressed&lt;br /&gt;
  if (key1 != 0 &amp;amp;&amp;amp; key2 != 0) {&lt;br /&gt;
    value = 0;&lt;br /&gt;
&lt;br /&gt;
	// set the display to 0 on both modules if they have buttons pressed simultaneously&lt;br /&gt;
    module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
    module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
  } else {&lt;br /&gt;
	// check the first module buttons&lt;br /&gt;
    if (key1 != 0) {&lt;br /&gt;
      // show the pressed buttons of the first module on its display&lt;br /&gt;
      module2.setDisplayToBinNumber(key1, 0);&lt;br /&gt;
      // and on the LEDs&lt;br /&gt;
      module1.setLEDs(key1);&lt;br /&gt;
&lt;br /&gt;
	  // check to see if it&#039;s the last button pressed&lt;br /&gt;
      if (key1 &amp;amp; 128) {&lt;br /&gt;
      	// toggle the display state on/off&lt;br /&gt;
        state = !state;&lt;br /&gt;
        delay(200); // just wait for button up&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
	  // set the intensity and display state&lt;br /&gt;
      module1.setupDisplay(state, key1 &amp;gt;&amp;gt; 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	// check the second module buttons&lt;br /&gt;
    if (key2 != 0) {&lt;br /&gt;
      // just add it to the display value&lt;br /&gt;
      value += key2;&lt;br /&gt;
&lt;br /&gt;
      // display it as an hexadecimal on the first module&lt;br /&gt;
      module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
      // and as a decimal on the second module&lt;br /&gt;
      module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
&lt;br /&gt;
	  // light the LEDs&lt;br /&gt;
      module2.setLEDs(key2 &amp;lt;&amp;lt; 8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14856</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14856"/>
		<updated>2012-12-10T11:25:23Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: /* Arduino Compatible 8X Seven Segments Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Blink&lt;br /&gt;
* http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
Soubor:AVR-cube_8x8.jpg|AVR19 [http://www.instructables.com/id/Led-Cube-8x8x8/?ALLSTEPS Building] [http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html SW]&lt;br /&gt;
Soubor:nathan_arduino.jpg|[http://nathan.chantrell.net/arduino/ nathan.chantrell.net]&lt;br /&gt;
Soubor:matrix_arduino.jpg|[http://www.pjrc.com/teensy/td_libs_Matrix.html Matrix &amp;amp; Sprite Libraries]&lt;br /&gt;
Soubor:matrix_LED_arduino.jpg|[http://www.instructables.com/id/Arduino-8x8-Matrix-LED-Game/?ALLSTEPS Arduino 8x8 Matrix LED Game]&lt;br /&gt;
Soubor:Arduino-RGB-LED-Controller.jpg|[http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/#more-1347 Arduino RGB LED Controller]&lt;br /&gt;
Soubor:Arduino-RFID-Door-Lock.jpg|[http://blog.tkjelectronics.dk/2011/04/arduino-rfid-door-lock/#cut-1 Arduino RFID Door Lock]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]] [[Soubor:arduino fotka.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Příklad pro funkční modul&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
#include &amp;lt;InvertedTM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NO_MODULES  2&lt;br /&gt;
&lt;br /&gt;
// define a regular module and a inverted module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
InvertedTM1638 module2(3, 2, 5);&lt;br /&gt;
TM1638* modules[NO_MODULES] = {&lt;br /&gt;
  &amp;amp;module1,&lt;br /&gt;
  &amp;amp;module2&lt;br /&gt;
};&lt;br /&gt;
byte modes[NO_MODULES];&lt;br /&gt;
&lt;br /&gt;
unsigned long startTime;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  startTime = millis();&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    modules[i]-&amp;gt;setupDisplay(true, 7);&lt;br /&gt;
    modes[i] = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void update(TM1638* module, byte* mode) {&lt;br /&gt;
  byte buttons = module-&amp;gt;getButtons();&lt;br /&gt;
  unsigned long runningSecs = (millis() - startTime) / 1000;&lt;br /&gt;
  &lt;br /&gt;
  // button pressed - change mode&lt;br /&gt;
  if (buttons != 0) {&lt;br /&gt;
    *mode = buttons &amp;gt;&amp;gt; 1;&lt;br /&gt;
    module-&amp;gt;clearDisplay();&lt;br /&gt;
    module-&amp;gt;setLEDs(0);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  switch (*mode) {&lt;br /&gt;
    case 0:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 7);&lt;br /&gt;
      break;&lt;br /&gt;
    case 1:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 6, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 2:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 5);&lt;br /&gt;
      break;&lt;br /&gt;
    case 4:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 4, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 8:&lt;br /&gt;
      module-&amp;gt;setDisplayToBinNumber(runningSecs, 1 &amp;lt;&amp;lt; 3);&lt;br /&gt;
      break;&lt;br /&gt;
    case 16:&lt;br /&gt;
      module-&amp;gt;clearDisplayDigit((runningSecs - 1) % 8, 0);&lt;br /&gt;
      module-&amp;gt;setDisplayDigit(runningSecs % 8, runningSecs % 8, 0);&lt;br /&gt;
      break;&lt;br /&gt;
    case 32:&lt;br /&gt;
      char s[8];&lt;br /&gt;
      sprintf(s, &amp;quot;Secs %03d&amp;quot;, runningSecs % 999);&lt;br /&gt;
      module-&amp;gt;setDisplayToString(s);&lt;br /&gt;
      break;&lt;br /&gt;
    case 64:&lt;br /&gt;
      if (runningSecs % 2 == 0) {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;TM1638  &amp;quot;);&lt;br /&gt;
      } else {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;LIBRARY &amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      module-&amp;gt;setLED(0, (runningSecs - 1) % 8);&lt;br /&gt;
      module-&amp;gt;setLED(1 + runningSecs % 3, runningSecs % 8);&lt;br /&gt;
      break;&lt;br /&gt;
    case 65:&lt;br /&gt;
      module-&amp;gt;setDisplayToError();&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    update(modules[i], &amp;amp;modes[i]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Jednoduchý příklad pro jedno Arduino&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 3, clock pin 2 and strobe pin 4&lt;br /&gt;
TM1638 module(3, 2, 4);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Příklad pro pohybující se text&#039;&#039;&#039;- zde se bude psát SPS A VOS PISEK, napís lze změnit jedoduchým přepsaním textu, rychlost pohybu textu určuje delay&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MODULES 4&lt;br /&gt;
&lt;br /&gt;
// define a modules&lt;br /&gt;
TM1638 modules[] = {&lt;br /&gt;
	TM1638(3, 2, 4),&lt;br /&gt;
	TM1638(3, 2, 5),&lt;br /&gt;
	TM1638(8, 9, 5),&lt;br /&gt;
	TM1638(8, 9, 4)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const char string[] = &amp;quot;      SPS A VOS PISEK        &amp;quot;;&lt;br /&gt;
int base = 0;&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; MODULES; i++) {&lt;br /&gt;
    const char* pos = string + base + (i * 8);&lt;br /&gt;
&lt;br /&gt;
    if (pos &amp;gt;= string &amp;amp;&amp;amp; pos + 8 &amp;lt; string + sizeof(string)) {&lt;br /&gt;
      modules[i].setDisplayToString(pos);&lt;br /&gt;
    } else {&lt;br /&gt;
      modules[i].clearDisplay();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  base++;&lt;br /&gt;
&lt;br /&gt;
  if (base == sizeof(string) - 8) {&lt;br /&gt;
    base = -MODULES * 8;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(300);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Příklad pro dva Displaye&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;TM1638.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// hello segments for display&lt;br /&gt;
const byte hello[] = {&lt;br /&gt;
  0b00000000, 0b01110110, 0b01111001, 0b00111000, 0b00111000, 0b00111111, 0b00000000, 0b00000000&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// define the first module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
// to chain modules, use the same clk and data - just specify a different strobe pin&lt;br /&gt;
TM1638 module2(3, 2, 5);&lt;br /&gt;
&lt;br /&gt;
unsigned long value = 0L;&lt;br /&gt;
boolean state = true;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // display the hello segments on module 1&lt;br /&gt;
  module1.setDisplay(hello);	&lt;br /&gt;
  // display the hello segments on module 2&lt;br /&gt;
  module2.setDisplay(hello);	&lt;br /&gt;
&lt;br /&gt;
  // light the lower 5 red LEDs and the top 5 green LEDs&lt;br /&gt;
  module1.setLEDs(0b00011111 | 0b11111000 &amp;lt;&amp;lt; 8);&lt;br /&gt;
&lt;br /&gt;
  // light the 3rd red LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED, 3);&lt;br /&gt;
  // light the 5th green LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_GREEN, 5);&lt;br /&gt;
  // light the 7th red and green LEDs&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED | TM1638_COLOR_GREEN, 7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  byte key1, key2;&lt;br /&gt;
&lt;br /&gt;
  // read the buttons from the first module&lt;br /&gt;
  key1 = module1.getButtons();&lt;br /&gt;
  // read the buttons from the second module&lt;br /&gt;
  key2 = module2.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // both pressed&lt;br /&gt;
  if (key1 != 0 &amp;amp;&amp;amp; key2 != 0) {&lt;br /&gt;
    value = 0;&lt;br /&gt;
&lt;br /&gt;
	// set the display to 0 on both modules if they have buttons pressed simultaneously&lt;br /&gt;
    module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
    module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
  } else {&lt;br /&gt;
	// check the first module buttons&lt;br /&gt;
    if (key1 != 0) {&lt;br /&gt;
      // show the pressed buttons of the first module on its display&lt;br /&gt;
      module2.setDisplayToBinNumber(key1, 0);&lt;br /&gt;
      // and on the LEDs&lt;br /&gt;
      module1.setLEDs(key1);&lt;br /&gt;
&lt;br /&gt;
	  // check to see if it&#039;s the last button pressed&lt;br /&gt;
      if (key1 &amp;amp; 128) {&lt;br /&gt;
      	// toggle the display state on/off&lt;br /&gt;
        state = !state;&lt;br /&gt;
        delay(200); // just wait for button up&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
	  // set the intensity and display state&lt;br /&gt;
      module1.setupDisplay(state, key1 &amp;gt;&amp;gt; 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	// check the second module buttons&lt;br /&gt;
    if (key2 != 0) {&lt;br /&gt;
      // just add it to the display value&lt;br /&gt;
      value += key2;&lt;br /&gt;
&lt;br /&gt;
      // display it as an hexadecimal on the first module&lt;br /&gt;
      module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
      // and as a decimal on the second module&lt;br /&gt;
      module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
&lt;br /&gt;
	  // light the LEDs&lt;br /&gt;
      module2.setLEDs(key2 &amp;lt;&amp;lt; 8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14855</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14855"/>
		<updated>2012-12-10T11:25:04Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: /* Arduino Compatible 8X Seven Segments Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Blink&lt;br /&gt;
* http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
Soubor:AVR-cube_8x8.jpg|AVR19 [http://www.instructables.com/id/Led-Cube-8x8x8/?ALLSTEPS Building] [http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html SW]&lt;br /&gt;
Soubor:nathan_arduino.jpg|[http://nathan.chantrell.net/arduino/ nathan.chantrell.net]&lt;br /&gt;
Soubor:matrix_arduino.jpg|[http://www.pjrc.com/teensy/td_libs_Matrix.html Matrix &amp;amp; Sprite Libraries]&lt;br /&gt;
Soubor:matrix_LED_arduino.jpg|[http://www.instructables.com/id/Arduino-8x8-Matrix-LED-Game/?ALLSTEPS Arduino 8x8 Matrix LED Game]&lt;br /&gt;
Soubor:Arduino-RGB-LED-Controller.jpg|[http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/#more-1347 Arduino RGB LED Controller]&lt;br /&gt;
Soubor:Arduino-RFID-Door-Lock.jpg|[http://blog.tkjelectronics.dk/2011/04/arduino-rfid-door-lock/#cut-1 Arduino RFID Door Lock]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]] [[Soubor:arduino fotka.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
&#039;&#039;&#039;Příklad pro funkční modul&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
#include &amp;lt;InvertedTM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NO_MODULES  2&lt;br /&gt;
&lt;br /&gt;
// define a regular module and a inverted module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
InvertedTM1638 module2(3, 2, 5);&lt;br /&gt;
TM1638* modules[NO_MODULES] = {&lt;br /&gt;
  &amp;amp;module1,&lt;br /&gt;
  &amp;amp;module2&lt;br /&gt;
};&lt;br /&gt;
byte modes[NO_MODULES];&lt;br /&gt;
&lt;br /&gt;
unsigned long startTime;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  startTime = millis();&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    modules[i]-&amp;gt;setupDisplay(true, 7);&lt;br /&gt;
    modes[i] = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void update(TM1638* module, byte* mode) {&lt;br /&gt;
  byte buttons = module-&amp;gt;getButtons();&lt;br /&gt;
  unsigned long runningSecs = (millis() - startTime) / 1000;&lt;br /&gt;
  &lt;br /&gt;
  // button pressed - change mode&lt;br /&gt;
  if (buttons != 0) {&lt;br /&gt;
    *mode = buttons &amp;gt;&amp;gt; 1;&lt;br /&gt;
    module-&amp;gt;clearDisplay();&lt;br /&gt;
    module-&amp;gt;setLEDs(0);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  switch (*mode) {&lt;br /&gt;
    case 0:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 7);&lt;br /&gt;
      break;&lt;br /&gt;
    case 1:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 6, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 2:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 5);&lt;br /&gt;
      break;&lt;br /&gt;
    case 4:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 4, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 8:&lt;br /&gt;
      module-&amp;gt;setDisplayToBinNumber(runningSecs, 1 &amp;lt;&amp;lt; 3);&lt;br /&gt;
      break;&lt;br /&gt;
    case 16:&lt;br /&gt;
      module-&amp;gt;clearDisplayDigit((runningSecs - 1) % 8, 0);&lt;br /&gt;
      module-&amp;gt;setDisplayDigit(runningSecs % 8, runningSecs % 8, 0);&lt;br /&gt;
      break;&lt;br /&gt;
    case 32:&lt;br /&gt;
      char s[8];&lt;br /&gt;
      sprintf(s, &amp;quot;Secs %03d&amp;quot;, runningSecs % 999);&lt;br /&gt;
      module-&amp;gt;setDisplayToString(s);&lt;br /&gt;
      break;&lt;br /&gt;
    case 64:&lt;br /&gt;
      if (runningSecs % 2 == 0) {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;TM1638  &amp;quot;);&lt;br /&gt;
      } else {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;LIBRARY &amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      module-&amp;gt;setLED(0, (runningSecs - 1) % 8);&lt;br /&gt;
      module-&amp;gt;setLED(1 + runningSecs % 3, runningSecs % 8);&lt;br /&gt;
      break;&lt;br /&gt;
    case 65:&lt;br /&gt;
      module-&amp;gt;setDisplayToError();&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    update(modules[i], &amp;amp;modes[i]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Jednoduchý příklad pro jedno Arduino&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 3, clock pin 2 and strobe pin 4&lt;br /&gt;
TM1638 module(3, 2, 4);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Příklad pro pohybující se text&#039;&#039;&#039;- zde se bude psát SPS A VOS PISEK, napís lze změnit jedoduchým přepsaním textu, rychlost pohybu textu určuje delay&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MODULES 4&lt;br /&gt;
&lt;br /&gt;
// define a modules&lt;br /&gt;
TM1638 modules[] = {&lt;br /&gt;
	TM1638(3, 2, 4),&lt;br /&gt;
	TM1638(3, 2, 5),&lt;br /&gt;
	TM1638(8, 9, 5),&lt;br /&gt;
	TM1638(8, 9, 4)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const char string[] = &amp;quot;      SPS A VOS PISEK        &amp;quot;;&lt;br /&gt;
int base = 0;&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; MODULES; i++) {&lt;br /&gt;
    const char* pos = string + base + (i * 8);&lt;br /&gt;
&lt;br /&gt;
    if (pos &amp;gt;= string &amp;amp;&amp;amp; pos + 8 &amp;lt; string + sizeof(string)) {&lt;br /&gt;
      modules[i].setDisplayToString(pos);&lt;br /&gt;
    } else {&lt;br /&gt;
      modules[i].clearDisplay();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  base++;&lt;br /&gt;
&lt;br /&gt;
  if (base == sizeof(string) - 8) {&lt;br /&gt;
    base = -MODULES * 8;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(300);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Příklad pro dva Displaye&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;TM1638.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// hello segments for display&lt;br /&gt;
const byte hello[] = {&lt;br /&gt;
  0b00000000, 0b01110110, 0b01111001, 0b00111000, 0b00111000, 0b00111111, 0b00000000, 0b00000000&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// define the first module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
// to chain modules, use the same clk and data - just specify a different strobe pin&lt;br /&gt;
TM1638 module2(3, 2, 5);&lt;br /&gt;
&lt;br /&gt;
unsigned long value = 0L;&lt;br /&gt;
boolean state = true;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // display the hello segments on module 1&lt;br /&gt;
  module1.setDisplay(hello);	&lt;br /&gt;
  // display the hello segments on module 2&lt;br /&gt;
  module2.setDisplay(hello);	&lt;br /&gt;
&lt;br /&gt;
  // light the lower 5 red LEDs and the top 5 green LEDs&lt;br /&gt;
  module1.setLEDs(0b00011111 | 0b11111000 &amp;lt;&amp;lt; 8);&lt;br /&gt;
&lt;br /&gt;
  // light the 3rd red LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED, 3);&lt;br /&gt;
  // light the 5th green LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_GREEN, 5);&lt;br /&gt;
  // light the 7th red and green LEDs&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED | TM1638_COLOR_GREEN, 7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  byte key1, key2;&lt;br /&gt;
&lt;br /&gt;
  // read the buttons from the first module&lt;br /&gt;
  key1 = module1.getButtons();&lt;br /&gt;
  // read the buttons from the second module&lt;br /&gt;
  key2 = module2.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // both pressed&lt;br /&gt;
  if (key1 != 0 &amp;amp;&amp;amp; key2 != 0) {&lt;br /&gt;
    value = 0;&lt;br /&gt;
&lt;br /&gt;
	// set the display to 0 on both modules if they have buttons pressed simultaneously&lt;br /&gt;
    module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
    module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
  } else {&lt;br /&gt;
	// check the first module buttons&lt;br /&gt;
    if (key1 != 0) {&lt;br /&gt;
      // show the pressed buttons of the first module on its display&lt;br /&gt;
      module2.setDisplayToBinNumber(key1, 0);&lt;br /&gt;
      // and on the LEDs&lt;br /&gt;
      module1.setLEDs(key1);&lt;br /&gt;
&lt;br /&gt;
	  // check to see if it&#039;s the last button pressed&lt;br /&gt;
      if (key1 &amp;amp; 128) {&lt;br /&gt;
      	// toggle the display state on/off&lt;br /&gt;
        state = !state;&lt;br /&gt;
        delay(200); // just wait for button up&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
	  // set the intensity and display state&lt;br /&gt;
      module1.setupDisplay(state, key1 &amp;gt;&amp;gt; 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	// check the second module buttons&lt;br /&gt;
    if (key2 != 0) {&lt;br /&gt;
      // just add it to the display value&lt;br /&gt;
      value += key2;&lt;br /&gt;
&lt;br /&gt;
      // display it as an hexadecimal on the first module&lt;br /&gt;
      module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
      // and as a decimal on the second module&lt;br /&gt;
      module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
&lt;br /&gt;
	  // light the LEDs&lt;br /&gt;
      module2.setLEDs(key2 &amp;lt;&amp;lt; 8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14854</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14854"/>
		<updated>2012-12-10T11:23:30Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: /* Arduino Compatible 8X Seven Segments Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Blink&lt;br /&gt;
* http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
Soubor:AVR-cube_8x8.jpg|AVR19 [http://www.instructables.com/id/Led-Cube-8x8x8/?ALLSTEPS Building] [http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html SW]&lt;br /&gt;
Soubor:nathan_arduino.jpg|[http://nathan.chantrell.net/arduino/ nathan.chantrell.net]&lt;br /&gt;
Soubor:matrix_arduino.jpg|[http://www.pjrc.com/teensy/td_libs_Matrix.html Matrix &amp;amp; Sprite Libraries]&lt;br /&gt;
Soubor:matrix_LED_arduino.jpg|[http://www.instructables.com/id/Arduino-8x8-Matrix-LED-Game/?ALLSTEPS Arduino 8x8 Matrix LED Game]&lt;br /&gt;
Soubor:Arduino-RGB-LED-Controller.jpg|[http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/#more-1347 Arduino RGB LED Controller]&lt;br /&gt;
Soubor:Arduino-RFID-Door-Lock.jpg|[http://blog.tkjelectronics.dk/2011/04/arduino-rfid-door-lock/#cut-1 Arduino RFID Door Lock]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]] [[Soubor:arduino fotka.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
Příklad pro funkční modul&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
#include &amp;lt;InvertedTM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NO_MODULES  2&lt;br /&gt;
&lt;br /&gt;
// define a regular module and a inverted module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
InvertedTM1638 module2(3, 2, 5);&lt;br /&gt;
TM1638* modules[NO_MODULES] = {&lt;br /&gt;
  &amp;amp;module1,&lt;br /&gt;
  &amp;amp;module2&lt;br /&gt;
};&lt;br /&gt;
byte modes[NO_MODULES];&lt;br /&gt;
&lt;br /&gt;
unsigned long startTime;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  startTime = millis();&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    modules[i]-&amp;gt;setupDisplay(true, 7);&lt;br /&gt;
    modes[i] = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void update(TM1638* module, byte* mode) {&lt;br /&gt;
  byte buttons = module-&amp;gt;getButtons();&lt;br /&gt;
  unsigned long runningSecs = (millis() - startTime) / 1000;&lt;br /&gt;
  &lt;br /&gt;
  // button pressed - change mode&lt;br /&gt;
  if (buttons != 0) {&lt;br /&gt;
    *mode = buttons &amp;gt;&amp;gt; 1;&lt;br /&gt;
    module-&amp;gt;clearDisplay();&lt;br /&gt;
    module-&amp;gt;setLEDs(0);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  switch (*mode) {&lt;br /&gt;
    case 0:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 7);&lt;br /&gt;
      break;&lt;br /&gt;
    case 1:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 6, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 2:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 5);&lt;br /&gt;
      break;&lt;br /&gt;
    case 4:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 4, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 8:&lt;br /&gt;
      module-&amp;gt;setDisplayToBinNumber(runningSecs, 1 &amp;lt;&amp;lt; 3);&lt;br /&gt;
      break;&lt;br /&gt;
    case 16:&lt;br /&gt;
      module-&amp;gt;clearDisplayDigit((runningSecs - 1) % 8, 0);&lt;br /&gt;
      module-&amp;gt;setDisplayDigit(runningSecs % 8, runningSecs % 8, 0);&lt;br /&gt;
      break;&lt;br /&gt;
    case 32:&lt;br /&gt;
      char s[8];&lt;br /&gt;
      sprintf(s, &amp;quot;Secs %03d&amp;quot;, runningSecs % 999);&lt;br /&gt;
      module-&amp;gt;setDisplayToString(s);&lt;br /&gt;
      break;&lt;br /&gt;
    case 64:&lt;br /&gt;
      if (runningSecs % 2 == 0) {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;TM1638  &amp;quot;);&lt;br /&gt;
      } else {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;LIBRARY &amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      module-&amp;gt;setLED(0, (runningSecs - 1) % 8);&lt;br /&gt;
      module-&amp;gt;setLED(1 + runningSecs % 3, runningSecs % 8);&lt;br /&gt;
      break;&lt;br /&gt;
    case 65:&lt;br /&gt;
      module-&amp;gt;setDisplayToError();&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    update(modules[i], &amp;amp;modes[i]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Jednoduchý příklad pro jedno Arduino&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 3, clock pin 2 and strobe pin 4&lt;br /&gt;
TM1638 module(3, 2, 4);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Příklad pro pohybující se text- zde se bude psát SPS A VOS PISEK, napís lze změnit jedoduchým přepsaním textu, rychlost pohybu textu určuje delay&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MODULES 4&lt;br /&gt;
&lt;br /&gt;
// define a modules&lt;br /&gt;
TM1638 modules[] = {&lt;br /&gt;
	TM1638(3, 2, 4),&lt;br /&gt;
	TM1638(3, 2, 5),&lt;br /&gt;
	TM1638(8, 9, 5),&lt;br /&gt;
	TM1638(8, 9, 4)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const char string[] = &amp;quot;      SPS A VOS PISEK        &amp;quot;;&lt;br /&gt;
int base = 0;&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; MODULES; i++) {&lt;br /&gt;
    const char* pos = string + base + (i * 8);&lt;br /&gt;
&lt;br /&gt;
    if (pos &amp;gt;= string &amp;amp;&amp;amp; pos + 8 &amp;lt; string + sizeof(string)) {&lt;br /&gt;
      modules[i].setDisplayToString(pos);&lt;br /&gt;
    } else {&lt;br /&gt;
      modules[i].clearDisplay();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  base++;&lt;br /&gt;
&lt;br /&gt;
  if (base == sizeof(string) - 8) {&lt;br /&gt;
    base = -MODULES * 8;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(300);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Příklad pro dva Displaye&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;TM1638.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// hello segments for display&lt;br /&gt;
const byte hello[] = {&lt;br /&gt;
  0b00000000, 0b01110110, 0b01111001, 0b00111000, 0b00111000, 0b00111111, 0b00000000, 0b00000000&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// define the first module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
// to chain modules, use the same clk and data - just specify a different strobe pin&lt;br /&gt;
TM1638 module2(3, 2, 5);&lt;br /&gt;
&lt;br /&gt;
unsigned long value = 0L;&lt;br /&gt;
boolean state = true;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // display the hello segments on module 1&lt;br /&gt;
  module1.setDisplay(hello);	&lt;br /&gt;
  // display the hello segments on module 2&lt;br /&gt;
  module2.setDisplay(hello);	&lt;br /&gt;
&lt;br /&gt;
  // light the lower 5 red LEDs and the top 5 green LEDs&lt;br /&gt;
  module1.setLEDs(0b00011111 | 0b11111000 &amp;lt;&amp;lt; 8);&lt;br /&gt;
&lt;br /&gt;
  // light the 3rd red LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED, 3);&lt;br /&gt;
  // light the 5th green LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_GREEN, 5);&lt;br /&gt;
  // light the 7th red and green LEDs&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED | TM1638_COLOR_GREEN, 7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  byte key1, key2;&lt;br /&gt;
&lt;br /&gt;
  // read the buttons from the first module&lt;br /&gt;
  key1 = module1.getButtons();&lt;br /&gt;
  // read the buttons from the second module&lt;br /&gt;
  key2 = module2.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // both pressed&lt;br /&gt;
  if (key1 != 0 &amp;amp;&amp;amp; key2 != 0) {&lt;br /&gt;
    value = 0;&lt;br /&gt;
&lt;br /&gt;
	// set the display to 0 on both modules if they have buttons pressed simultaneously&lt;br /&gt;
    module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
    module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
  } else {&lt;br /&gt;
	// check the first module buttons&lt;br /&gt;
    if (key1 != 0) {&lt;br /&gt;
      // show the pressed buttons of the first module on its display&lt;br /&gt;
      module2.setDisplayToBinNumber(key1, 0);&lt;br /&gt;
      // and on the LEDs&lt;br /&gt;
      module1.setLEDs(key1);&lt;br /&gt;
&lt;br /&gt;
	  // check to see if it&#039;s the last button pressed&lt;br /&gt;
      if (key1 &amp;amp; 128) {&lt;br /&gt;
      	// toggle the display state on/off&lt;br /&gt;
        state = !state;&lt;br /&gt;
        delay(200); // just wait for button up&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
	  // set the intensity and display state&lt;br /&gt;
      module1.setupDisplay(state, key1 &amp;gt;&amp;gt; 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	// check the second module buttons&lt;br /&gt;
    if (key2 != 0) {&lt;br /&gt;
      // just add it to the display value&lt;br /&gt;
      value += key2;&lt;br /&gt;
&lt;br /&gt;
      // display it as an hexadecimal on the first module&lt;br /&gt;
      module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
      // and as a decimal on the second module&lt;br /&gt;
      module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
&lt;br /&gt;
	  // light the LEDs&lt;br /&gt;
      module2.setLEDs(key2 &amp;lt;&amp;lt; 8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Soubor:Arduino_fotka.jpg&amp;diff=14853</id>
		<title>Soubor:Arduino fotka.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Soubor:Arduino_fotka.jpg&amp;diff=14853"/>
		<updated>2012-12-10T11:20:41Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14852</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14852"/>
		<updated>2012-12-10T11:05:01Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: /* Arduino Compatible 8X Seven Segments Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Blink&lt;br /&gt;
* http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
Soubor:AVR-cube_8x8.jpg|AVR19 [http://www.instructables.com/id/Led-Cube-8x8x8/?ALLSTEPS Building] [http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html SW]&lt;br /&gt;
Soubor:nathan_arduino.jpg|[http://nathan.chantrell.net/arduino/ nathan.chantrell.net]&lt;br /&gt;
Soubor:matrix_arduino.jpg|[http://www.pjrc.com/teensy/td_libs_Matrix.html Matrix &amp;amp; Sprite Libraries]&lt;br /&gt;
Soubor:matrix_LED_arduino.jpg|[http://www.instructables.com/id/Arduino-8x8-Matrix-LED-Game/?ALLSTEPS Arduino 8x8 Matrix LED Game]&lt;br /&gt;
Soubor:Arduino-RGB-LED-Controller.jpg|[http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/#more-1347 Arduino RGB LED Controller]&lt;br /&gt;
Soubor:Arduino-RFID-Door-Lock.jpg|[http://blog.tkjelectronics.dk/2011/04/arduino-rfid-door-lock/#cut-1 Arduino RFID Door Lock]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
Příklad pro funkční modul&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
#include &amp;lt;InvertedTM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NO_MODULES  2&lt;br /&gt;
&lt;br /&gt;
// define a regular module and a inverted module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
InvertedTM1638 module2(3, 2, 5);&lt;br /&gt;
TM1638* modules[NO_MODULES] = {&lt;br /&gt;
  &amp;amp;module1,&lt;br /&gt;
  &amp;amp;module2&lt;br /&gt;
};&lt;br /&gt;
byte modes[NO_MODULES];&lt;br /&gt;
&lt;br /&gt;
unsigned long startTime;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  startTime = millis();&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    modules[i]-&amp;gt;setupDisplay(true, 7);&lt;br /&gt;
    modes[i] = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void update(TM1638* module, byte* mode) {&lt;br /&gt;
  byte buttons = module-&amp;gt;getButtons();&lt;br /&gt;
  unsigned long runningSecs = (millis() - startTime) / 1000;&lt;br /&gt;
  &lt;br /&gt;
  // button pressed - change mode&lt;br /&gt;
  if (buttons != 0) {&lt;br /&gt;
    *mode = buttons &amp;gt;&amp;gt; 1;&lt;br /&gt;
    module-&amp;gt;clearDisplay();&lt;br /&gt;
    module-&amp;gt;setLEDs(0);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  switch (*mode) {&lt;br /&gt;
    case 0:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 7);&lt;br /&gt;
      break;&lt;br /&gt;
    case 1:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 6, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 2:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 5);&lt;br /&gt;
      break;&lt;br /&gt;
    case 4:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 4, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 8:&lt;br /&gt;
      module-&amp;gt;setDisplayToBinNumber(runningSecs, 1 &amp;lt;&amp;lt; 3);&lt;br /&gt;
      break;&lt;br /&gt;
    case 16:&lt;br /&gt;
      module-&amp;gt;clearDisplayDigit((runningSecs - 1) % 8, 0);&lt;br /&gt;
      module-&amp;gt;setDisplayDigit(runningSecs % 8, runningSecs % 8, 0);&lt;br /&gt;
      break;&lt;br /&gt;
    case 32:&lt;br /&gt;
      char s[8];&lt;br /&gt;
      sprintf(s, &amp;quot;Secs %03d&amp;quot;, runningSecs % 999);&lt;br /&gt;
      module-&amp;gt;setDisplayToString(s);&lt;br /&gt;
      break;&lt;br /&gt;
    case 64:&lt;br /&gt;
      if (runningSecs % 2 == 0) {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;TM1638  &amp;quot;);&lt;br /&gt;
      } else {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;LIBRARY &amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      module-&amp;gt;setLED(0, (runningSecs - 1) % 8);&lt;br /&gt;
      module-&amp;gt;setLED(1 + runningSecs % 3, runningSecs % 8);&lt;br /&gt;
      break;&lt;br /&gt;
    case 65:&lt;br /&gt;
      module-&amp;gt;setDisplayToError();&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    update(modules[i], &amp;amp;modes[i]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Jednoduchý příklad pro jedno Arduino&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 3, clock pin 2 and strobe pin 4&lt;br /&gt;
TM1638 module(3, 2, 4);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Příklad pro pohybující se text- zde se bude psát SPS A VOS PISEK, napís lze změnit jedoduchým přepsaním textu, rychlost pohybu textu určuje delay&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MODULES 4&lt;br /&gt;
&lt;br /&gt;
// define a modules&lt;br /&gt;
TM1638 modules[] = {&lt;br /&gt;
	TM1638(3, 2, 4),&lt;br /&gt;
	TM1638(3, 2, 5),&lt;br /&gt;
	TM1638(8, 9, 5),&lt;br /&gt;
	TM1638(8, 9, 4)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const char string[] = &amp;quot;      SPS A VOS PISEK        &amp;quot;;&lt;br /&gt;
int base = 0;&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; MODULES; i++) {&lt;br /&gt;
    const char* pos = string + base + (i * 8);&lt;br /&gt;
&lt;br /&gt;
    if (pos &amp;gt;= string &amp;amp;&amp;amp; pos + 8 &amp;lt; string + sizeof(string)) {&lt;br /&gt;
      modules[i].setDisplayToString(pos);&lt;br /&gt;
    } else {&lt;br /&gt;
      modules[i].clearDisplay();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  base++;&lt;br /&gt;
&lt;br /&gt;
  if (base == sizeof(string) - 8) {&lt;br /&gt;
    base = -MODULES * 8;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(300);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Příklad pro dva Displaye&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;TM1638.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// hello segments for display&lt;br /&gt;
const byte hello[] = {&lt;br /&gt;
  0b00000000, 0b01110110, 0b01111001, 0b00111000, 0b00111000, 0b00111111, 0b00000000, 0b00000000&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// define the first module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
// to chain modules, use the same clk and data - just specify a different strobe pin&lt;br /&gt;
TM1638 module2(3, 2, 5);&lt;br /&gt;
&lt;br /&gt;
unsigned long value = 0L;&lt;br /&gt;
boolean state = true;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // display the hello segments on module 1&lt;br /&gt;
  module1.setDisplay(hello);	&lt;br /&gt;
  // display the hello segments on module 2&lt;br /&gt;
  module2.setDisplay(hello);	&lt;br /&gt;
&lt;br /&gt;
  // light the lower 5 red LEDs and the top 5 green LEDs&lt;br /&gt;
  module1.setLEDs(0b00011111 | 0b11111000 &amp;lt;&amp;lt; 8);&lt;br /&gt;
&lt;br /&gt;
  // light the 3rd red LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED, 3);&lt;br /&gt;
  // light the 5th green LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_GREEN, 5);&lt;br /&gt;
  // light the 7th red and green LEDs&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED | TM1638_COLOR_GREEN, 7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  byte key1, key2;&lt;br /&gt;
&lt;br /&gt;
  // read the buttons from the first module&lt;br /&gt;
  key1 = module1.getButtons();&lt;br /&gt;
  // read the buttons from the second module&lt;br /&gt;
  key2 = module2.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // both pressed&lt;br /&gt;
  if (key1 != 0 &amp;amp;&amp;amp; key2 != 0) {&lt;br /&gt;
    value = 0;&lt;br /&gt;
&lt;br /&gt;
	// set the display to 0 on both modules if they have buttons pressed simultaneously&lt;br /&gt;
    module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
    module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
  } else {&lt;br /&gt;
	// check the first module buttons&lt;br /&gt;
    if (key1 != 0) {&lt;br /&gt;
      // show the pressed buttons of the first module on its display&lt;br /&gt;
      module2.setDisplayToBinNumber(key1, 0);&lt;br /&gt;
      // and on the LEDs&lt;br /&gt;
      module1.setLEDs(key1);&lt;br /&gt;
&lt;br /&gt;
	  // check to see if it&#039;s the last button pressed&lt;br /&gt;
      if (key1 &amp;amp; 128) {&lt;br /&gt;
      	// toggle the display state on/off&lt;br /&gt;
        state = !state;&lt;br /&gt;
        delay(200); // just wait for button up&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
	  // set the intensity and display state&lt;br /&gt;
      module1.setupDisplay(state, key1 &amp;gt;&amp;gt; 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	// check the second module buttons&lt;br /&gt;
    if (key2 != 0) {&lt;br /&gt;
      // just add it to the display value&lt;br /&gt;
      value += key2;&lt;br /&gt;
&lt;br /&gt;
      // display it as an hexadecimal on the first module&lt;br /&gt;
      module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
      // and as a decimal on the second module&lt;br /&gt;
      module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
&lt;br /&gt;
	  // light the LEDs&lt;br /&gt;
      module2.setLEDs(key2 &amp;lt;&amp;lt; 8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14851</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14851"/>
		<updated>2012-12-10T11:01:54Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: /* Arduino Compatible 8X Seven Segments Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Blink&lt;br /&gt;
* http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
Soubor:AVR-cube_8x8.jpg|AVR19 [http://www.instructables.com/id/Led-Cube-8x8x8/?ALLSTEPS Building] [http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html SW]&lt;br /&gt;
Soubor:nathan_arduino.jpg|[http://nathan.chantrell.net/arduino/ nathan.chantrell.net]&lt;br /&gt;
Soubor:matrix_arduino.jpg|[http://www.pjrc.com/teensy/td_libs_Matrix.html Matrix &amp;amp; Sprite Libraries]&lt;br /&gt;
Soubor:matrix_LED_arduino.jpg|[http://www.instructables.com/id/Arduino-8x8-Matrix-LED-Game/?ALLSTEPS Arduino 8x8 Matrix LED Game]&lt;br /&gt;
Soubor:Arduino-RGB-LED-Controller.jpg|[http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/#more-1347 Arduino RGB LED Controller]&lt;br /&gt;
Soubor:Arduino-RFID-Door-Lock.jpg|[http://blog.tkjelectronics.dk/2011/04/arduino-rfid-door-lock/#cut-1 Arduino RFID Door Lock]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
#include &amp;lt;InvertedTM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NO_MODULES  2&lt;br /&gt;
&lt;br /&gt;
// define a regular module and a inverted module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
InvertedTM1638 module2(3, 2, 5);&lt;br /&gt;
TM1638* modules[NO_MODULES] = {&lt;br /&gt;
  &amp;amp;module1,&lt;br /&gt;
  &amp;amp;module2&lt;br /&gt;
};&lt;br /&gt;
byte modes[NO_MODULES];&lt;br /&gt;
&lt;br /&gt;
unsigned long startTime;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  startTime = millis();&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    modules[i]-&amp;gt;setupDisplay(true, 7);&lt;br /&gt;
    modes[i] = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void update(TM1638* module, byte* mode) {&lt;br /&gt;
  byte buttons = module-&amp;gt;getButtons();&lt;br /&gt;
  unsigned long runningSecs = (millis() - startTime) / 1000;&lt;br /&gt;
  &lt;br /&gt;
  // button pressed - change mode&lt;br /&gt;
  if (buttons != 0) {&lt;br /&gt;
    *mode = buttons &amp;gt;&amp;gt; 1;&lt;br /&gt;
    module-&amp;gt;clearDisplay();&lt;br /&gt;
    module-&amp;gt;setLEDs(0);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  switch (*mode) {&lt;br /&gt;
    case 0:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 7);&lt;br /&gt;
      break;&lt;br /&gt;
    case 1:&lt;br /&gt;
      module-&amp;gt;setDisplayToDecNumber(runningSecs, 1 &amp;lt;&amp;lt; 6, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 2:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 5);&lt;br /&gt;
      break;&lt;br /&gt;
    case 4:&lt;br /&gt;
      module-&amp;gt;setDisplayToHexNumber(runningSecs, 1 &amp;lt;&amp;lt; 4, false);&lt;br /&gt;
      break;&lt;br /&gt;
    case 8:&lt;br /&gt;
      module-&amp;gt;setDisplayToBinNumber(runningSecs, 1 &amp;lt;&amp;lt; 3);&lt;br /&gt;
      break;&lt;br /&gt;
    case 16:&lt;br /&gt;
      module-&amp;gt;clearDisplayDigit((runningSecs - 1) % 8, 0);&lt;br /&gt;
      module-&amp;gt;setDisplayDigit(runningSecs % 8, runningSecs % 8, 0);&lt;br /&gt;
      break;&lt;br /&gt;
    case 32:&lt;br /&gt;
      char s[8];&lt;br /&gt;
      sprintf(s, &amp;quot;Secs %03d&amp;quot;, runningSecs % 999);&lt;br /&gt;
      module-&amp;gt;setDisplayToString(s);&lt;br /&gt;
      break;&lt;br /&gt;
    case 64:&lt;br /&gt;
      if (runningSecs % 2 == 0) {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;TM1638  &amp;quot;);&lt;br /&gt;
      } else {&lt;br /&gt;
        module-&amp;gt;setDisplayToString(&amp;quot;LIBRARY &amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      module-&amp;gt;setLED(0, (runningSecs - 1) % 8);&lt;br /&gt;
      module-&amp;gt;setLED(1 + runningSecs % 3, runningSecs % 8);&lt;br /&gt;
      break;&lt;br /&gt;
    case 65:&lt;br /&gt;
      module-&amp;gt;setDisplayToError();&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; NO_MODULES; i++) {&lt;br /&gt;
    update(modules[i], &amp;amp;modes[i]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Jednoduchý příklad pro jedno Arduino&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 3, clock pin 2 and strobe pin 4&lt;br /&gt;
TM1638 module(3, 2, 4);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Příklad pro pohybující se text- zde se bude psát SPS A VOS PISEK, napís lze změnit jedoduchým přepsaním textu, rychlost pohybu textu určuje delay&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MODULES 4&lt;br /&gt;
&lt;br /&gt;
// define a modules&lt;br /&gt;
TM1638 modules[] = {&lt;br /&gt;
	TM1638(3, 2, 4),&lt;br /&gt;
	TM1638(3, 2, 5),&lt;br /&gt;
	TM1638(8, 9, 5),&lt;br /&gt;
	TM1638(8, 9, 4)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const char string[] = &amp;quot;      SPS A VOS PISEK        &amp;quot;;&lt;br /&gt;
int base = 0;&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; MODULES; i++) {&lt;br /&gt;
    const char* pos = string + base + (i * 8);&lt;br /&gt;
&lt;br /&gt;
    if (pos &amp;gt;= string &amp;amp;&amp;amp; pos + 8 &amp;lt; string + sizeof(string)) {&lt;br /&gt;
      modules[i].setDisplayToString(pos);&lt;br /&gt;
    } else {&lt;br /&gt;
      modules[i].clearDisplay();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  base++;&lt;br /&gt;
&lt;br /&gt;
  if (base == sizeof(string) - 8) {&lt;br /&gt;
    base = -MODULES * 8;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(300);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Příklad pro dva Displaye&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;TM1638.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// hello segments for display&lt;br /&gt;
const byte hello[] = {&lt;br /&gt;
  0b00000000, 0b01110110, 0b01111001, 0b00111000, 0b00111000, 0b00111111, 0b00000000, 0b00000000&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// define the first module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
// to chain modules, use the same clk and data - just specify a different strobe pin&lt;br /&gt;
TM1638 module2(3, 2, 5);&lt;br /&gt;
&lt;br /&gt;
unsigned long value = 0L;&lt;br /&gt;
boolean state = true;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // display the hello segments on module 1&lt;br /&gt;
  module1.setDisplay(hello);	&lt;br /&gt;
  // display the hello segments on module 2&lt;br /&gt;
  module2.setDisplay(hello);	&lt;br /&gt;
&lt;br /&gt;
  // light the lower 5 red LEDs and the top 5 green LEDs&lt;br /&gt;
  module1.setLEDs(0b00011111 | 0b11111000 &amp;lt;&amp;lt; 8);&lt;br /&gt;
&lt;br /&gt;
  // light the 3rd red LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED, 3);&lt;br /&gt;
  // light the 5th green LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_GREEN, 5);&lt;br /&gt;
  // light the 7th red and green LEDs&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED | TM1638_COLOR_GREEN, 7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  byte key1, key2;&lt;br /&gt;
&lt;br /&gt;
  // read the buttons from the first module&lt;br /&gt;
  key1 = module1.getButtons();&lt;br /&gt;
  // read the buttons from the second module&lt;br /&gt;
  key2 = module2.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // both pressed&lt;br /&gt;
  if (key1 != 0 &amp;amp;&amp;amp; key2 != 0) {&lt;br /&gt;
    value = 0;&lt;br /&gt;
&lt;br /&gt;
	// set the display to 0 on both modules if they have buttons pressed simultaneously&lt;br /&gt;
    module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
    module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
  } else {&lt;br /&gt;
	// check the first module buttons&lt;br /&gt;
    if (key1 != 0) {&lt;br /&gt;
      // show the pressed buttons of the first module on its display&lt;br /&gt;
      module2.setDisplayToBinNumber(key1, 0);&lt;br /&gt;
      // and on the LEDs&lt;br /&gt;
      module1.setLEDs(key1);&lt;br /&gt;
&lt;br /&gt;
	  // check to see if it&#039;s the last button pressed&lt;br /&gt;
      if (key1 &amp;amp; 128) {&lt;br /&gt;
      	// toggle the display state on/off&lt;br /&gt;
        state = !state;&lt;br /&gt;
        delay(200); // just wait for button up&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
	  // set the intensity and display state&lt;br /&gt;
      module1.setupDisplay(state, key1 &amp;gt;&amp;gt; 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	// check the second module buttons&lt;br /&gt;
    if (key2 != 0) {&lt;br /&gt;
      // just add it to the display value&lt;br /&gt;
      value += key2;&lt;br /&gt;
&lt;br /&gt;
      // display it as an hexadecimal on the first module&lt;br /&gt;
      module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
      // and as a decimal on the second module&lt;br /&gt;
      module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
&lt;br /&gt;
	  // light the LEDs&lt;br /&gt;
      module2.setLEDs(key2 &amp;lt;&amp;lt; 8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14850</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14850"/>
		<updated>2012-12-10T10:46:26Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: /* Arduino Compatible 8X Seven Segments Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Blink&lt;br /&gt;
* http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
Soubor:AVR-cube_8x8.jpg|AVR19 [http://www.instructables.com/id/Led-Cube-8x8x8/?ALLSTEPS Building] [http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html SW]&lt;br /&gt;
Soubor:nathan_arduino.jpg|[http://nathan.chantrell.net/arduino/ nathan.chantrell.net]&lt;br /&gt;
Soubor:matrix_arduino.jpg|[http://www.pjrc.com/teensy/td_libs_Matrix.html Matrix &amp;amp; Sprite Libraries]&lt;br /&gt;
Soubor:matrix_LED_arduino.jpg|[http://www.instructables.com/id/Arduino-8x8-Matrix-LED-Game/?ALLSTEPS Arduino 8x8 Matrix LED Game]&lt;br /&gt;
Soubor:Arduino-RGB-LED-Controller.jpg|[http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/#more-1347 Arduino RGB LED Controller]&lt;br /&gt;
Soubor:Arduino-RFID-Door-Lock.jpg|[http://blog.tkjelectronics.dk/2011/04/arduino-rfid-door-lock/#cut-1 Arduino RFID Door Lock]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
&lt;br /&gt;
Jednoduchý příklad pro jedno Arduino&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 3, clock pin 2 and strobe pin 4&lt;br /&gt;
TM1638 module(3, 2, 4);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Příklad pro pohybující se text- zde se bude psát SPS A VOS PISEK, napís lze změnit jedoduchým přepsaním textu, rychlost pohybu textu určuje delay&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MODULES 4&lt;br /&gt;
&lt;br /&gt;
// define a modules&lt;br /&gt;
TM1638 modules[] = {&lt;br /&gt;
	TM1638(3, 2, 4),&lt;br /&gt;
	TM1638(3, 2, 5),&lt;br /&gt;
	TM1638(8, 9, 5),&lt;br /&gt;
	TM1638(8, 9, 4)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const char string[] = &amp;quot;      SPS A VOS PISEK        &amp;quot;;&lt;br /&gt;
int base = 0;&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; MODULES; i++) {&lt;br /&gt;
    const char* pos = string + base + (i * 8);&lt;br /&gt;
&lt;br /&gt;
    if (pos &amp;gt;= string &amp;amp;&amp;amp; pos + 8 &amp;lt; string + sizeof(string)) {&lt;br /&gt;
      modules[i].setDisplayToString(pos);&lt;br /&gt;
    } else {&lt;br /&gt;
      modules[i].clearDisplay();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  base++;&lt;br /&gt;
&lt;br /&gt;
  if (base == sizeof(string) - 8) {&lt;br /&gt;
    base = -MODULES * 8;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(300);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Příklad pro dva Displaye&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;TM1638.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// hello segments for display&lt;br /&gt;
const byte hello[] = {&lt;br /&gt;
  0b00000000, 0b01110110, 0b01111001, 0b00111000, 0b00111000, 0b00111111, 0b00000000, 0b00000000&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// define the first module&lt;br /&gt;
TM1638 module1(3, 2, 4);&lt;br /&gt;
// to chain modules, use the same clk and data - just specify a different strobe pin&lt;br /&gt;
TM1638 module2(3, 2, 5);&lt;br /&gt;
&lt;br /&gt;
unsigned long value = 0L;&lt;br /&gt;
boolean state = true;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // display the hello segments on module 1&lt;br /&gt;
  module1.setDisplay(hello);	&lt;br /&gt;
  // display the hello segments on module 2&lt;br /&gt;
  module2.setDisplay(hello);	&lt;br /&gt;
&lt;br /&gt;
  // light the lower 5 red LEDs and the top 5 green LEDs&lt;br /&gt;
  module1.setLEDs(0b00011111 | 0b11111000 &amp;lt;&amp;lt; 8);&lt;br /&gt;
&lt;br /&gt;
  // light the 3rd red LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED, 3);&lt;br /&gt;
  // light the 5th green LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_GREEN, 5);&lt;br /&gt;
  // light the 7th red and green LEDs&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED | TM1638_COLOR_GREEN, 7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  byte key1, key2;&lt;br /&gt;
&lt;br /&gt;
  // read the buttons from the first module&lt;br /&gt;
  key1 = module1.getButtons();&lt;br /&gt;
  // read the buttons from the second module&lt;br /&gt;
  key2 = module2.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // both pressed&lt;br /&gt;
  if (key1 != 0 &amp;amp;&amp;amp; key2 != 0) {&lt;br /&gt;
    value = 0;&lt;br /&gt;
&lt;br /&gt;
	// set the display to 0 on both modules if they have buttons pressed simultaneously&lt;br /&gt;
    module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
    module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
  } else {&lt;br /&gt;
	// check the first module buttons&lt;br /&gt;
    if (key1 != 0) {&lt;br /&gt;
      // show the pressed buttons of the first module on its display&lt;br /&gt;
      module2.setDisplayToBinNumber(key1, 0);&lt;br /&gt;
      // and on the LEDs&lt;br /&gt;
      module1.setLEDs(key1);&lt;br /&gt;
&lt;br /&gt;
	  // check to see if it&#039;s the last button pressed&lt;br /&gt;
      if (key1 &amp;amp; 128) {&lt;br /&gt;
      	// toggle the display state on/off&lt;br /&gt;
        state = !state;&lt;br /&gt;
        delay(200); // just wait for button up&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
	  // set the intensity and display state&lt;br /&gt;
      module1.setupDisplay(state, key1 &amp;gt;&amp;gt; 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	// check the second module buttons&lt;br /&gt;
    if (key2 != 0) {&lt;br /&gt;
      // just add it to the display value&lt;br /&gt;
      value += key2;&lt;br /&gt;
&lt;br /&gt;
      // display it as an hexadecimal on the first module&lt;br /&gt;
      module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
      // and as a decimal on the second module&lt;br /&gt;
      module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
&lt;br /&gt;
	  // light the LEDs&lt;br /&gt;
      module2.setLEDs(key2 &amp;lt;&amp;lt; 8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14849</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14849"/>
		<updated>2012-12-10T10:44:23Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: /* Arduino Compatible 8X Seven Segments Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Blink&lt;br /&gt;
* http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
Soubor:AVR-cube_8x8.jpg|AVR19 [http://www.instructables.com/id/Led-Cube-8x8x8/?ALLSTEPS Building] [http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html SW]&lt;br /&gt;
Soubor:nathan_arduino.jpg|[http://nathan.chantrell.net/arduino/ nathan.chantrell.net]&lt;br /&gt;
Soubor:matrix_arduino.jpg|[http://www.pjrc.com/teensy/td_libs_Matrix.html Matrix &amp;amp; Sprite Libraries]&lt;br /&gt;
Soubor:matrix_LED_arduino.jpg|[http://www.instructables.com/id/Arduino-8x8-Matrix-LED-Game/?ALLSTEPS Arduino 8x8 Matrix LED Game]&lt;br /&gt;
Soubor:Arduino-RGB-LED-Controller.jpg|[http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/#more-1347 Arduino RGB LED Controller]&lt;br /&gt;
Soubor:Arduino-RFID-Door-Lock.jpg|[http://blog.tkjelectronics.dk/2011/04/arduino-rfid-door-lock/#cut-1 Arduino RFID Door Lock]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
&lt;br /&gt;
Jednoduchý příklad pro jedno Arduino&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 3, clock pin 2 and strobe pin 4&lt;br /&gt;
TM1638 module(3, 2, 4);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Příklad pro pohybující se text- zde se bude psát SPS A VOS PISEK, napís lze změnit jedoduchým přepsaním textu, rychlost pohybu textu určuje delay&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MODULES 4&lt;br /&gt;
&lt;br /&gt;
// define a modules&lt;br /&gt;
TM1638 modules[] = {&lt;br /&gt;
	TM1638(3, 2, 4),&lt;br /&gt;
	TM1638(3, 2, 5),&lt;br /&gt;
	TM1638(8, 9, 5),&lt;br /&gt;
	TM1638(8, 9, 4)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const char string[] = &amp;quot;      SPS A VOS PISEK        &amp;quot;;&lt;br /&gt;
int base = 0;&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; MODULES; i++) {&lt;br /&gt;
    const char* pos = string + base + (i * 8);&lt;br /&gt;
&lt;br /&gt;
    if (pos &amp;gt;= string &amp;amp;&amp;amp; pos + 8 &amp;lt; string + sizeof(string)) {&lt;br /&gt;
      modules[i].setDisplayToString(pos);&lt;br /&gt;
    } else {&lt;br /&gt;
      modules[i].clearDisplay();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  base++;&lt;br /&gt;
&lt;br /&gt;
  if (base == sizeof(string) - 8) {&lt;br /&gt;
    base = -MODULES * 8;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(300);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Příklad pro dva Displaye&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;TM1638.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// hello segments for display&lt;br /&gt;
const byte hello[] = {&lt;br /&gt;
  0b00000000, 0b01110110, 0b01111001, 0b00111000, 0b00111000, 0b00111111, 0b00000000, 0b00000000&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// define the first module&lt;br /&gt;
TM1638 module1(8, 9, 7);&lt;br /&gt;
// to chain modules, use the same clk and data - just specify a different strobe pin&lt;br /&gt;
TM1638 module2(8, 9, 6);&lt;br /&gt;
&lt;br /&gt;
unsigned long value = 0L;&lt;br /&gt;
boolean state = true;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // display the hello segments on module 1&lt;br /&gt;
  module1.setDisplay(hello);	&lt;br /&gt;
  // display the hello segments on module 2&lt;br /&gt;
  module2.setDisplay(hello);	&lt;br /&gt;
&lt;br /&gt;
  // light the lower 5 red LEDs and the top 5 green LEDs&lt;br /&gt;
  module1.setLEDs(0b00011111 | 0b11111000 &amp;lt;&amp;lt; 8);&lt;br /&gt;
&lt;br /&gt;
  // light the 3rd red LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED, 3);&lt;br /&gt;
  // light the 5th green LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_GREEN, 5);&lt;br /&gt;
  // light the 7th red and green LEDs&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED | TM1638_COLOR_GREEN, 7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  byte key1, key2;&lt;br /&gt;
&lt;br /&gt;
  // read the buttons from the first module&lt;br /&gt;
  key1 = module1.getButtons();&lt;br /&gt;
  // read the buttons from the second module&lt;br /&gt;
  key2 = module2.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // both pressed&lt;br /&gt;
  if (key1 != 0 &amp;amp;&amp;amp; key2 != 0) {&lt;br /&gt;
    value = 0;&lt;br /&gt;
&lt;br /&gt;
	// set the display to 0 on both modules if they have buttons pressed simultaneously&lt;br /&gt;
    module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
    module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
  } else {&lt;br /&gt;
	// check the first module buttons&lt;br /&gt;
    if (key1 != 0) {&lt;br /&gt;
      // show the pressed buttons of the first module on its display&lt;br /&gt;
      module2.setDisplayToBinNumber(key1, 0);&lt;br /&gt;
      // and on the LEDs&lt;br /&gt;
      module1.setLEDs(key1);&lt;br /&gt;
&lt;br /&gt;
	  // check to see if it&#039;s the last button pressed&lt;br /&gt;
      if (key1 &amp;amp; 128) {&lt;br /&gt;
      	// toggle the display state on/off&lt;br /&gt;
        state = !state;&lt;br /&gt;
        delay(200); // just wait for button up&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
	  // set the intensity and display state&lt;br /&gt;
      module1.setupDisplay(state, key1 &amp;gt;&amp;gt; 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	// check the second module buttons&lt;br /&gt;
    if (key2 != 0) {&lt;br /&gt;
      // just add it to the display value&lt;br /&gt;
      value += key2;&lt;br /&gt;
&lt;br /&gt;
      // display it as an hexadecimal on the first module&lt;br /&gt;
      module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
      // and as a decimal on the second module&lt;br /&gt;
      module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
&lt;br /&gt;
	  // light the LEDs&lt;br /&gt;
      module2.setLEDs(key2 &amp;lt;&amp;lt; 8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14848</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14848"/>
		<updated>2012-12-10T10:42:35Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: /* Arduino Compatible 8X Seven Segments Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Blink&lt;br /&gt;
* http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
Soubor:AVR-cube_8x8.jpg|AVR19 [http://www.instructables.com/id/Led-Cube-8x8x8/?ALLSTEPS Building] [http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html SW]&lt;br /&gt;
Soubor:nathan_arduino.jpg|[http://nathan.chantrell.net/arduino/ nathan.chantrell.net]&lt;br /&gt;
Soubor:matrix_arduino.jpg|[http://www.pjrc.com/teensy/td_libs_Matrix.html Matrix &amp;amp; Sprite Libraries]&lt;br /&gt;
Soubor:matrix_LED_arduino.jpg|[http://www.instructables.com/id/Arduino-8x8-Matrix-LED-Game/?ALLSTEPS Arduino 8x8 Matrix LED Game]&lt;br /&gt;
Soubor:Arduino-RGB-LED-Controller.jpg|[http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/#more-1347 Arduino RGB LED Controller]&lt;br /&gt;
Soubor:Arduino-RFID-Door-Lock.jpg|[http://blog.tkjelectronics.dk/2011/04/arduino-rfid-door-lock/#cut-1 Arduino RFID Door Lock]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
&lt;br /&gt;
Jednoduchý příklad pro jedno Arduino&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 8, clock pin 9 and strobe pin 7&lt;br /&gt;
TM1638 module(8, 9, 7);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Příklad pro pohybující se text- zde se bude psát SPS A VOS PISEK, napís lze změnit jedoduchým přepsaním textu, rychlost pohybu textu určuje delay&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MODULES 4&lt;br /&gt;
&lt;br /&gt;
// define a modules&lt;br /&gt;
TM1638 modules[] = {&lt;br /&gt;
	TM1638(3, 2, 4),&lt;br /&gt;
	TM1638(3, 2, 5),&lt;br /&gt;
	TM1638(8, 9, 5),&lt;br /&gt;
	TM1638(8, 9, 4)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const char string[] = &amp;quot;      SPS A VOS PISEK        &amp;quot;;&lt;br /&gt;
int base = 0;&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; MODULES; i++) {&lt;br /&gt;
    const char* pos = string + base + (i * 8);&lt;br /&gt;
&lt;br /&gt;
    if (pos &amp;gt;= string &amp;amp;&amp;amp; pos + 8 &amp;lt; string + sizeof(string)) {&lt;br /&gt;
      modules[i].setDisplayToString(pos);&lt;br /&gt;
    } else {&lt;br /&gt;
      modules[i].clearDisplay();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  base++;&lt;br /&gt;
&lt;br /&gt;
  if (base == sizeof(string) - 8) {&lt;br /&gt;
    base = -MODULES * 8;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(300);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Příklad pro dva Displaye&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;TM1638.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// hello segments for display&lt;br /&gt;
const byte hello[] = {&lt;br /&gt;
  0b00000000, 0b01110110, 0b01111001, 0b00111000, 0b00111000, 0b00111111, 0b00000000, 0b00000000&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// define the first module&lt;br /&gt;
TM1638 module1(8, 9, 7);&lt;br /&gt;
// to chain modules, use the same clk and data - just specify a different strobe pin&lt;br /&gt;
TM1638 module2(8, 9, 6);&lt;br /&gt;
&lt;br /&gt;
unsigned long value = 0L;&lt;br /&gt;
boolean state = true;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // display the hello segments on module 1&lt;br /&gt;
  module1.setDisplay(hello);	&lt;br /&gt;
  // display the hello segments on module 2&lt;br /&gt;
  module2.setDisplay(hello);	&lt;br /&gt;
&lt;br /&gt;
  // light the lower 5 red LEDs and the top 5 green LEDs&lt;br /&gt;
  module1.setLEDs(0b00011111 | 0b11111000 &amp;lt;&amp;lt; 8);&lt;br /&gt;
&lt;br /&gt;
  // light the 3rd red LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED, 3);&lt;br /&gt;
  // light the 5th green LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_GREEN, 5);&lt;br /&gt;
  // light the 7th red and green LEDs&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED | TM1638_COLOR_GREEN, 7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  byte key1, key2;&lt;br /&gt;
&lt;br /&gt;
  // read the buttons from the first module&lt;br /&gt;
  key1 = module1.getButtons();&lt;br /&gt;
  // read the buttons from the second module&lt;br /&gt;
  key2 = module2.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // both pressed&lt;br /&gt;
  if (key1 != 0 &amp;amp;&amp;amp; key2 != 0) {&lt;br /&gt;
    value = 0;&lt;br /&gt;
&lt;br /&gt;
	// set the display to 0 on both modules if they have buttons pressed simultaneously&lt;br /&gt;
    module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
    module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
  } else {&lt;br /&gt;
	// check the first module buttons&lt;br /&gt;
    if (key1 != 0) {&lt;br /&gt;
      // show the pressed buttons of the first module on its display&lt;br /&gt;
      module2.setDisplayToBinNumber(key1, 0);&lt;br /&gt;
      // and on the LEDs&lt;br /&gt;
      module1.setLEDs(key1);&lt;br /&gt;
&lt;br /&gt;
	  // check to see if it&#039;s the last button pressed&lt;br /&gt;
      if (key1 &amp;amp; 128) {&lt;br /&gt;
      	// toggle the display state on/off&lt;br /&gt;
        state = !state;&lt;br /&gt;
        delay(200); // just wait for button up&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
	  // set the intensity and display state&lt;br /&gt;
      module1.setupDisplay(state, key1 &amp;gt;&amp;gt; 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	// check the second module buttons&lt;br /&gt;
    if (key2 != 0) {&lt;br /&gt;
      // just add it to the display value&lt;br /&gt;
      value += key2;&lt;br /&gt;
&lt;br /&gt;
      // display it as an hexadecimal on the first module&lt;br /&gt;
      module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
      // and as a decimal on the second module&lt;br /&gt;
      module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
&lt;br /&gt;
	  // light the LEDs&lt;br /&gt;
      module2.setLEDs(key2 &amp;lt;&amp;lt; 8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14847</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14847"/>
		<updated>2012-12-10T10:40:47Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: /* Arduino Compatible 8X Seven Segments Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Blink&lt;br /&gt;
* http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
Soubor:AVR-cube_8x8.jpg|AVR19 [http://www.instructables.com/id/Led-Cube-8x8x8/?ALLSTEPS Building] [http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html SW]&lt;br /&gt;
Soubor:nathan_arduino.jpg|[http://nathan.chantrell.net/arduino/ nathan.chantrell.net]&lt;br /&gt;
Soubor:matrix_arduino.jpg|[http://www.pjrc.com/teensy/td_libs_Matrix.html Matrix &amp;amp; Sprite Libraries]&lt;br /&gt;
Soubor:matrix_LED_arduino.jpg|[http://www.instructables.com/id/Arduino-8x8-Matrix-LED-Game/?ALLSTEPS Arduino 8x8 Matrix LED Game]&lt;br /&gt;
Soubor:Arduino-RGB-LED-Controller.jpg|[http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/#more-1347 Arduino RGB LED Controller]&lt;br /&gt;
Soubor:Arduino-RFID-Door-Lock.jpg|[http://blog.tkjelectronics.dk/2011/04/arduino-rfid-door-lock/#cut-1 Arduino RFID Door Lock]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
&lt;br /&gt;
Jednoduchý příklad pro jedno Arduino&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 8, clock pin 9 and strobe pin 7&lt;br /&gt;
TM1638 module(8, 9, 7);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Příklad pro pohybující se text- zde se bude psát SPS A VOS PISEK, napís lze změnit jedoduchým přepsaním textu&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MODULES 4&lt;br /&gt;
&lt;br /&gt;
// define a modules&lt;br /&gt;
TM1638 modules[] = {&lt;br /&gt;
	TM1638(3, 2, 4),&lt;br /&gt;
	TM1638(3, 2, 5),&lt;br /&gt;
	TM1638(8, 9, 5),&lt;br /&gt;
	TM1638(8, 9, 4)&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const char string[] = &amp;quot;      SPS A VOS PISEK        &amp;quot;;&lt;br /&gt;
int base = 0;&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; MODULES; i++) {&lt;br /&gt;
    const char* pos = string + base + (i * 8);&lt;br /&gt;
&lt;br /&gt;
    if (pos &amp;gt;= string &amp;amp;&amp;amp; pos + 8 &amp;lt; string + sizeof(string)) {&lt;br /&gt;
      modules[i].setDisplayToString(pos);&lt;br /&gt;
    } else {&lt;br /&gt;
      modules[i].clearDisplay();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  base++;&lt;br /&gt;
&lt;br /&gt;
  if (base == sizeof(string) - 8) {&lt;br /&gt;
    base = -MODULES * 8;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(300);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Příklad pro dva Displaye&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;TM1638.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// hello segments for display&lt;br /&gt;
const byte hello[] = {&lt;br /&gt;
  0b00000000, 0b01110110, 0b01111001, 0b00111000, 0b00111000, 0b00111111, 0b00000000, 0b00000000&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// define the first module&lt;br /&gt;
TM1638 module1(8, 9, 7);&lt;br /&gt;
// to chain modules, use the same clk and data - just specify a different strobe pin&lt;br /&gt;
TM1638 module2(8, 9, 6);&lt;br /&gt;
&lt;br /&gt;
unsigned long value = 0L;&lt;br /&gt;
boolean state = true;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // display the hello segments on module 1&lt;br /&gt;
  module1.setDisplay(hello);	&lt;br /&gt;
  // display the hello segments on module 2&lt;br /&gt;
  module2.setDisplay(hello);	&lt;br /&gt;
&lt;br /&gt;
  // light the lower 5 red LEDs and the top 5 green LEDs&lt;br /&gt;
  module1.setLEDs(0b00011111 | 0b11111000 &amp;lt;&amp;lt; 8);&lt;br /&gt;
&lt;br /&gt;
  // light the 3rd red LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED, 3);&lt;br /&gt;
  // light the 5th green LED&lt;br /&gt;
  module2.setLED(TM1638_COLOR_GREEN, 5);&lt;br /&gt;
  // light the 7th red and green LEDs&lt;br /&gt;
  module2.setLED(TM1638_COLOR_RED | TM1638_COLOR_GREEN, 7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  byte key1, key2;&lt;br /&gt;
&lt;br /&gt;
  // read the buttons from the first module&lt;br /&gt;
  key1 = module1.getButtons();&lt;br /&gt;
  // read the buttons from the second module&lt;br /&gt;
  key2 = module2.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // both pressed&lt;br /&gt;
  if (key1 != 0 &amp;amp;&amp;amp; key2 != 0) {&lt;br /&gt;
    value = 0;&lt;br /&gt;
&lt;br /&gt;
	// set the display to 0 on both modules if they have buttons pressed simultaneously&lt;br /&gt;
    module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
    module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
  } else {&lt;br /&gt;
	// check the first module buttons&lt;br /&gt;
    if (key1 != 0) {&lt;br /&gt;
      // show the pressed buttons of the first module on its display&lt;br /&gt;
      module2.setDisplayToBinNumber(key1, 0);&lt;br /&gt;
      // and on the LEDs&lt;br /&gt;
      module1.setLEDs(key1);&lt;br /&gt;
&lt;br /&gt;
	  // check to see if it&#039;s the last button pressed&lt;br /&gt;
      if (key1 &amp;amp; 128) {&lt;br /&gt;
      	// toggle the display state on/off&lt;br /&gt;
        state = !state;&lt;br /&gt;
        delay(200); // just wait for button up&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
	  // set the intensity and display state&lt;br /&gt;
      module1.setupDisplay(state, key1 &amp;gt;&amp;gt; 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	// check the second module buttons&lt;br /&gt;
    if (key2 != 0) {&lt;br /&gt;
      // just add it to the display value&lt;br /&gt;
      value += key2;&lt;br /&gt;
&lt;br /&gt;
      // display it as an hexadecimal on the first module&lt;br /&gt;
      module1.setDisplayToHexNumber(value, 0b10101010);&lt;br /&gt;
      // and as a decimal on the second module&lt;br /&gt;
      module2.setDisplayToDecNumber(value, 0b01010101);&lt;br /&gt;
&lt;br /&gt;
	  // light the LEDs&lt;br /&gt;
      module2.setLEDs(key2 &amp;lt;&amp;lt; 8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14688</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Arduino&amp;diff=14688"/>
		<updated>2012-11-19T11:26:48Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]]&lt;br /&gt;
[[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino &lt;br /&gt;
&lt;br /&gt;
* Mikrokontrolér: ATmega168 / ATmega328&lt;br /&gt;
* Takt procesoru: 16 MHz&lt;br /&gt;
* Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)&lt;br /&gt;
* 14 digitálních vstupně-výstupních pinů  (z toho 6 s podporou PWM)&lt;br /&gt;
* 6 analogových vstupů&lt;br /&gt;
* Proudové zatížení I/O pinu: 40mA&lt;br /&gt;
* Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader&lt;br /&gt;
* SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)&lt;br /&gt;
* EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)&lt;br /&gt;
&lt;br /&gt;
==Vývoj MIT aplikace s Arduino:==&lt;br /&gt;
&lt;br /&gt;
=== Jaký HW potřebujeme: ===&lt;br /&gt;
&lt;br /&gt;
Varianta A:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Prevodnik_arduino.jpg|[http://aukro.cz/listing.php/search?sg=0&amp;amp;string=p%C5%99evodn%C3%ADk+%2B+arduino Převodník pro Arduino]&lt;br /&gt;
Soubor:arduino_ATmega328P.jpg|[http://cz.farnell.com/arduino/a000048/mcu-atmega328-w-uno-bootloader/dp/1848694 ATMega328P s bootloaderem] nebo nově na [http://www.gme.cz/znacka/arduino/ GME.cz]&lt;br /&gt;
Soubor:arduino_KNP.jpg|[http://uart.cz/452/arduino-na-nepajivem-poli/ Návod] &lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varianta B:&lt;br /&gt;
&amp;lt;Gallery&amp;gt;&lt;br /&gt;
Soubor:Arduino_deal_ext.jpg|[http://www.dealextreme.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078?item=25 Arduino Compatible Duemilanove] &lt;br /&gt;
Soubor:R8X_Digital.jpg|[http://www.dealextreme.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873?item=20 8X Digital Tube + 8X Key + 8X Double Color LED Module] &lt;br /&gt;
Soubor:lcd-keypad-shield-for-arduino.jpg|[http://www.dealextreme.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059?item=12 LCD Keypad Shield] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Blink&lt;br /&gt;
* http://www.arduino.cc/en/Tutorial/Blink&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int ledPin = 13;   // LED je připojena na pin 13&lt;br /&gt;
&lt;br /&gt;
void setup() // tato část proběhne jednou po startu&lt;br /&gt;
{&lt;br /&gt;
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()    // tato část probíhá stále dokola&lt;br /&gt;
{&lt;br /&gt;
digitalWrite(ledPin, HIGH);   // rozsvícení LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
digitalWrite(ledPin, LOW);    // zhasnutí LED&lt;br /&gt;
delay(1000);                  // pauza 1s&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriály: ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:arduino_tutorial_series_jeremy_blum.jpg|[http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum]&lt;br /&gt;
Soubor:arduino_tutorial.jpg|[http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step]&lt;br /&gt;
Soubor:arduino-blok.png|[http://arduino-blog.cz/?page_id=6 Arduino Blog]&lt;br /&gt;
Soubor:Arduino-c.jpg|[http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)]&lt;br /&gt;
Soubor:Arduino-root-cz.jpg|[http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz]&lt;br /&gt;
Soubor:Arduino-na-wiki.jpg|[http://cs.wikipedia.org/wiki/Arduino Arduino na wiki]&lt;br /&gt;
Soubor:arduino-josefnav.jpg|[http://www.josefnav.cz/Arduino.html Popis od Josefa NAV]&lt;br /&gt;
Soubor:arduinocheatsheet.png|[http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aplikace:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Soubor:blikani-LED.jpg|[http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1]&lt;br /&gt;
Soubor:Arduino-Knight-rider.jpg|[http://pavel-novak.net/clanky/arduino-knight-rider.html Knight rider]&lt;br /&gt;
Soubor:Arduino-TM1638-LED-Display.jpg|[http://tronixstuff.wordpress.com/2012/03/11/arduino-and-tm1638-led-display-modules/ TM1638 LED Display Modules] [http://www.martinhubacek.cz/atmel/tm1638-driver MH]&lt;br /&gt;
Soubor:Arduino-buzzer.jpg|[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS Buzzer]&lt;br /&gt;
Soubor:Arduino-L293.jpg|[http://letsmakerobots.com/node/2074 Control your motors with L293D]&lt;br /&gt;
Soubor:arduino_dc_motor.jpg|[http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip]&lt;br /&gt;
Soubor:Arduino-LCD.png|[http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780]&lt;br /&gt;
Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|[http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem]&lt;br /&gt;
Soubor:Arduino-web-camera.jpg|[http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2]&lt;br /&gt;
Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|[http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino]&lt;br /&gt;
Soubor:arduino-distance-sensor-ping.jpg|[http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))]&lt;br /&gt;
Soubor:arduino_MPX_display.jpg|[http://translate.google.co.jp/translate?js=y&amp;amp;prev=_t&amp;amp;hl=ja&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://arms22.blog91.fc2.com/blog-entry-365.html&amp;amp;sl=ja&amp;amp;tl=en&amp;amp;swap=1 Display the fan speed for the PC] &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Doplňky:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] &lt;br /&gt;
Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buzzer:=== &lt;br /&gt;
&lt;br /&gt;
[http://www.instructables.com/id/Play-the-French-Can-Can-Using-an-Arduino-and-Buzze/?ALLSTEPS source]&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Buzzer example function for the CEM-1203 buzzer (Sparkfun&#039;s part #COM-07950).&lt;br /&gt;
// by Rob Faludi&lt;br /&gt;
// http://www.faludi.com&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(4, OUTPUT); // set a pin for buzzer output&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  buzz(4, 2500, 500); // buzz the buzzer on pin 4 at 2500Hz for 1000 milliseconds&lt;br /&gt;
  delay(1000); // wait a bit between buzzes&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void buzz(int targetPin, long frequency, long length) {&lt;br /&gt;
  long delayValue = 1000000/frequency/2; // calculate the delay value between transitions&lt;br /&gt;
  //// 1 second&#039;s worth of microseconds, divided by the frequency, then split in half since&lt;br /&gt;
  //// there are two phases to each cycle&lt;br /&gt;
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing&lt;br /&gt;
  //// multiply frequency, which is really cycles per second, by the number of seconds to &lt;br /&gt;
  //// get the total number of cycles to produce&lt;br /&gt;
 for (long i=0; i &amp;lt; numCycles; i++){ // for the calculated length of time...&lt;br /&gt;
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait for the calculated delay value&lt;br /&gt;
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram&lt;br /&gt;
    delayMicroseconds(delayValue); // wait againf or the calculated delay value&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jednoduchá aplikace pro Arduino:===&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Robot Pepík - učebna D10&lt;br /&gt;
* Tento program zobrazuje čas, který uběhl od spuštění programu   &lt;br /&gt;
* - při každé 0té sekundě popojede dopředu   &lt;br /&gt;
* - při každé první sekundě se zastaví     &lt;br /&gt;
* - při každé desáté sekundě popojede zpět   &lt;br /&gt;
* - při každé jedenácté sekundě se zastaví      &lt;br /&gt;
*/   &lt;br /&gt;
&lt;br /&gt;
// přiložení knihovny pro práci s LCD  &lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
// inicializace LCD - nastavení používaných pinů &lt;br /&gt;
LiquidCrystal lcd(11, 9, 5, 4, 3, 2);    &lt;br /&gt;
&lt;br /&gt;
//inicializace portů DC Motorů  &lt;br /&gt;
int motor_left[] = {6, 7};   &lt;br /&gt;
// pole obsahující ovládací piny levého motoru  &lt;br /&gt;
int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru   void setup() {   //DC motory - počáteční nastavení    &lt;br /&gt;
&lt;br /&gt;
int i;  for(i = 0; i &amp;lt; 2; i++){&lt;br /&gt;
  pinMode(motor_left[i], OUTPUT);  &lt;br /&gt;
  pinMode(motor_right[i], OUTPUT);&lt;br /&gt;
  }     &lt;br /&gt;
&lt;br /&gt;
lcd.begin(16, 2);   // nastavení rozsahu LCD monitoru  &lt;br /&gt;
    &lt;br /&gt;
lcd.setCursor(0, 0);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Minuty:&amp;quot;);  // vytiskne text na LCD    &lt;br /&gt;
&lt;br /&gt;
lcd.setCursor(0, 1);   // nastavení kurzoru na LCD na pozici 0:0    &lt;br /&gt;
lcd.print(&amp;quot;Sekundy:&amp;quot;); // vytiskne text na LCD    &lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
void loop() {  // tato funkce se neustále opakuje   &lt;br /&gt;
  int sekundy = (millis()/1000);  // zjištění a výpočet doby, od spuštění programu - v sekundách&lt;br /&gt;
  int minuty = millis()/1000/60;  // zjištění a výpočet doby, od spuštění programu - v minutách&lt;br /&gt;
  sekundy -= minuty*60;  // korekce času - po 60ti sekundách se sekundy vynulují   &lt;br /&gt;
  if(sekundy == 0)  // když se sekundy rovnají 0, display se vymaže&lt;br /&gt;
    {  &lt;br /&gt;
    lcd.setCursor(10, 0);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(10, 0);  // nastaví pozici kurzoru na LCD&lt;br /&gt;
  lcd.print(minuty);     // vytiskne čas, který uběhl od spuštění programu v minutách&lt;br /&gt;
&lt;br /&gt;
  if(sekundy==1)  // v první sekundě se motor vždy zastavý &lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu&lt;br /&gt;
    {&lt;br /&gt;
    drive_backward();&lt;br /&gt;
    }&lt;br /&gt;
  if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý&lt;br /&gt;
    {&lt;br /&gt;
    motor_stop();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    lcd.setCursor(10, 1);&lt;br /&gt;
    lcd.print(sekundy);    // vytiskne čas, který uběhl od spuštění programu v sekundách&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  void motor_stop(){       //zastaví DC motory&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   delay(25);&lt;br /&gt;
   }    &lt;br /&gt;
&lt;br /&gt;
  void drive_forward(){    //zapne DC motory směrem dopředu&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void drive_backward(){    //zapne DC motory směrem vzad&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_left(){    //zapne DC motory a zatočí vlevo&lt;br /&gt;
   digitalWrite(motor_left[0], LOW);&lt;br /&gt;
   digitalWrite(motor_left[1], HIGH);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_right[1], LOW);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
  void turn_right(){    //zapne DC motory a zatočí vpravo&lt;br /&gt;
   digitalWrite(motor_left[0], HIGH);&lt;br /&gt;
   digitalWrite(motor_left[1], LOW);&lt;br /&gt;
&lt;br /&gt;
   digitalWrite(motor_right[0], LOW);&lt;br /&gt;
   digitalWrite(motor_right[1], HIGH);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Compatible 8X Seven Segments Display ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Arduiono-7disp.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
Integrovaná tlačítka, LED &amp;amp; 7 segmentový display&lt;br /&gt;
- Vyžaduje pouze 3 IO výstupy k činnosti&lt;br /&gt;
- TM1638 chip micro-8 8-segment LED displayů a 8 tlačítek a 8 testovacíhc dvoubarevných Led kontrolek, IO zajišťují sériovou komunikaci rozhraní, 8 nastavovacích úrovní jasu.&lt;br /&gt;
Specifikace: 0.2 cm x 5.0 cm x 1.0 cm&lt;br /&gt;
&lt;br /&gt;
Programuje se v progamu Arduino pomoc jazyka C++ (možno sáhnout zde http://arduino.cc/en/Main/Software). V programu Arduino můžete také načíst funkční příklady z knihovny (možno stáhnout zde http://code.google.com/p/tm1638-library/)&lt;br /&gt;
&lt;br /&gt;
Jednoduchý příklad pro jedno Arduino&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TM1638.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define a module on data pin 8, clock pin 9 and strobe pin 7&lt;br /&gt;
TM1638 module(8, 9, 7);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // display a hexadecimal number and set the left 4 dots&lt;br /&gt;
  module.setDisplayToHexNumber(0x1234ABCD, 0xF0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  byte keys = module.getButtons();&lt;br /&gt;
&lt;br /&gt;
  // light the first 4 red LEDs and the last 4 green LEDs as the buttons are pressed&lt;br /&gt;
  module.setLEDs(((keys &amp;amp; 0xF0) &amp;lt;&amp;lt; 8) | (keys &amp;amp; 0xF));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SW]]&lt;br /&gt;
[[Kategorie:HW]]&lt;br /&gt;
[[Kategorie:MIT]]&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Soubor:Arduino_7.jpg&amp;diff=14687</id>
		<title>Soubor:Arduino 7.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Soubor:Arduino_7.jpg&amp;diff=14687"/>
		<updated>2012-11-19T11:10:40Z</updated>

		<summary type="html">&lt;p&gt;Dkalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkalis</name></author>
	</entry>
</feed>