Kategorie: Vybrané články » Praktická elektronika
Počet zobrazení: 67360
Komentáře k článku: 7

Připojení a programování Arduino pro začátečníky

 

Vypadá to, že studium mikrokontrolérů je komplikované a nepochopitelné? Předtím, než se objevil Arudino, to opravdu nebylo snadné a vyžadovalo určitou sadu programátorů a dalšího vybavení.


Co je Arduino?

Jedná se o jakýsi elektronický konstruktér. Prvotním cílem projektu je umožnit lidem snadno se naučit, jak programovat elektronická zařízení, přičemž elektronické části věnuje minimální čas.

Montáž nejsložitějších obvodů a spojení desek lze provádět bez páječky a pomocí propojek s odpojitelným spojením „otec“ a „matka“. Tímto způsobem lze připojit jak přílohy, tak rozšiřující karty, které se v lexikonu arduinistů jednoduše nazývají „štíty“.

Co je Arduino?

Jaká první deska Arduino koupit pro nováčka?

Je zvažována základní a nejoblíbenější deska Arduino uno. Tento poplatek se podobá kreditní kartě. Docela velký. Většina štítů, které jsou v prodeji, je pro ni ideální. Na desce jsou zásuvky pro připojení externích zařízení.

Arduino uno

V domácích obchodech pro rok 2017 je jeho cena asi 4-5 dolarů. U moderních modelů je Atmega328 jejím srdcem.

Arduino uno

Arduino deska obrázek a funkce dekódování každého kolíku, Arduino UNO pinout

Mikrokontrolér na této desce je dlouhý čip v balíčku DIP28, což znamená, že má 28 noh.

Další nejoblíbenější deska stojí téměř dvakrát levnější než ta předchozí - 2-3 dolary. To je deska Arduino nano. Skutečné desky jsou postaveny na stejném Atmega328, jsou funkčně podobné UNO, existují rozdíly ve velikosti a odpovídající řešení s USB, více o tom později. Další rozdíl spočívá v tom, že je uspořádán konektor ve formě jehel pro připojení zařízení k desce plošných spojů.

Arduino nano

Počet pinů (nožiček) této desky je stejný, ale můžete si všimnout, že mikrokontrolér je vyroben v kompaktnějším balení TQFP32, v případě jsou přidány ADC6 a ADC7, další dvě „extra“ nohy duplikují napájecí sběrnici. Jeho rozměry jsou poměrně kompaktní - asi o velikosti palce vaší ruky.

Aruino nano pinout 

Třetí nejoblíbenější deskou je Arduino Pro Mini, nemá port USB pro připojení k počítači, řeknu vám, jak komunikovat o něco později.

Arduino Nano vs Pro Mini Porovnání velikosti

Arduino Nano vs Pro Mini Porovnání velikosti

Toto je nejmenší základní deska ze všech uvažovaných, jinak je podobná předchozím dvěma a Atmega328 je stále jejím srdcem. Nebudeme uvažovat o jiných tabulích, protože se jedná o článek pro začátečníky a srovnání desek je tématem samostatného článku.

Arduino Pro Mini pinout, v horní části, schéma zapojení USB-UART, pin „GRN“ - je zapojeno do resetovacího obvodu mikrokontroléru, může být nazýváno jinak, pro které je třeba to zjistit později.

Shrnutí:

Pokud je UNO vhodné pro prototypování, pak Nano a Pro Mini jsou vhodné pro finální verze vašeho projektu, protože zabírají málo místa.

Arduino pro začátečníky

Jak připojit Arduino k počítači?

Arduino Uno a Nano se připojují k počítači přes USB. Současně není k dispozici žádná hardwarová podpora pro port USB, zde se používá řešení s obvodovým převodem, obvykle nazývané USB-k-sériové nebo USB-UART (rs-232). Současně je do mikrokontroléru blikán speciální zavaděč Arduino, který umožňuje blikání těchto autobusů.

V Arduino Uno je tato ligatura implementována na mikrokontroléru s podporou USB - ATmega16U2 (AT16U2). Ukázalo se, že pro blikání hlavního mikrokontroléru je potřebný další mikrokontrolér na desce.

V Arduino Nano je to implementováno čipem FT232R nebo jeho analogem CH340. Nejedná se o mikrokontrolér - jedná se o převodník úrovně, což usnadňuje sestavení Arduino Nano od nuly vlastními rukama.

