Uživatelské nástroje

Nástroje pro tento web


vpr:laborky:uart:arduino_pc

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Následující verze
Předchozí verze
vpr:laborky:uart:arduino_pc [29. 11. 2017, 15.49]
xstoican vytvořeno
vpr:laborky:uart:arduino_pc [13. 12. 2017, 13.52] (aktuální)
xstoican
Řádek 1: Řádek 1:
 ====== UART: Posílání textu a čísel do PC ====== ====== UART: Posílání textu a čísel do PC ======
 +<WRAP center round info 60%>
 +Vysvětlete,​ co znamená zkratka UART a co je to sériová komunikace a sériová linka. Jak se posílají data z Arduina do počítače (přes USB) a z počítače do Arduina? Jaké funkce k tomu používáme?​ Uveďte ukázkový kód, který načte text z počítače a odpoví zpátky. Které části Arduina UNO a které části Arduina Leonardo se na komunikaci podílejí?
 +</​WRAP>​
 +
 +UART je hardware, který dokáže poílat data po sériové lince libovolnou rychlostí a v různých formátech. Na arduinu jsou 3 nebo 4 piny:
 +GND - společné zemění
 +Rx - receiver
 +Tx - transmitter
 +napájení (není nutné vždy propojit)
 +
 +Na arduino jsou piny 0 a 1, Rx a Tx. Vnitřně jsou propojeny s USB převodníkem.
 +
 +Sériová komunikace posílá bity po jedné lince jednotlivě. Často se používá i druhá linka s hodinovým signálem, ale ta není vždy nutná.
 +
 +===== Funkce =====
 +
 +
 +Na arduinu používáme objekt Serial a jeho funkce:
 +Serial.print (text, číslo, znak atd.); Vypíše z čipu do seriové linky.
 +
 +Serial.println (text, číslo, znak atd.); Je stejný jako Serial.print,​ ale vypíše s odřádkováním.
 +
 +Serial.read (); Vrátí kód jednoho znaku, který přišel do čipu.
 +
 +Serial.readString (); Stejný jako Serial.read,​ ale vrátí celý řetězec textu.
 +
 +Serial.parseInt (); Vrátí celé přečtené číslo.
 +
 +Serial.available (); Vrátí počet znaků které přišly do čipu a čekají na přečtení.
 +
 +Serial.begin (rychlost); Nastaví na začátku komunikace její rychlost (v baudech). Většinou to je 9600.
 +
 +Příklad:
 +
 +<​code>​void setup() {
 +  Serial.begin(9600);​ //nastaví rychlost komunikace
 +}
 +
 +void loop() {
 +
 +  Serial.println("​Nabidka:"​);​ //vypíše nabídku s odřádkováním
 +  Serial.println("​a:​ pizza 99kc"​);​
 +  Serial.println("​b:​ kebab 50kc"​);​
 +  Serial.println("​c:​ hamburger 25kc"​);​
 +  Serial.println("​d:​ cola 15kc"​);​
 +  Serial.println("​vyberte a,b,c nebo d");
 +  while (Serial.available() == 0); //čeká dokud nepřijdou nějaká data pro přečtení
 +  int data = Serial.read();​ //kód jednoho znaku se uloží jako "​data"​
 +  if (data == '​a'​) {
 +    Serial.println("​Castka 99kc byla strzena z vaseho uctu, uzijte si svoji pizzu!"​);​ //odpoví podle předchozí odpovědi
 +  }
 +  else if (data == '​b'​) {
 +    Serial.println("​Castka 50kc byla strzena z vaseho uctu, uzijte si svůj kebab!"​);​ //odpoví podle předchozí odpovědi
 +  }
 +  else if (data == '​c'​) {
 +    Serial.println("​Castka 25kc byla strzena z vaseho uctu, uzijte si svůj hamburger!"​);​ //odpoví podle předchozí odpovědi
 +  }
 +  else if (data == '​d'​) {
 +    Serial.println("​Castka 15kc byla strzena z vaseho uctu, uzijte si svoji colu!"​);​ //odpoví podle předchozí odpovědi
 +  }
 +  Serial.println();​ //vynechá jeden řádek
 +}
 +</​code>​
 +
 +
 +
 +
 +
 Tudor Alexandru Stoican Tudor Alexandru Stoican
vpr/laborky/uart/arduino_pc.1511966960.txt.gz · Poslední úprava: 29. 11. 2017, 15.49 autor: xstoican