• Jednoduché obvody Arduino pro začátečníky. Arduino PRO. Jaké je nejlepší místo, kde začít pro začátečníka?

    Tento simulátor funguje nejlépe v prohlížeči Chrome
    Pojďme se na Arduino podívat blíže.

    Arduino není velký počítač, ke kterému lze připojit externí obvody. Arduino Uno používá Atmega 328P
    Toto je největší čip na desce. Tento čip spouští programy, které jsou uloženy v jeho paměti. Program si můžete stáhnout přes usb pomocí Arduino IDE. usb port také dodává energii arduinu.

    Je zde samostatná elektrická zásuvka. Na desce jsou dva výstupy, označené 5V a 3,3V, které jsou potřebné pro napájení různých zařízení. Najdete zde i piny označené GND, jedná se o zemnicí piny (zem je 0V). Platforma Arduino má také 14 digitálních pinů (pinů), označených čísly od 0 do 13, které se připojují k externím uzlům a mají dva stavy, vysoký nebo nízký (zapnuto nebo vypnuto). Tyto kontakty mohou pracovat jako výstupy nebo jako vstupy, tzn. mohou buď přenášet některá data a ovládat externí zařízení, nebo přijímat data ze zařízení. Následující kolíky na desce jsou označeny A0-A5. Jedná se o analogové vstupy, ze kterých lze přijímat data různé senzory. To je zvláště užitečné, když potřebujete změřit určitý rozsah, například teplotu. Analogové vstupy mají doplňkové funkce které lze použít samostatně.

    Jak používat prkénko na krájení.

    Prkénko na krájení slouží k dočasnému spojení dílů, aby se otestovalo, jak zařízení funguje, než vše zapájíte.
    Všechny následující příklady jsou sestaveny na prkénku, takže můžete rychle provést změny v obvodu a znovu použít díly bez potíží s pájením.

    Prkénko má řady otvorů, kam můžete vložit díly a dráty. Některé z těchto otvorů jsou navzájem elektricky spojeny.

    Dvě horní a spodní řady jsou spojeny do série podél celé desky. Tyto řady se používají k napájení obvodu. Může to být 5V nebo 3,3V, ale v každém případě první věc, kterou musíte udělat, je připojit 5V a GND k prkénku, jak je znázorněno. Někdy mohou být tyto řádkové spoje přerušeny uprostřed desky, pak, pokud potřebujete, můžete je připojit, jak je znázorněno na obrázku.








    Zbytek otvorů umístěných uprostřed desky je seskupen pěti otvory. Používají se ke spojení částí obvodu.


    První věc, kterou připojíme k našemu mikrokontroléru, je LED. Schéma zapojení je na obrázku.

    Jaký je účel rezistoru v obvodu? V tento případ omezuje proud, který prochází LED. Každá LED je navržena pro určitý proud, a pokud je tento proud větší, pak LED selže. Jakou hodnotu by měl mít rezistor, můžete zjistit pomocí ohmového zákona. Pro ty, kteří nevědí nebo zapomněli, Ohmův zákon říká, že mezi proudem a napětím existuje lineární vztah. To znamená, že čím větší napětí na rezistor přivedeme, tím větší proud jím proteče.
    V=I*R
    Kde PROTI- napětí na rezistoru
    - proud přes odpor
    R je odpor k nalezení.
    Nejprve musíme zjistit napětí na rezistoru. Většina 3mm nebo 5mm LED diod, které budete používat, má provozní napětí 3V. Takže na rezistoru musíme zaplatit 5-3 \u003d 2v.

    Poté vypočítáme proud procházející rezistorem.
    Většina 3 a 5mm LED svítí při plném jasu při 20mA. Větší proud než tento je může zničit a menší proud sníží jejich jas, aniž by způsobil jakoukoli újmu.

    Chceme tedy zapnout LED v 5V obvodu tak, aby měla proud 20mA. Vzhledem k tomu, že všechny části jsou zahrnuty v jednom obvodu, bude mít rezistor také proud 20 mA.
    Dostaneme
    2V=20mA*R
    2V=0,02A*R
    R = 100 ohmů

    100 ohmů je minimální odpor, je lepší použít trochu více, protože LED diody mají určité rozdíly ve vlastnostech.
    V tento příklad je použit odpor 220 ohmů. Už jen proto, že jich má autor hodně :wink: .

    Vložte LED do otvorů uprostřed desky tak, aby její dlouhý vodič byl připojen k jednomu z vodičů rezistoru. Připojte druhý konec rezistoru k 5V a druhý konec LED připojte ke GND. LED by se měla rozsvítit.

    Upozorňujeme, že existuje rozdíl ve způsobu připojení LED. Proud teče z delšího vedení do kratšího vedení. V diagramu si lze představit, že proud teče ve směru, kam směřuje trojúhelník. Zkuste LEDku přehodit a uvidíte, že nebude svítit.

    Ale jak zapojíte odpor, v tom není vůbec žádný rozdíl. Můžete ji otočit nebo ji zkusit připojit k jinému výstupu LED, to neovlivní činnost obvodu. Stále bude omezovat proud procházející LED.

    Anatomie náčrtu Arduino.

    Programy pro Arduino se nazývají sketch. Mají dvě hlavní funkce. Funkce založit a funkce smyčka
    uvnitř této funkce nastavíte všechna základní nastavení. Které výstupy budou fungovat jako vstup nebo výstup, které knihovny připojit, inicializovat proměnné. Funkce Založit() běží pouze jednou během skici, když se spustí provádění programu.
    toto je hlavní funkce, která se provede poté založit(). Ve skutečnosti je to samotný program. Tato funkce poběží neomezeně dlouho, dokud nevypnete napájení.

    Arduino bliká LED



    V tomto příkladu připojíme LED obvod k jednomu z digitálních pinů Arduina a zapínáme a vypínáme jej pomocí programu a také se naučíme pár užitečných funkcí.

    Tato funkce se používá v založit() součástí programu a slouží k inicializaci pinů, které budete používat jako vstup (VSTUP) nebo odejít (VÝSTUP). Nebudete moci číst ani zapisovat data z pinu, dokud jej odpovídajícím způsobem nenastavíte pinMode. Tato funkce má dva argumenty: číslo PIN je číslo PIN, které budete používat.

    režimu-nastavuje, jak bude pin fungovat. U vchodu (VSTUP) nebo odejít (VÝSTUP). Abychom LED rozsvítili, musíme dát signál Z Arduino. Chcete-li to provést, nakonfigurujeme špendlík na ukončení.
    - tato funkce slouží k nastavení stavu (Stát) pina (číslo PIN). Existují dva hlavní stavy (obecně jsou 3), jeden je VYSOKÝ, na pinu bude 5v, druhý je nízký a pin bude 0v. Abychom tedy rozsvítili LED, musíme nastavit na pin připojený k LED vysoká úroveň VYSOKÝ.

    Zpoždění. Slouží k odložení programu o dobu zadanou v ms.
    Níže je uveden kód, díky kterému začne LED blikat.
    //LED Blink int ledPin = 7;//Kolík Arduina, ke kterému je LED připojena void setup() ( pinMode(ledPin, OUTPUT);// nastavit pin jako OUTPUT ) void loop() ( digitalWrite(ledPin, HIGH);/ / zapnout zpoždění LED (1000);// zpoždění 1000 ms (1 sec) digitalWrite(ledPin, LOW);// Vypnout zpoždění LED (1000);// počkat 1 sec )

    Malá vysvětlení ke kódu.
    Řádky začínající „//“ jsou komentáře, které Arduino ignoruje.
    Všechny příkazy končí středníkem, pokud je zapomenete, zobrazí se chybové hlášení.

    ledPin je proměnná. Proměnné se v programech používají k ukládání hodnot. V tomto příkladu proměnná ledPin je přiřazena hodnota 7, toto je číslo pinu Arduino. Když Arduino v programu narazí na řádek s proměnnou ledPin, použije hodnotu, kterou jsme zadali dříve.
    Takže záznam pinMode(ledPin, OUTPUT) podobný zápisu pinMode(7, VÝSTUP).
    Ale v prvním případě stačí změnit proměnnou a změní se na každém řádku, kde se používá, a ve druhém případě, abyste mohli změnit proměnnou, budete muset provést změny pomocí úchytů v každém příkazu.

    První řádek označuje typ proměnné. Na Programování Arduina je důležité vždy deklarovat typ proměnných. Dokud to víte INT deklaruje záporná a kladná čísla.
    Níže je simulace náčrtu. Stiskněte start a uvidíte, jak obvod funguje.

    Podle očekávání se LED po jedné sekundě vypne a rozsvítí. Zkuste změnit zpoždění, abyste viděli, jak to funguje.

    Ovládání více LED.

    V tomto příkladu se naučíte ovládat více LED diod. Chcete-li to provést, nainstalujte na desku 3 další LED a připojte je k rezistorům a pinům Arduino, jak je znázorněno níže.

    Chcete-li postupně zapínat a vypínat LED diody, musíte napsat program podobný tomuto:
    //Multi LED Blink int led1Pin = 4; int led2Pin = 5; intled3Pin = 6; int led4Pin = 7; void setup() ( //nastavení pinů jako OUTPUT pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); ) void loop() ( digitalWrite(led1Pin, HIGH );//zpoždění rozsvícení LED (1000);//zpoždění 1 s digitalWrite(led1Pin, LOW);//vypnutí zpoždění LED(1000);//zpoždění 1 s //udělejte totéž pro další 3 LED digitalWrite( led2Pin , HIGH); // zapnutí zpoždění LED (1000);// zpoždění 1 s digitalWrite (led2Pin, LOW);// vypnutí zpoždění LED (1000);// zpoždění 1 s digitalWrite (led3Pin, HIGH) ;// zapnutí zpoždění LED (1000);// zpoždění 1 s digitalWrite (led3Pin, LOW);// vypnutí zpoždění LED (1000);// zpoždění 1 s digitalWrite (led4Pin, HIGH);// zapnutí Zpoždění LED (1000);// zpoždění 1 sec digitalWrite (led4Pin, LOW);//zpoždění vypnutí LED (1000);//zpoždění 1 sec )

    Tento program bude fungovat dobře, ale není to nejchytřejší řešení. Kód je třeba změnit. Aby program fungoval znovu a znovu, použijeme konstrukci nazvanou .
    Smyčky jsou užitečné, když potřebujete opakovat stejnou akci několikrát. Ve výše uvedeném kódu opakujeme řádky

    DigitalWrite(led4Pin, HIGH); zpoždění(1000); digitalWrite(led4Pin, LOW); zpoždění(1000);
    celý kód skici v příloze (Staženo: 1187)

    Nastavení jasu LED

    Někdy budete muset změnit jas LED diod v programu. To lze provést pomocí příkazu analogWrite() . Tento příkaz zapíná a vypíná LED tak rychle, že oko toto blikání nevidí. Pokud LED svítí polovinu času a nesvítí polovinu času, vizuálně to bude vypadat, že svítí polovičním jasem. Toto se nazývá modulace šířky pulzu (PWM nebo PWM v angličtině). PWM se používá poměrně často, protože jej lze použít k ovládání "analogové" komponenty digitální kód. Ne všechny piny Arduino jsou pro tento účel vhodné. Pouze ty závěry, v jejichž blízkosti je takové označení vyvozeno“ ~ “. Uvidíte ji vedle pinů 3,5,6,9,10,11.
    Připojte jednu z vašich LED k jednomu z PWM pinů (autorský pin je 9). Nyní spusťte blikající skicu LED, ale nejprve změňte příkaz digitalWrite() na analogWrite(). analogWrite() má dva argumenty: první je číslo pinu a druhý je hodnota PWM (0-255), ve vztahu k LED to bude jejich jas a u elektromotorů rychlost otáčení. Níže je uveden příklad kódu pro různé jasy LED.
    //Změňte jas LED int ledPin = 9;//k tomuto pinu je připojena LED void setup() ( pinMode(ledPin, OUTPUT);// inicializace pinu na výstup ) void loop() ( analogWrite (ledPin, 255);// plný jas (255/255 = 1) zpoždění (1000);// pauza 1 s digitalWrite(ledPin, LOW);// vypnutí zpoždění LED (1000);// pauza 1 s analogWrite (ledPin, 191);// jas o 3/4 (191/255 ~= 0,75) delay(1000);//pauza 1 s digitalWrite(ledPin, LOW);//vypnutí LED delay(1000);// pauza 1 s analogWrite(ledPin, 127); //poloviční jas (127/255 ~= 0,5) zpoždění(1000);//pauza 1s digitalWrite(ledPin, LOW);//vypnutí zpoždění LED(1000);// pauza 1s analogWrite(ledPin, 63); // čtvrtinový jas (63/255 ~= 0,25) delay(1000);// pauza 1 s digitalWrite(ledPin, LOW);// vypnutí LED delay(1000);// pauza 1 s)

    Zkuste změnit hodnotu PWM v příkazu analogWrite() abyste viděli, jak to ovlivňuje jas.
    Dále se dozvíte, jak plynule nastavit jas od plné po nulu. Úsek kódu můžete samozřejmě zkopírovat 255krát
    analogWrite(ledPin, jas); delay(5);//krátké zpoždění jas = jas + 1;
    Ale chápete - nebude to praktické. K tomu je nejlepší použít smyčka FOR který se používal dříve.
    Následující příklad používá dvě smyčky, jednu pro snížení jasu z 255 na 0
    for (int jas=0;jas=0;jas--)( analogWrite(ledPin,jas); zpoždění(5); )
    zpoždění (5) používá se ke zpomalení rychlosti náběhu a zeslabení 5*256=1280ms=1,28s.)
    První řádek používá " jas-" pro snížení hodnoty jasu o 1 při každém opakování smyčky. Pamatujte, že smyčka poběží do jas >=0.Výměna cedulky > na znamení >= do rozsahu jasu jsme zařadili 0. Tento náčrt je modelován níže. //hladce změňte jas int ledPin = 9;//k tomuto pinu je připojena LED void setup() ( pinMode(ledPin, OUTPUT);// inicializace výstupního pinu ) void loop() ( //hladce zvyšte jas (0 až 255 ) pro (int jas=0;jas=0;jas--)( analogWrite(ledPin,jas); delay(5); ) delay(1000);//počkej 1 sekundu //pomalu snižuj jas (255 až 0) pro (int jas=255;jas>=0;jas--)( analogWrite(ledPin,jas); delay(5); ) delay(1000);//čekejte 1 s) )
    Nevypadá to moc dobře, ale myšlenka je jasná.

    RGB LED a Arduino

    RGB LED jsou vlastně tři LED diody různých barev v jednom balení.

    Zapnutím různých LED s různým jasem můžete kombinovat a získat různé barvy. Pro Arduino s 256 gradacemi získáte 256^3=16581375 možných barev. Ve skutečnosti jich bude samozřejmě méně.
    LED, kterou budeme používat jako společnou katodu. Tito. všechny tři LED jsou konstrukčně spojeny katodami na jeden výstup. Tento pin propojíme s pinem GND. Zbývající výstupy, přes omezovací odpory, musí být připojeny k PWM výstupům. Autor použil piny 9 – 11. Bude tedy možné ovládat každou LED samostatně. První skica ukazuje, jak zapnout každou LED jednotlivě.



    //RGB LED - test //spojení pinů int red = 9; int zelená = 10; int modrá = 11; void setup()( pinMode(červená, VÝSTUP); pinMode(modrá, VÝSTUP); pinMode(zelená, VÝSTUP); ) void loop()( //zapnutí/vypnutí červené LED digitalWrite(červená, HIGH); delay( 500) ; digitalWrite(červená, LOW); delay(500); //zapnutí/vypnutí zelené LED digitalWrite(zelená, HIGH); delay(500); digitalWrite(zelená, LOW); delay(500); // zapnout/vypnout modrou LED digitalWrite (modrá, HIGH); delay (500); digitalWrite (modrá, LOW); delay (500); )

    Následující příklad používá příkazy analogWrite() a získat různé náhodné hodnoty jasu pro LED. Uvidíte různé barvy náhodně se měnící.
    //RGB LED - náhodné barvy //kolíkové spoje int red = 9; int zelená = 10; int modrá = 11; void setup()( pinMode(červená, VÝSTUP); pinMode(modrá, VÝSTUP); pinMode(zelená, VÝSTUP); ) void loop()( //výběr náhodné barvy analogWrite(red, random(256)); analogWrite( modrá, náhodný(256)); analogWrite(zelený, náhodný(256)); zpoždění(1000);//počkejte jednu sekundu)

    Náhodně(256)- vrací náhodné číslo v rozsahu od 0 do 255.
    V příloze je vyobrazení náčrtu hladké přechody barvy od červené po zelenou, pak po modrou, červenou, zelenou atd. (Staženo: 326)
    Příklad náčrtu funguje, ale je tam spousta opakujícího se kódu. Kód můžete zjednodušit napsáním vlastního pomocná funkce, který bude plynule přecházet z jedné barvy do druhé.
    Bude to vypadat následovně: (Staženo: 365)
    Podívejme se na definici funkce kousek po kousku. Funkce je volána fader a má dva argumenty. Každý argument je oddělen čárkou a má typ deklarovaný na prvním řádku definice funkce: void fader (int color1, int color2). Můžete vidět, že oba argumenty jsou deklarovány jako int a jsou pojmenováni barva1 A barva2 jako podmínkové proměnné k definování funkce. Neplatné znamená, že funkce nevrací žádné hodnoty, pouze provádí příkazy. Pokud byste měli napsat funkci, která vrací výsledek násobení, vypadala by takto:
    int multiplikátor(int číslo1, int číslo2)( int produkt = číslo1*číslo2; vrátit produkt; )
    Všimněte si, jak jsme deklarovali typ int jako návratový typ místo
    prázdnota.
    Uvnitř funkce jsou příkazy, které jste již použili v předchozím náčrtu, pouze čísla kolíků byla nahrazena barva1 A barva2. Funkce je volána fader, jeho argumenty se počítají jako barva1=červená A barva2 = zelená. Archiv obsahuje kompletní skicu pomocí funkcí (Staženo: 272)

    Knoflík

    Následující skica bude používat tlačítko s normálně otevřenými kontakty bez aretace.


    To znamená, že při nestisknutém tlačítku jím neprotéká proud a po uvolnění se tlačítko vrátí do původní polohy.
    V obvodu je kromě tlačítka použit rezistor. V tomto případě neomezuje proud, ale "vytáhne" tlačítko na 0v (GND). Tito. dokud nebude tlačítko stisknuto, bude Arduino pin, ke kterému je připojen, nízký. Rezistor použitý v obvodu 10 kΩ.


    //určení tlačítka stiskněte int tlačítkoPin = 7; void setup()( pinMode(buttonPin, INPUT);//inicializovat pin na vstup Serial.begin(9600);//inicializovat sériový port ) void loop()( if (digitalRead(buttonPin)==HIGH)(//if tlačítko je stisknuto Serial.println("stisknuto"); // tisk "stisknuto" ) else ( Serial.println("nestisknuto");// else "nestisknuto" ) )
    V této skice je několik nových příkazů.
    -Tento příkaz přijímá hodnotu High (vysoká úroveň) a nízká (nízká úroveň) výstupu, který kontrolujeme. Dříve v setup() musel být tento výstup nakonfigurován jako vstup.
    ; //kde buttonPin je číslo pinu, ke kterému je tlačítko připojeno.
    Sériový port umožňuje Arduinu posílat zprávy do počítače, zatímco samotný řadič provádí program. To je užitečné pro ladění programu, odesílání zpráv do jiných zařízení nebo aplikací. Chcete-li povolit přenos dat přes sériový port (jiný název pro UART nebo USART), musíte jej inicializovat v nastavení ()

    Serial.begin() má pouze jeden argument - to je rychlost přenosu dat mezi Arduinem a počítačem.
    Skica používá příkaz k zobrazení zprávy na obrazovce v Arduino IDE (Nástroje >> Serial Monitor).
    - design umožňuje řídit průběh programu kombinací několika kontrol na jednom místě.
    Pokud (if) digitalRead vrátí hodnotu HIGH, pak se na monitoru zobrazí slovo „stisknuto“. Jinak (jinak) se na monitoru zobrazí slovo „stisknuto“. Nyní můžete zkusit zapnout a vypnout LED stisknutím tlačítka.
    //detekce stisknutí tlačítka s výstupem LED int buttonPin = 7; int ledPin = 8; void setup()( pinMode(buttonPin, INPUT);//tentokrát nastavíme pin tlačítka jako INPUT pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop()( if (digitalRead(buttonPin)= =HIGH)( digitalWrite(ledPin,HIGH); Serial.println("stisknuto"); ) else ( digitalWrite(ledPin,LOW); Serial.println("unpressed"); ) )

    Analogový vstup.

    analogPřečíst umožňuje číst data z jednoho z analogových pinů Arduino a na výstupu je hodnota v rozsahu od 0 (0V) do 1023 (5V). Pokud je napětí na analogovém vstupu 2,5 V, vytiskne se 2,5 / 5 * 1023 = 512
    analogPřečíst má pouze jeden argument - Toto je číslo analogového vstupu (A0-A5). Následující náčrt ukazuje kód pro čtení napětí z potenciometru. K tomu připojte proměnný rezistor s krajními svorkami na kolíky 5V a GND a střední svorku na vstup A0.

    Spusťte následující kód a na sériovém monitoru uvidíte, jak se hodnoty mění v závislosti na otočení knoflíku odporu.
    //analogový vstup int potPin = A0;//středový kolík potenciometru je připojen k tomuto kolíku void setup()( //analogový kolík je standardně povolen jako vstup, takže inicializace není nutná Serial.begin(9600); ) void loop()( int potVal = analogRead(potPin);//potVal je číslo mezi 0 a 1023 Serial.println(potVal); )
    Následující skica kombinuje skicu stisknutí tlačítka a skicu ovládání jasu LED. Z tlačítka se rozsvítí LED a potenciometr bude ovládat jas záře.
    //detekce stisknutí tlačítka s výstupem LED a proměnnou intenzitou int tlačítkoPin = 7; int ledPin = 9; int potPin = A0; void setup()( pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop()( if (digitalRead(buttonPin)==HIGH)(//pokud bylo stisknuto tlačítko int analogVal = analogRead(potPin); int scaledVal = map(analogVal, 0, 1023, 0, 255); analogWrite(ledPin, scaledVal); // zapnout LED s intenzitou nastavenou potenciometrem Serial. println("pressed"); ) else ( digitalWrite(ledPin, LOW);//vypnout, pokud není tlačítko stisknuto Serial.println("unpressed"); ) )

    Arduino je malá deska, která se používá k vytváření různých zařízení, zajímavé vychytávky a dokonce i pro počítačové platformy. Tato deska se nazývá mikrokontrolér, který je open source a se kterým lze použít mnoho aplikací.

    Toto je nejjednodušší a nejlevnější možnost pro začátečníky, amatéry i profesionály. Proces programování probíhá v jazyce Processing / Wiring, který je rychle a snadno zvládnutelný a vychází z jazyka C++ a díky tomu je velmi snadno proveditelný. Podívejme se, co je Arduino, co je užitečné pro začátečníky, jeho možnosti a vlastnosti.

    Arduino je výpočetní platforma nebo deska, která bude fungovat jako mozek pro vaše nová zařízení nebo gadgety. Na základě toho můžete vytvořit obě zařízení s jednoduchá schémata, stejně jako složité pracně náročné projekty, jako jsou roboti nebo drony.

    Základem návrháře je I/O deska (hardware), stejně jako softwarová část. Software konstruktoru založený na Arduinu je reprezentován integrovaným vývojovým prostředím.

    Navenek samotné prostředí vypadá takto:

    Softwarová část Arduina je navržena tak, aby ji zvládl i začínající uživatel, který nemá o programování ani ponětí. Dalším faktorem úspěchu při použití mikrokontroléru byla schopnost pracovat s prádlem, když jsou potřebné části (rezistory, diody, tranzistory atd.) připojeny k ovladači bez nutnosti pájení.

    Většina desek Arduino je připojena přes USB kabel. Takové zapojení umožňuje poskytovat napájení desce a stahovat skici, tzn. mini programy. Proces programování je také velmi jednoduchý. Nejprve uživatel použije k vytvoření editor kódu IDE potřebný program, pak se načte jedním kliknutím v Arduinu.

    Jak koupit Arduino?

    Deska a mnoho částí Arduina jsou vyrobeny v Itálie, takže originální komponenty jsou dost drahé. Existují ale samostatné konstrukční díly nebo stavebnice, tzv. kit-sety, které jsou vyráběny podle italské obdoby, ale za přijatelnější ceny.

    Analog si můžete koupit na domácí trh nebo třeba objednat z Číny. Mnoho lidí ví například o webu Aliexpress. Ale pro ty, kteří se začínají seznamovat s Arduinem, je lepší objednat si první desku v ruském internetovém obchodě. Postupem času můžete přejít na nákup desek a dílů v Číně. Dodací lhůta z této země bude od dvou týdnů do měsíce a například cena velké sady nebude vyšší než 60-70 dolarů.

    Standardní sady obvykle obsahují následující díly:

    • prkénko na chleba;
    • LED diody;
    • rezistory;
    • baterie 9V;
    • regulátory napětí;
    • tlačítka;
    • propojky;
    • maticová klávesnice;
    • rozšiřovací desky;
    • kondenzátory.

    Potřebuji umět programovat?

    První kroky při práci s deskou Arduino začínají naprogramováním desky. Program, který je již připraven pro práci s deskou, se nazývá skica. Nemusíte se bát, že byste neznali programování. Proces vytváření programů je poměrně jednoduchý a na internetu je spousta příkladů skic, protože komunita Arduino je velmi velká.

    Poté, co je program zkompilován, je nahrán (flashován) na desku. Arduino má v tomto případě nepopiratelnou výhodu – ve většině případů se k programování používá USB kabel. Ihned po načtení je program připraven provádět různé příkazy.

    Začátečníci s Arduinem potřebují znát dvě klíčové funkce:

    • založit()– používá se jednou při zapnutí desky, používá se k inicializaci nastavení;
    • smyčka()- používá se neustále, je posledním krokem v nastavení.

    Příklad funkce nahrávání založit():

    Void setup() ( Serial.begin(9600); // Otevřít sériové připojení pinMode(9, INPUT); // Přiřadit pin 9 jako vstupní pinMode(13, OUTPUT); // Přiřadit pin 13 jako výstup )

    Funkce založit() se provede na samém začátku a pouze jednou ihned po zapnutí nebo restartu zařízení.

    Funkce smyčka() provedené po funkci setup(). Smyčka se překládá jako smyčka nebo cyklus. Funkce se bude provádět znovu a znovu. Takže mikrokontrolér ATmega328 (obsahuje jej většina Arduino desek), provede funkci smyčky asi 10 000krát za sekundu.

    Setkáte se také s dalšími funkcemi:

    • pinMode– způsob vstupu a výstupu informací;
    • analogPřečíst- umožňuje číst vznikající analogové napětí na výstupu;
    • analogWrite– zápis analogového napětí na výstupní pin;
    • digitální čtení– umožňuje číst hodnotu digitálního výstupu;
    • digitalWrite– umožňuje nastavit hodnotu digitálního výstupu na nízkou nebo vysokou úroveň;
    • Sériový tisk– převádí data o projektu do pohodlně čitelného textu.

    Kromě toho se začátečníkům na Arduinu bude líbit, že existuje mnoho knihoven pro desky, což jsou kolekce funkcí, které umožňují ovládat desku nebo přídavné moduly. Mezi nejoblíbenější patří:

    • čtení a zápis do úložiště,
    • Připojení k internetu,
    • čtení SD karet,
    • ovládání krokového motoru
    • vykreslování textu
    • atd.

    Jak nastavit Arduino?

    Jednou z hlavních výhod konstruktoru je jeho bezpečnost ohledně uživatelského nastavení. Klíčová nastavení, která jsou potenciálně škodlivá pro Arduino, jsou chráněna a nebudou dostupná.

    Proto i nezkušený programátor může bezpečně experimentovat a měnit různé možnosti a dosáhnout požadovaného výsledku. Ale pro každý případ vřele doporučujeme přečíst si tři důležité materiály o tom, jak desku nezničit:

    Klasický algoritmus ladění Arduino programy vypadá takto:

    • instalace IDE, kterou lze stáhnout níže nebo z webu výrobce;
    • instalace software k používanému PC;
    • spuštění souboru Arduino;
    • zadání vyvinutého programu do okna kódu a jeho přenos na desku (pomocí USB kabelu);
    • v sekci IDE musíte vybrat typ konstruktoru, který se má použít. Můžete to udělat v okně "nástroje" - "tabule";
    • zkontrolujte kód a klikněte na „Další“, poté začne nahrávání do Arduina.
    Verze Okna Operační Systém Mac linux
    1.6.5 zip
    instalátor
    instalátor 32 bitů
    64 bitů
    1.8.2 zip
    instalátor
    instalátor 32 bitů
    64 bitů
    PAŽE
    1.8.5 zip
    instalátor
    Aplikace
    instalátor 32 bitů
    64 bitů
    PAŽE

    Vycpávání ruky

    Aby mohli začátečníci s jistotou implementovat složité nápady, používat softwarové prostředí a Arduino, musí to „chytit“. K tomu se doporučuje začít s jednoduššími úkoly a projekty.

    Nejjednodušší projekt, který můžete udělat, je nechat každou sekundu blikat LED dioda umístěná na desce Arduino naproti portu.

    K tomu potřebujete:

    • připojit designéra k PC,
    • otevřete program, v sekci "služba" vyhledejte blok "sériový port".
    • zvolte požadovaný interval
    • poté musíte přidat kód, který je v Arduino IDE v sekci "Příklady".

    První projekty v Arduinu pro začátečníky mohou být:

    • blikající LED;
    • připojení a ovládání teplotního čidla;
    • připojení a ovládání snímače pohybu;
    • připojení fotorezistoru;
    • ovládání serva.

    První projekt

    Zde se dostáváme k našemu prvnímu projektu. Pojďme připojit Arduino, LED a tlačítko. Tento projekt je skvělý pro začátečníky.

    Naše schéma bude vypadat takto:

    LED se po stisknutí tlačítka rozsvítí a po dalším stisknutí zhasne. Samotný náčrt nebo program pro Arduino bude vypadat takto:

    // piny připojených zařízení int switchPin = 8; int ledPin = 11; // proměnné pro uložení stavu tlačítka a LED boolean lastButton = LOW; boolean currentButton = NÍZKÁ; boolean ledOn = false; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // funkce debounce boolean debounse(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( delay (5 ); current = digitalRead(switchPin); ) návratový proud; ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) lastButton = currentButton ;digitalWrite (ledPin, ledOn); )

    Možná jste si všimli funkce debounce, o které jsme ještě nepsali. Je potřeba pro .

    Poté, co pochopíte počáteční dovednosti práce s deskou, můžete začít realizovat složitější a mnohostranné úkoly. Konstruktor umožňuje vytvořit RC auto, řízenou helikoptéru, vytvořit si vlastní telefon, vytvořit systém atd.

    Pro urychlení vývoje práce s deskou Arduino doporučujeme začít vyrábět zařízení z naší sekce, která popisuje kroky pro vytvoření nej zajímavá zařízení a gadgets.

    Hezký den, Habr. Zahajuji sérii článků, které vám pomohou seznámit se s Arduinem. To ale neznamená, že pokud v tomto podnikání nejste nováčkem, nenajdete pro sebe nic zajímavého.

    Úvod

    Bylo by hezké začít seznámením se s Arduinem. Arduino - hardwarové a softwarové nástroje pro systémy automatizace budov a robotiky. Hlavní výhodou je, že platforma je zaměřena na neprofesionální uživatele. To znamená, že každý si může vytvořit svého vlastního robota bez ohledu na znalosti programování a vlastní dovednosti.

    Start

    Vytvoření projektu na Arduinu se skládá ze 3 hlavních fází: psaní kódu, prototypování (prototypování) a firmware. Abychom mohli napsat kód a poté flashovat desku, potřebujeme vývojové prostředí. Ve skutečnosti je jich docela dost, ale programovat budeme v původním prostředí – Arduino IDE. Samotný kód napíšeme v C ++, přizpůsobeném pro Arduino. Stahovat můžete na oficiálních stránkách. Sketch (sketch) - program napsaný na Arduinu. Podívejme se na strukturu kódu:


    main()( void setup()( ) void loop()( ) )

    Je důležité si uvědomit, že obligátní funkci main() v C++ vytváří samotné Arduino. A výsledek toho, co programátor vidí, je:


    void setup()( ) void loop()( )

    Pojďme se zabývat dvěma povinnými funkcemi. Funkce setup() je volána pouze jednou při startu mikrokontroléru. Odhaluje všechno základní nastavení. Funkce loop() je cyklická. Volá se v nekonečné smyčce po celou dobu chodu mikrokontroléru.

    První program

    Abychom lépe pochopili, jak platforma funguje, napíšeme první program. Tento nejjednodušší program (Blink) spustíme ve dvou verzích. Rozdíl mezi nimi je pouze v montáži.


    int Led = 13; // deklarace proměnné LED na kolíku 13 (výstup) void setup()( pinMode(Led, OUTPUT); // definice proměnné ) void loop()( digitalWrite(Led, HIGH); // přivedení napětí na kolík 13 delay(1000 ); // počkejte 1 sekundu digitalWrite(Led, LOW); // nepřipojujte napětí na pin 13 delay(1000); // počkejte 1 sekundu )

    Princip fungování tohoto programu je poměrně jednoduchý: LED se rozsvítí na 1 sekundu a na 1 sekundu zhasne. U první možnosti nepotřebujeme sestavovat rozložení. Protože na platformě Arduino je na pin 13 připojena vestavěná LED.

    Firmware pro Arduino

    Abychom mohli nahrát skicu do Arduina, musíme ji nejprve jednoduše uložit. Dále, abyste se vyhnuli problémům při načítání, musíte zkontrolovat nastavení programátoru. Pro toto horní panel vyberte kartu "Nástroje". V části Poplatek vyberte svůj poplatek. Může to být Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo nebo další. Také v sekci "Port" musíte vybrat svůj připojovací port (port, ke kterému jste připojili svou platformu). Po těchto krocích můžete skicu nahrát. Chcete-li to provést, klikněte na šipku nebo v záložce "Skica" vyberte "Stáhnout" (můžete také použít klávesovou zkratku "Ctrl + U"). Firmware desky byl úspěšně dokončen.

    Prototypování/Prototypování

    K sestavení rozložení potřebujeme následující prvky: LED, rezistor, kabeláž (propojky), prkénko na krájení (Breadboard). Aby se nic nespálilo a aby vše úspěšně fungovalo, musíte se vypořádat s LED. Má dvě "tlapky". Krátké - mínus, dlouhé - plus. Na krátkou připojíme „zem“ (GND) a rezistor (abychom snížili proud, který jde do LED, aby se nespálila), a na dlouhou napájíme (připojíme na pin 13). Po připojení nahrajte náčrt na tabuli, pokud jste tak již neučinili. Kód zůstává stejný.


    Toto je konec prvního dílu. Děkuji za pozornost.

    12 02.2017

    V tomto článku vám povím o něčem, bez čeho by znalost nejzajímavějšího světa programování pomocí hardwarových platforem byla neúplná, konkrétně o elektronickém návrháři Arduino, který bude vynikajícím pomocníkem při studiu výpočetní techniky a automatizaci různých procesů. To se samozřejmě dá naučit čistě teoreticky, ale při použití nástroje jako je Arduino budou první kroky při zvládnutí programování a nastavování robotiky ještě jednodušší než při samostudiu s využitím improvizovaných materiálů a odborné literatury.

    Z tohoto článku se dozvíte:

    Krásný den všem milovníkům techniky! Gridin Semyon je s vámi. Dnes se podíváme na to, s jakým vybavením začneme programovat nejběžnější desky.

    Arduino - co jsi?

    Naši starší čtenáři si jistě pamatují, že kdysi v SSSR se vyráběly různé vývojové stavebnice pro děti. Patří mezi ně soubor mladého chemika, biologa, radioamatéra... Poslední variace zaujala především ty, kteří měli slabost pro techniku ​​a samostatný design různých věcí.

    Čas plynul, objevilo se mnoho technologií a takové věci se nejen zlepšily, ale také se staly dostupnými pro kohokoli. Rozsah fantazie dnes není omezen na softwarové rámce a Arduino je toho názorným příkladem.

    Sada Arduino je elektronická platforma o velikosti krabičky od sirek. K této platformě lze připojit různé moduly - motory, žárovky, senzory, jedním slovem vše, co je napájeno elektřinou a lze tak či onak připojit k mikroobvodu.

    Pro koho to je?

    Kdo potřebuje Arduino?

    • Děti a teenageři se zájmem o robotiku;
    • Studenti specializovaných technických univerzit a vysokých škol;
    • Profesionálové, kteří si chtějí připomenout staré dovednosti;
    • Učitelé učit své studenty;
    • Všichni technicky zdatní lidé, kteří se chtějí bavit.

    Naučit se programovat, okamžitě aplikovat získané znalosti v praxi; napsat diplomový projekt; vytvořit chytrý systém pro domácnost, která vám umožní na dálku ovládat spotřebiče a osvětlení; navrhování robota je daleko od toho úplný seznam možnosti, které nabízí Arduino. Jsou opravdu neomezené a vše je omezeno pouze vaší fantazií! Zároveň je systém přístupný i začátečníkům díky široké komunitě a přítomnosti mnoha lekcí Arduina na webu, včetně ruštiny.

    První setkání. Nastavení počítače

    Než se postaráte o problém připojení zařízení k PC, měli byste si prostudovat otázku, které Arduino je lepší koupit, protože existuje mnoho verzí tohoto konstruktoru pro geeky. Nejoblíbenější a zároveň, který stojí asi 25-30 $. Existují však také dražší, pokročilé verze, které mohou komunikovat se zapnutými smartphony založené na Androidu, zařízení na Linuxu, se zvýšeným počtem portů, výkonnějším hardwarem, které jsou vhodné spíše pro uživatele, kteří jsou v této věci již zkušení. Pro nás je vhodnější varianta Uno nebo jí podobná (například Leonardo). Nenechte se zastrašit 32 kilobajty paměti a procesorem s frekvencí pouhých 16 megahertzů – to je na první průzkum více než dost!

    Chcete-li naprogramovat platformu a vidět vše na displeji předem určené akce, používá se jeden z nejrozšířenějších programovacích jazyků C++. Práce s ním se provádí pomocí oficiálního prostředí Arduino IDE, je zcela zdarma pro nekomerční použití. Existují další možnosti, složitější a sofistikovanější, ale je lepší začít s možností doporučenou vývojářem.

    Připojení a nahrání programů do paměti se provádí přes USB port. Moduly lze propojit mnoha způsoby - včetně použití speciálního prkénka, propojek, vodičů... Není nutné používat páječku. Zapojit můžete téměř cokoliv – jakákoliv gadget se může stát plnohodnotnou součástí vašeho designu! Zároveň můžete vytvářet i vícevrstvé „sendviče“ z tzv. přídavné desky, rozšiřující možnosti hlavního mikroobvodu. Hlavní věc je základní proces v srdci samotného Uno, zbytek slouží pouze k získání dalších funkcí. Může to být například připojení k internetu nebo pohon výkonného motoru.

    Pomocí IDE

    Ty napsané pro platformu Arduino se nazývají skici. Skicu můžete vytvořit pomocí integrovaného vývojového prostředí, zkráceně - IDE (oficiální verze se tak nazývá). S nainstalovanými ovladači a tímto prostředím můžete udělat svůj první krok.

    IDE vám poskytuje již napsané jednoduché náčrty. Otevřete jeden z nich a v seznamu desek vyberte své Arduino a poté nahrajte skicu do zařízení pomocí příkazu Nahrát. To vše se děje velmi jednoduše – rozhraní vývojového prostředí je grafické, je intuitivní.

    Na webu je také velké množství hotových náčrtů. Například na Wikipedii v článku o Arduinu najdete hotový příklad program, který nastaví blikající LED. Na specializovaných zdrojích najdete neuvěřitelně složité algoritmy, které z Arduina dělají skutečného robota. Chcete-li se naučit, jak takové psát, potřebujete určitý čas a vytrvalost, ale můžete se je naučit od úplného začátku, abyste pochopili co nejvíce principů programování platforem. Pokud chcete napsat elementární program a nevíte jak, pak .

    S pozdravem Gridin Semyon

    Série článků a návodů s radioamatérskými experimenty na Arduinu pro začátečníky. To je taková radioamatérská hračka-designér, ze které bez páječky, leptání desek plošných spojů a podobně sestaví kdejaká konvice v elektronice plnohodnotné pracovní zařízení, vhodné jak pro profesionální prototypování, tak pro amatérské experimenty při studovat elektroniku.


    Deska Arduino pro je určena především pro výuku začínajících radioamatérů základům programování mikrokontrolérů a vytváření mikrokontrolérových zařízení vlastníma rukama bez vážné teoretické průpravy. středa Vývoj Arduina umožňuje zkompilovat a načíst hotový programový kód do paměti desky. Stažení kódu je navíc velmi jednoduché.

    Arduino kde začít pro začátečníky

    Za prvé, pro práci s deskou Arduino si začínající elektronik potřebuje stáhnout vývojový program Arduino, skládá se z vestavěného textového editoru, ve kterém pracujeme s programovým kódem, oblastí zpráv, výstupním textovým oknem (konzole ), panel nástrojů s tlačítky pro často používané příkazy a více nabídek. Pro stahování vašich programů a komunikaci je tento program přes standard USB kabel se připojuje k desce Arduino.


    Kód napsaný v prostředí Arduino se nazývá skica. Je napsán v textovém editoru, který má speciální nástroje pro vkládání / vyjímání, nahrazování / vyhledávání textu. Během ukládání a exportu se v oblasti zpráv (viz obrázek v prvním návodu pro začátečníky hned níže) zobrazují vysvětlení a mohou se také zobrazovat chyby. Konzole zobrazuje zprávy Arduina, včetně úplných chybových zpráv a dalších užitečné informace. Tlačítka panelu nástrojů vám umožňují zkontrolovat a zaznamenat náčrt, otevřít, vytvořit a uložit, otevřít monitorování sériové sběrnice a mnoho dalšího.

    Pojďme tedy k prvnímu. Lekce Arduina schémata pro začínající elektrotechniky.

    Ovladač Arduino UNO pro pohodlí začátečníků již má odpor a LED připojenou na pin 13 konektoru, takže v prvním experimentu nepotřebujeme žádné externí rádiové prvky.


    Načtením kódu umožňuje Arduino našemu programu podílet se na inicializaci systému. Za tímto účelem naznačíme mikrokontroléru příkazy, které provede v okamžiku počátečního bootování, a poté na ně úplně zapomeneme (tj. tyto příkazy provede Arduino pouze jednou při spuštění). A právě za tímto účelem v našem kódu alokujeme blok, ve kterém jsou tyto příkazy uloženy. void setup(), nebo spíše v tom prostoru uvnitř složených závorek této funkce, viz programovací náčrt.

    Nezapomeňte na kudrnatá rovnátka! Ztráta byť jen jednoho z nich způsobí, že celý náčrt bude zcela nefunkční. Nedávejte však ani závorky navíc, protože také dojde k chybě.

    Stažení kódu:
    Náčrt s komentáři a vysvětleními v souboru 001-1_mig-led.ino

    Funkce void loop() zde zadáváme příkazy, které poběží, dokud bude Arduino zapnuté. Po spuštění provádění od prvního příkazu se Arduino dostane na úplný konec a okamžitě skočí na začátek, aby opakoval stejnou sekvenci. A tak nekonečněkrát, dokud deska přijímá energii. Ve svém jádru je void loop hlavní funkcí, vstupním bodem do Arduina.


    Funkce zpoždění(1000) zpožďuje zpracování programu o 1000 milisekund. To vše jde ve věčném koloběhu smyčka().

    Hlavní závěr po vnímání našeho prvního programu na Arduinu: Pomocí funkcí void loop a void setup předáme naše instrukce mikrokontroléru. Vše v bloku nastavení bude provedeno pouze jednou. Obsah smyčkového modulu se bude opakovat ve smyčce, dokud zůstane Arduino zapnuté.

    V předchozím programu byla mezi rozsvícením a zhasnutím LED jednosekundová prodleva. V nejjednodušším kódu začínajícího arduinisty použitého výše bylo jedno velké mínus. Abychom udrželi pauzu mezi zapnutím a vypnutím LED během jedné sekundy, použili jsme funkci zpoždění() a proto v tu chvíli není ovladač schopen provádět další příkazy v hlavní funkci smyčka(). Oprava kódu ve funkci smyčka() uvedený níže tento problém řeší.

    Namísto nastavení hodnoty na HIGH a poté na LOW získáme hodnotu ledPin a invertujeme ji. Předpokládejme, že pokud byl VYSOKÝ, pak se stane NÍZKÝ atd.

    Druhý varianta kódu arduino pro ovládání led Tady:

    Poté můžete funkci nahradit zpoždění(). Místo toho je lepší použít funkci milis(). Vrací počet milisekund, které uplynuly od spuštění programu. Funkce se přeteče přibližně po 50 dnech spuštění kódu.

    Podobná funkce je micros(), která vrací počet mikrosekund, které uplynuly od spuštění kódu. Funkce se vrátí na nulu po 70 minutách spuštění programu.

    Samozřejmě to přidá pár řádků kódu do našeho náčrtu, ale rozhodně to z vás udělá zkušenějšího programátora a zvýší potenciál vašeho Arduina. K tomu se stačí naučit používat funkci milis.

    Tomu by mělo být jasné nejjednodušší funkce zpoždění pozastaví provádění celého programu Arduino, takže během této doby nebude moci provádět žádné úkoly. Místo toho, abychom pozastavili celé naše programy, můžeme spočítat, kolik času uplynulo před dokončením akce. To je pěkně implementováno pomocí funkce millis(). Aby bylo vše srozumitelné, zvážíme následující možnost blikání LED bez časové prodlevy.

    Začátek tohoto programu je stejný jako u jakéhokoli jiného standardního náčrtu Arduina.


    Tento příklad používá dva digitální I/O Arduino. LED je připojena na pin 8, který je nakonfigurován jako OUTPUT. K 9 je připojeno tlačítko, které je nakonfigurováno jako INPUT. Když stiskneme tlačítko, pin 9 je nastaven na HIGH a program přepne pin 8 na HIGH, čímž se rozsvítí LED. Uvolněním tlačítka se devátý výstup resetuje do stavu LOW. Kód poté přepne kolík 8 na LOW a zhasne kontrolka.

    Pro ovládání pěti LED budeme používat různé manipulace s porty Arduino. Za tímto účelem zapíšeme data přímo do portů Arduino, což vám umožní nastavit hodnoty pro LED pomocí pouze jedné funkce.

    Arduino UNO má tři porty: B(digitální vstupy/výstupy 8 až 13); C(analogové vstupy); D(Digitální I/O 0 až 7)

    Každý port řídí tři registry. První DDR upřesňuje, co to bude pin vstup nebo odejít. Pomocí druhého registru PORT můžete nastavit pin do stavu HIGH nebo LOW. Pomocí třetího si můžete přečíst informace o stavu nohou Arduina, pokud fungují jako vstup.

    Pro činnost obvodu použijeme port B. K tomu nastavte všechny piny portu jako digitální výstupy. Port B má celkem 6 pinů. Musí být nastaveny bity registru DDRB "1" pokud bude kolík použit jako VÝSTUP a vstup "0" pokud plánujeme použít pin jako vstup (INPUT). Bity portů jsou číslovány od 0 do 7, ale ne vždy mají všech 8 pinů

    Řekněme: DDRB = B00111110;// nastaví piny 1 až 5 portu B jako výstupy a 0 jako vstup.

    V našem okruhu běžících světel používáme pět výstupů: DDRB = B00011111; // nastaví piny portu B 0 až 4 jako výstupy.

    Pro zápis dat na port B je potřeba použít registr PORTB. První LED můžete rozsvítit pomocí ovládacího příkazu: PORTB=B00000001;, první a čtvrtá LED: PORTB=B00001001 a tak dále

    Existují dva operátory binárního posunu: levý a pravý. Levý posuvný operátor způsobí, že se všechny datové bity posunou doleva, respektive pravý posuvný operátor je přesune doprava.

    Příklad:

    varA = 1; // 00000001
    varA = 1 varA = 1 varA = 1

    Nyní se vraťme ke zdrojovému kódu našeho programu. Musíme zavést dvě proměnné: nahoruDolů bude obsahovat hodnoty, kam se posunout - nahoru nebo dolů a druhou cylon bude indikovat, která LED se rozsvítí.

    Konstrukčně má taková LED jednu obecný závěr a tři špendlíky pro každou barvu. Níže je schéma připojení RGB LED k desce Arduino se společnou katodou. Všechny odpory použité v připojovacím obvodu musí mít stejnou hodnotu od 220 do 270 ohmů.


    Pro připojení se společnou katodou bude schéma zapojení pro tříbarevnou LED téměř stejné, kromě toho, že společný kolík nebude připojen k zemi (gnd na zařízení), ale ke svorce +5 voltů. Výstupy Červený, zelený a modrý v obou případech jsou připojeny k digitálním výstupům regulátoru 9, 10 a 11.

    Připojte externí LED k devátému kolíku Arduino UNO přes odpor 220 ohmů. Pro plynulé ovládání jasu toho druhého používáme funkci analogWrite(). Poskytuje výstup signálu PWM do nohy regulátoru. A tým pinMode() volání není nutné. Protože analogWrite(pin,hodnota) obsahuje dva parametry: pin - číslo pinu pro výstup, value - hodnota od 0 do 255.

    Kód:
    /*
    Tréninkový příklad pro začátečníka arduina odhaluje možnosti příkazu analogWrite () k implementaci efektu Fade LED.
    */
    int jas = 0; // Jas LED
    int fadeAmount = 5; // krok jasu
    unsigned long currentTime;
    dlouhá smyčka bez znaménkaTime;

    Void setup() (
    pinMode(9, OUTPUT); // nastavení pinu 9 jako výstupu
    aktualni cas = millis();
    loopTime = currentTime;
    }

    void loop() (
    aktualni cas = millis();
    if(currentTime >= (loopTime + 20))(
    analogWrite(9, jas); // nastavení hodnoty na pinu 9

    Brightness = jas + fadeAmount; // přidat krok změny jasu, který bude nastaven v dalším cyklu

    // pokud min. nebo max. hodnoty, pak jdeme opačným směrem (zpětně):
    if (jas == 0 || jas == 255) (
    fadeAmount = -fadeAmount ;
    }
    loopTime = currentTime;
    }
    }

    Funkční Arduino s kodérem

    Kodér je navržen tak, aby převáděl úhel natočení na elektrický signál. Z toho dostáváme dva signály (A a B), které jsou fázově opačné. V tomto tutoriálu použijeme kodér SparkFun COM-09117, který má dvanáct pozic na otáčku (každá pozice má přesně 30°). Obrázek níže jasně ukazuje, jak na sobě výstup A a B závisí, když se kodér pohybuje ve směru nebo proti směru hodinových ručiček.

    Pokud signál A přejde z kladného na nulu, odečteme hodnotu výstupu B. Je-li výstup B v tu dobu v kladném stavu, pak se kodér pohybuje ve směru hodinových ručiček, pokud B vydává nulovou úroveň, pak se kodér posune v opačným směrem. Odečtením obou výstupů jsme schopni pomocí mikrokontroléru vypočítat směr otáčení a počítáním impulsů z výstupu A kodéru úhel natočení.

    V případě potřeby můžete pomocí výpočtu frekvence určit, jak rychle se kodér otáčí.

    Pomocí kodéru v našem tutoriálu budeme ovládat jas LED pomocí PWM výstupu. Pro čtení dat z kodéru použijeme metodu založenou na softwarových časovačích, o kterých jsme již hovořili.

    Vzhledem k tomu, že v nejrychlejším případě můžeme otočit knoflíkem kodéru o 180° za 1/10 sekundy, bude to 6 pulzů za 1/10 sekundy, nebo 60 pulzů za jednu sekundu.

    Ve skutečnosti není možné otáčet rychleji. Protože musíme sledovat všechny půlcykly, frekvence by se měla pohybovat kolem 120 Hertzů. Pro úplnou jistotu vezměme 200 Hz.

    Protože v tomto případě používáme mechanický kodér, je možný odskok kontaktu a nízká frekvence dokonale filtruje takový odskok.


    Podle signálů softwarového časovače je nutné neustále porovnávat aktuální hodnotu výstupu A kodéru s předchozí hodnotou. Pokud se stav změní z kladného na nulový, pak dotazujeme stav výstupu B. V závislosti na výsledku dotazování stavu zvyšujeme nebo snižujeme čítač hodnoty jasu VEDENÝ. Níže je uveden programový kód s časovým intervalem asi 5 ms (200 Hz):

    Arduino kód pro začátečníky:
    /*
    ** Kodér
    ** K ovládání jasu LED se používá kodér od Sparkfun
    */

    int jas = 120; // Jas LED, začínající na polovině
    int fadeAmount = 10; // krok jasu
    unsigned long currentTime;
    dlouhá smyčka bez znaménkaTime;
    const int pin_A = 12; // pin 12
    const int pin_B = 11; // pin 11
    unsigned char kodér_A;
    unsigned char kodér_B;
    unsigned char encoder_A_prev=0;
    void setup()(
    // deklarovat pin 9 jako výstup:
    pinMode(9, OUTPUT); // nastavení pinu 9 jako výstupu
    pinMode(pin_A, INPUT);
    pinMode(pin_B, INPUT);
    aktualni cas = millis();
    loopTime = currentTime;
    }
    void loop() (
    aktualni cas = millis();
    if(currentTime >= (loopTime + 5))( // kontrola stavů každých 5 ms (frekvence 200 Hz)
    kodér_A = digitalRead(pin_A); // čtení stavu výstupu kodéru
    kodér_B = digitalRead(pin_B); // výstup kodéru B
    if((!encoder_A) && (encoder_A_prev))( // pokud se stav změní z kladného na nulu
    if(kodér_B) (
    // výstup B je kladný, takže rotace je ve směru hodinových ručiček
    // zvýšení jasu záře, ne více než 255
    if(jas + fadeAmount )
    jiný(
    // výstup B je v nulovém stavu, takže rotace je proti směru hodinových ručiček
    // snížení jasu, ale ne pod nulu
    if(jas - fadeAmount >= 0) jas -= fadeAmount;
    }

    }
    kodér_A_předchozí = kodér_A; // uložit hodnotu A pro další cyklus

    analogWrite(9, jas); // nastavíme jas na devátý kolík

    LoopTime = aktuální čas;
    }
    }

    V tomto příkladu pro začátečníky se podíváme na práci s piezo bzučákem pro generování zvuků. Chcete-li to provést, vezměte piezoelektrický snímač, který vám umožní generovat zvukové vlny ve frekvenčním rozsahu 20 Hz - 20 kHz.

    Jedná se o takový amatérský rádiový design, kde jsou LED diody umístěny po celém objemu. Pomocí tohoto schématu můžete generovat různé světelné a animační efekty. Komplexní schémata jsou dokonce schopné zobrazovat různá trojrozměrná slova. Jinými slovy, toto je elementární prostorový monitor

    Servo je hlavním prvkem při konstrukci různých rádiem řízených modelů a jeho ovládání pomocí ovladače je jednoduché a pohodlné.


    Ovládací program je jednoduchý a intuitivní. Začíná připojením souboru obsahujícího všechny potřebné příkazy pro ovládání serva. Dále vytvoříme servo objekt, například servoMain. Další funkce setup(), ve kterém určíme, že servo je připojeno k devátému výstupu regulátoru.

    Kód:
    /*
    Servo Arduino
    */
    #zahrnout
    Servo hlavní; // Objekt serva

    Void setup()
    {
    servoMain.attach(9); // Servo připojeno k pinu 9
    }

    Prázdná smyčka()
    {
    servoMain.write(45); // Otočte servo doleva o 45°
    zpoždění (2000); // Počkejte 2000 milisekund (2 sekundy)
    servoMain.write(0); // Otočení serva doleva o 0°
    zpoždění(1000); // Pauza 1s.

    zpoždění(1500); // Počkejte 1,5 s.
    servoMain.write(135); // Otočte servo doprava o 135°
    zpoždění(3000); // Pauza 3 s.
    servoMain.write(180); // Otočte servo doprava o 180°
    zpoždění(1000); // Počkejte 1 s.
    servoMain.write(90); // Otočte servo o 90°. středová poloha
    zpoždění(5000); // Pauza 5 s.
    }

    V hlavní funkci smyčka(), dáváme povely servomotoru s pauzami mezi nimi.

    Obvod čítače Arduino na 7segmentovém indikátoru

    Tento jednoduchý projekt Arduino pro začátečníky je vytvořit obvod čítače na běžném katodovém 7segmentovém displeji. Programový kód, níže, vám umožní začít počítat od 0 do 9, když kliknete na tlačítko.

    Sedmisegmentový indikátor - je kombinací 8 LED (poslední je zodpovědná za tečku) se společnou katodou, kterou lze zapnout v požadovaném pořadí tak, aby vytvářely čísla. Je třeba poznamenat, že v tomto obvodu, viz obrázek níže, jsou piny 3 a 8 vyhrazeny pro katodu.


    Vpravo je tabulka zobrazující mapování mezi piny Arduino a LED indikátory.

    Kód pro tento projekt:

    čísla bajtů = (
    B11111100, B01100000, B11011010, B11110010, B01100110,
    B10110110, B10111110, B11100000, B11111110, B11100110
    };
    void setup()(
    for(int i = 2; i pinMode(i, OUTPUT);
    }
    pinMode(9, INPUT);
    }
    int čítač = 0;
    bool go_by_switch = true;
    int last_input_value = NÍZKÁ;
    void loop() (
    if(go_by_switch) (
    int switch_input_value = digitalRead(9);
    if(last_input_value == LOW && switch_input_value == HIGH) (

    }
    last_input_value = vstupní_hodnota přepínače;
    ) jinak (
    zpoždění(500);
    čítač = (počítadlo + 1) % 10;
    }
    zapiscislo(počítadlo);
    }

    Void writeNumber(int number) (
    if (číslo 9) (
    vrátit se;
    }
    bytemask = čísla;
    byte currentPinMask = B10000000;
    for(int i = 2; i if(maska ​​& aktuálníPinMask) digitalWrite(i,HIGH);
    else digitalWrite(i,LOW);
    currentPinMask = currentPinMask >> 1;
    }
    }

    Potenciál desek Arduino můžete výrazně rozšířit pomocí přídavné moduly, který lze připojit na piny PIN téměř jakéhokoli zařízení. Zvažte nejoblíbenější a nejzajímavější rozšiřující moduly nebo, jak se jim také říká, štíty.