Obvykle se ovladače instalují automaticky, když je připojena deska Arduino. Když jsem si ale koupil čínskou kopii Arduino Nano, zařízení bylo rozpoznáno, ale nefungovalo to, na převaděč byl nalepen kulatý štítek s údaji o datu vydání, nevím, jestli to bylo provedeno záměrně, ale po odlupování jsem viděl označení CH340.

Předtím jsem se s tím nesetkal a myslel jsem si, že všechny převaděče USB-UART byly sestaveny na FT232, musel jsem stáhnout ovladače, které lze velmi snadno najít na žádost ovladače „Arduino ch340“. Po jednoduché instalaci - fungovalo to!

Prostřednictvím stejného portu USB lze mikroprocesor napájet, tzn. pokud jej připojíte k adaptéru z mobilního telefonu, váš systém bude fungovat.


Co mám dělat, pokud moje deska nemá USB?

Arduino Pro Mini je menší. Toho bylo dosaženo odstraněním konektoru USB pro firmware a stejného převaděče USB-UART. Proto jej musíte zakoupit samostatně. Nejjednodušší převodník na CH340 (nejlevnější), CPL2102 a FT232R, pro prodejní náklady od 1 $.

Při nákupu věnujte pozornost tomu, na jaké napětí je tento adaptér určen. Pro mini je k dispozici ve verzích 3.3 a 5 V, jumper je často umístěn na převaděčích pro přepínání napájecího napětí.

Arduino Pro Mini

Když bliká Pro Mini, těsně před jeho spuštěním, musíte kliknout na RESET, avšak u převodníků s DTR to nemusíte dělat, schéma připojení na obrázku níže.

Schéma připojení pro firmware

Jsou spojeny speciálními terminály „Mama-Mama“ (žena-žena).

Připojení Arduino

Ve skutečnosti lze všechna připojení provést pomocí takových terminálů (Dupont), obě jsou na obou stranách se zásuvkami a se zástrčkami a na jedné straně zásuvky a na druhé zástrčce.

Zástrčka

Jak psát programy pro Arduino?

Chcete-li pracovat s náčrtky (název firmwaru je v jazyce arduino), existuje speciální integrované prostředí pro vývoj Arduino IDE, můžete si ho stáhnout zdarma z oficiálních stránek nebo z libovolného tematického zdroje, obvykle nejsou problémy s jeho instalací.

Program pro Arduino

Takto vypadá programové rozhraní. Můžete psát programy ve zjednodušeném jazyce C AVR speciálně vyvinutém pro arduino, ve skutečnosti je to sada knihoven s názvem Wiring, stejně jako v čistě C AVR. Jeho použití usnadňuje kód a zrychluje jeho práci.

V horní části okna se nachází známé menu, kde můžete otevřít soubor, nastavení, vybrat desku, se kterou pracujete (Uno, Nano a mnoho dalších, mnoho dalších) a také otevírat projekty s příklady hotového kódu. Níže je sada tlačítek pro práci s firmwarem, klávesy, které uvidíte na obrázku níže.

Rozhraní programu

V dolní části okna je oblast pro zobrazení informací o projektu, stavu kódu, firmwaru a přítomnosti chyb.


Základy programování Arduino IDE

Na začátku kódu musíte deklarovat proměnné a připojit další knihovny, pokud existují, je to provedeno následovně:

#include biblioteka.h; // propojte knihovnu s názvem „Biblioteka.h“

#define peremennaya 1234; // Deklarovat proměnnou s hodnotou 1234

Příkaz Definovat umožňuje kompilátoru zvolit typ proměnné, ale můžete ji nastavit ručně, například int celé číslo nebo plovoucí desetinnou čárku.

int led = 13; // vytvořil proměnnou „led“ a přiřadil jí hodnotu „13“

Program může určit stav kolíku jako 1 nebo 0. 1 je logická jednotka, pokud je kolík 13 1, pak se napětí na jeho fyzické noze bude rovnat napájecímu napětí mikrokontroléru (pro arduino UNO a Nano - 5 V)

Digitální signál se zaznamenává pomocí příkazu digitalWrite (pin, hodnota), například:

digitalWrite (led, high); // zapište jednotku do protokolu 13 (oznámili jsme to výše) log. Jednotky.

Jak můžete pochopit, přístup k portům je číslováním na desce, odpovídajícím číslem. Zde je příklad podobný předchozímu kódu:

digitalWrite (13, vysoký); // nastavte pin 13 na jeden

Hledaná funkce časového zpoždění je často vyvolána příkazem delay (), jehož hodnota je nastavena v milisekundách, mikrosekundy jsou dosaženy pomocí

delayMicroseconds () Zpoždění (1000); // mikrokontrolér bude čekat 1 000 ms (1 sekunda)

Nastavení portu pro vstup a výstup se nastavují ve funkci neplatné nastavení {} příkazem:

neplatné nastavení () {

pinMode (NOMERPORTA, OUTPUT / INPUT); // argumenty - název proměnné nebo číslo portu, vstup nebo výstup z čeho vybírat

}

Prázdná smyčka {}


Pochopení prvního programu Blink

Jako druh „Ahoj, svět“ pro mikrokontroléry je program LED blikající, analyzujme jeho kód:

Na začátku jsme příkazem pinMode řekli mikrokontroléru, aby k výstupu přiřadil port s LED.Už jste si všimli, že kód nevyhlašuje proměnnou „LED_BUILTIN“, faktem je, že v Uno, Nano a dalších deskách z továrny je vestavěná LED připojena ke kolíku 13 a je připájena k desce. Můžete jej použít pro indikaci ve svých projektech nebo pro nejjednodušší kontrolu vašich blikajících programů.

Dále nastavíme výstup, ke kterému je LED pájena na jednotu (5 V), další řádek způsobí, že MK čeká 1 sekundu, a nastaví pin LED_BUILTIN na nulu, čeká sekundu a program se opakuje v kruhu, takže když LED_BUILTIN je 1 - LED ( a jakékoli další zatížení připojené k portu) je zapnuto, když je při 0 vypnuto.

Funguje všechno a vše je jasné? Pak jděte dál!



Čteme hodnotu z analogového portu a použijeme načtená data

Mikrokontrolér Atmega328 AVR má vestavěný 10bitový převodník analogového signálu na digitální. 10bitový ADC vám umožňuje odečíst hodnotu napětí od 0 do 5 V, v krocích po 1/1024 z celého rozsahu amplitudy signálu (5 V).

Aby to bylo jasnější, zvažte situaci, předpokládejme, že hodnota napětí na analogovém vstupu je 2,5 V, pak mikrokontrolér načte hodnotu z kolíku "512", pokud je napětí 0 - "0", a pokud 5 V - (1023). 1023 - protože počet jde od 0, tj. 0, 1, 2, 3 atd. až 1023 - celkem 1024 hodnot.

Zde je, jak to vypadá v kódu, jako příklad použijeme standardní skicu „analogInput“

int sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

neplatné nastavení () {

pinMode (ledPin, OUTPUT);

}

void loop () {

sensorValue = analogRead (sensorPin);

digitalWrite (ledPin, HIGH);

zpoždění (senzorValue);

digitalWrite (ledPin, LOW);

zpoždění (senzorValue);

}

Schéma připojení potenciometru k Arduino, analogicky, centrální výstup, který lze připojit k libovolnému analogovému vstupu

Schéma připojení potenciometru k Arduinu analogicky k centrálnímu výstupu, který lze připojit k libovolnému analogovému vstupu.

Deklarovat proměnné:

  • Ledpin - k výstupu samostatně přiřaďte pin s vestavěnou LED a uveďte individuální jméno;

  • SensorPin - analogový vstup, nastavený podle označení na desce: A0, A1, A2 atd .;

  • sensorValue - proměnná pro ukládání celočíselné hodnoty čtení a další práci s ní.

Kód funguje takto: sensorValue uloží analogovou hodnotu načtenou pomocí SensorPin (příkaz analogRead). - zde končí práce s analogovým signálem, pak je vše jako v předchozím příkladu.

Napíšeme jednotku do ledPin, LED se rozsvítí a čekáme na dobu rovnající se hodnotě senzorValue, tj. od 0 do 1023 milisekund. Vypněte LED a počkejte znovu, než se kód zopakuje.

Pozicí potenciometru jsme tedy nastavili frekvenci blikání LED.


Funkce mapy pro Arudino

Ne všechny funkce pro pohony (nevím žádné) podporují „1023“ jako argument, například, servo je omezeno úhlem rotace, tj. Půl otáčky (180 stupňů) (půl otáčky) servomotoru, maximální argument funkce je „180“

Nyní o syntaxi: mapa (hodnota, kterou překládáme, je minimální vstup, maximální vstup, minimální výstup, maximální výstup).

V kódu to vypadá takto:

(mapa (analogRead (pot), 0, 1023, 0, 180));

Odečteme hodnotu z potenciometru (analogRead (pot)) od 0 do 1023 a na výstupu dostaneme čísla od 0 do 180

Hodnoty hodnot mapy:

  • 0=0;

  • 1023=180;

V praxi to aplikujeme na práci stejného servo kódu, podívejte se na kód pomocí Arduino IDE, pokud jste si pozorně přečetli předchozí oddíly, pak to nevyžaduje vysvětlení.

A schéma zapojení.

Schéma zapojení

Závěry Arduino je velmi praktický nástroj pro učení, jak pracovat s mikrokontroléry. A pokud používáte čistý C AVR, nebo jak se někdy nazývá „Pure C“, významně snížíte hmotnost kódu a zapadnete více do paměti mikrokontroléru, díky čemuž získáte vynikající ladicí desku vyrobenou z továrny s firmwarem USB.

Arduino pro začátečníky

Názor autora:

Mám rád arduino. Je škoda, že mnoho zkušených programátorů mikrokontrolérů to nepřiměřeně kritizuje, že je příliš zjednodušené. V zásadě je zjednodušen pouze jazyk, ale nikdo vás nenutí k jeho použití, navíc můžete flash mikrokontrolér přes konektor ICSP a vyplnit požadovaný kód bez bootloaderů, které nepotřebujete.

Pro ty, kteří chtějí hrát s elektronikou jako pokročilý konstruktér, je to perfektní, ale pro zkušené programátory bude užitečná i deska, která nevyžaduje montáž!

Další informace o Arduinu a vlastnostech jeho použití v různých schématech naleznete v elektronické knize -Arduino pro figuríny. Ilustrovaný praktický průvodce.

Viz také na i.electricianexp.com:

  • Metody čtení a správy vstupních / výstupních portů Arduino
  • Kterou desku Arduino si vybrat
  • Druhy a uspořádání mikrokontrolérů AVR
  • Dálkové ovládání mikrokontroléru: IR Remote, Arduino, ESP8266, 433 ...
  • Připojení analogových senzorů k Arduino, čtení senzorů

  •  
     
    Komentáře:

    # 1 napsal: Elektromag | [citovat]

     
     

    Jakou literaturu o studiu programovacího kódu doporučujete?

     
    Komentáře:

    # 2 napsal: Andrey | [citovat]

     
     

    ElektromagUlli Sommer. Programování desek mikrokontrolérů Arduino / Freeduino, Jeremy Bloom. Studujeme Arduino. Nástroje a techniky pro technické kouzlo, John Boxell. Studujeme Arduino. 65 projektů do-it-yourself. Knihy o Arduinu na ozonu: i.electricianexp.com/arduino_books.php

     
    Komentáře:

    # 3 napsal: Victor | [citovat]

     
     

    Velmi zajímavý a vzrušující materiál, díky!

     
    Komentáře:

    # 4 napsal: Ural | [citovat]

     
     

    Díky za informaci, funkce "mapa" byla velmi užitečná, přemýšlel jsem, jak se obejít, teprve začíná se učit hračky na Arduino.

     
    Komentáře:

    # 5 napsal: Dima | [citovat]

     
     

    Něco nenajdu pro arduino štíty pro sdílení na mil-std-1553b, i když pro autobusy comp - haldy, velmi populární rozhraní. Poke, kde můžete hledat-koupit.

    p.s. datum článku se nezobrazuje - možná má 10 let a už by neměla psát komentáře?

     
    Komentáře:

    # 6 napsal: Eremino | [citovat]

     
     

    Jak vytvořit opakovač vstupního signálu na Arduino pro 4 nebo libovolný počet výstupů.

    Podobně se 4 vstupními kanály na 16 výstupními kanály. V takovém případě musíte na každém vstupním kanálu přepnout vstup na 4 výstupy současně.

     
    Komentáře:

    # 7 napsal: Oleg | [citovat]

     
     

    Kluci, řekněte mi, kde jste se naučili programovat? Zkontroloval jsem spoustu informací a nikdo nepsal jasně. Zde všechny informace nejsou pro začátečníky, opravdu hodně není jasné, podhodnocení. Bylo napsáno mnoho slov, o nichž neříká ani slovo, například autor, na začátku musíte knihovnu deklarovat a zadat #include biblioteka.h; // ale o tomto slově nic nenapsal #include proč je možné tomu všem porozumět. Už mi chybí trpělivost, nikdo nemůže vysvětlit normálním způsobem a vysvětlit, že co by se zde stalo, je třeba napsat. Samozřejmě je to nula, ale snažím se číst, nevidím nic nepochopitelně, což nevysvětluje mnoho zbytečných. A mohu říci, že nejsem hloupý hlupák, mohu opravit téměř jakoukoli elektroniku, to znamená, že jsem přátelé s hlavou, ale nerozumím tomu, protože píšou ty, kdo to vědí, ale zapomněli na nuance, když se do toho ponořili.