Jednoduché obvody Arduino pre začiatočníkov. Jednoduché obvody na Arduine pre začiatočníkov Návrhy na Arduine

Oneskorenia v Arduine hrajú veľmi veľkú úlohu. Bez nich nemôže fungovať ani ten najjednoduchší príklad Blink, ktorý po určitom čase zabliká LED. Ale väčšina začínajúcich programátorov vie málo o časových oneskoreniach a používa iba oneskorenie Arduino bez toho, aby poznali vedľajšie účinky tohto príkazu. V tomto článku budem podrobne hovoriť o funkciách časovania a o tom, ako ich používať v Arduino IDE.

V Arduine existuje niekoľko rôznych príkazov, ktoré sú zodpovedné za prácu s časom a pauzami:

  • meškanie ()
  • delayMicroseconds()
  • milis()
  • mikro()

Líšia sa presnosťou a majú svoje vlastné charakteristiky, ktoré by sa mali brať do úvahy pri písaní kódu.

Použitie funkcie oneskorenia arduina

Syntax

Arduino delay je najjednoduchší príkaz a najčastejšie ho používajú začiatočníci. V podstate ide o oneskorenie, ktoré pozastaví program na počet milisekúnd uvedený v zátvorkách. (Jedna sekunda je 1000 milisekúnd.) Maximálna hodnota môže byť 4294967295 ms, čo sa približne rovná 50 dňom. Pozrime sa na jednoduchý príklad, ktorý názorne ukazuje, ako tento príkaz funguje.

Void setup() ( pinMode(13, OUTPUT); ) void loop() ( digitalWrite(13, HIGH); // odoslanie vysokého signálu na pin 13 oneskorenie (10000); // pauza 10 000 ms alebo 10 sekúnd digitalWrite13, LOW) ; // odošle nízky signál na pin 13 delay(10000); // pauza 10 000 ms alebo 10 sekúnd)

V metóde nastaviťŠpecifikujeme, že pin 13 bude použitý ako výstup. V hlavnej časti programu sa na pin najprv pošle vysoký signál, potom urobíme oneskorenie 10 sekúnd. Počas tejto doby sa zdá, že program je pozastavený. Potom zaznie slabý signál a opäť dôjde k oneskoreniu a všetko sa začne odznova. Výsledkom je, že kolík je striedavo napájaný buď 5 V alebo 0.

Musíte jasne pochopiť, že počas pauzy s použitím oneskorenia je práca programu pozastavená, aplikácia nebude prijímať žiadne údaje zo senzorov. Toto je najväčšia nevýhoda použitia funkcie oneskorenia Arduina. Toto obmedzenie môžete obísť pomocou prerušení, ale o tom si povieme v samostatnom článku.

Príklad oneskorenia s blikaním LED

Príklad obvodu na ilustráciu toho, ako funguje funkcia oneskorenia.
Môžete zostaviť obvod s LED a odporom. Potom budeme mať štandardný príklad - blikanie LED. K tomu je potrebné pripojiť LED s kladným kontaktom na pin, ktorý sme označili ako výstup. Voľnú nohu LED pripojíme k zemi cez odpor približne 220 Ohmov (je možné aj trochu viac). Polaritu môžete určiť pohľadom na jeho vnútro. Veľký pohár vo vnútri je spojený s mínusom a malá noha s plusom. Ak je vaša LED nová, potom môžete určiť polaritu podľa dĺžky vodičov: dlhá noha je plus, krátka noha je mínus.

funkcia delayMicroseconds

Táto funkcia je úplnou analógiou oneskorenia, okrem toho, že jej jednotkami merania nie sú milisekundy, ale mikrosekundy (za 1 sekundu je to 1 000 000 mikrosekúnd). Maximálna hodnota bude 16383, čo sa rovná 16 milisekúnd. Rozlíšenie je 4, to znamená, že číslo bude vždy násobkom štyroch. Príklad úryvku by vyzeral takto:

DigitalWrite(2, VYSOKÉ); // odošle vysoký signál na pin 2 delayMicroseconds(16383); // pauza 16383 µs digitalWrite(2, LOW); // odošle nízky signál na pin 2 delayMicroseconds(16383); // pauza 16383 µs

Problém s oneskorenímMikrosekundy je úplne rovnaký ako s oneskorením - tieto funkcie program úplne „zavesia“ a na chvíľu doslova zamrzne. V súčasnosti nie je možné pracovať s portami, čítať informácie zo senzorov a vykonávať matematické operácie. Táto možnosť je vhodná pre blikajúce svetlá, ale skúsení používatelia ju nepoužívajú na veľké projekty, pretože takéto poruchy tam nie sú potrebné. Preto je oveľa lepšie použiť funkcie popísané nižšie.

Funkcia milis namiesto oneskorenia

Funkcia millis() vám umožní vykonať oneskorenie bez oneskorenia na Arduine, čím obídete nedostatky predchádzajúcich metód. Maximálna hodnota parametra milis je rovnaká ako hodnota funkcie oneskorenia (4294967295 ms alebo 50 dní).

Pomocou milis nezastavíme vykonávanie celého náčrtu, ale jednoducho naznačíme, ako dlho má Arduino jednoducho „obísť“ presný blok kódu, ktorý chceme pozastaviť. Na rozdiel od delay milis nič nezastaví sám od seba. Tento príkaz nám jednoducho vráti zo vstavaného časovača mikrokontroléra počet milisekúnd, ktoré uplynuli od začiatku. Pri každom volaní do slučky sami meriame čas, ktorý uplynul od posledného volania nášho kódu a ak je časový rozdiel menší ako požadovaná pauza, potom kód ignorujeme. Akonáhle bude rozdiel väčší ako požadovaná pauza, spustíme kód, získame aktuálny čas pomocou rovnakých milis a zapamätáme si ho - tento čas bude novým štartovacím bodom. V ďalšom cykle bude odpočítavanie už od nového bodu a opäť budeme kód ignorovať, kým nový rozdiel medzi milis a našou predtým uloženou hodnotou opäť nedosiahne požadovanú pauzu.

Oneskorenie bez oneskorenia pomocou milis vyžaduje viac kódu, ale s jeho pomocou môžete blikať LED a pozastaviť náčrt bez zastavenia systému.

Tu je príklad, ktorý jasne ilustruje prácu tímu:

Nepodpísané dlhé načasovanie; // Premenná na uloženie referenčného bodu void setup() ( Serial.begin(9600); ) void loop() ( /* V tomto bode začína vykonávanie analógového oneskorenia() Vypočítajte rozdiel medzi aktuálnym momentom a predtým uložený referenčný bod. Ak je rozdiel väčší ako požadovaná hodnota, vykonajte kód. Ak nie, nerobte nič */ if (millis() - časovanie > 10000)( // Namiesto 10000 nahraďte hodnotu pauzy, ktorú potrebujete časovanie = millis(); Serial.println ("10 sekúnd") ; ) )

Najprv predstavíme premennú časovania, ktorá bude uchovávať počet milisekúnd. Štandardne je hodnota premennej 0. V hlavnej časti programu skontrolujeme podmienku: ak je počet milisekúnd od štartu mikrokontroléra mínus číslo zapísané v časovacej premennej väčší ako 10000, potom vykoná sa akcia odoslania správy na monitor portu a aktuálna časová hodnota sa zapíše do premennej. V dôsledku činnosti programu sa každých 10 sekúnd na monitore portu zobrazí správa 10 sekúnd. Táto metóda vám umožňuje blikať LED bez oneskorenia.

Funkcia Micros namiesto oneskorenia

Táto funkcia môže tiež vykonať oneskorenie bez použitia príkazu oneskorenia. Funguje presne rovnako ako milisekunda, no s rozlíšením 4 μs počíta skôr mikrosekundy ako milisekunda. Jeho maximálna hodnota je 4294967295 mikrosekúnd alebo 70 minút. Ak pretečie, hodnota sa jednoducho vynuluje na 0, nezabudnite na to.

Zhrnutie

Platforma Arduino nám poskytuje niekoľko spôsobov, ako implementovať oneskorenie v našom projekte. Pomocou oneskorenia môžete rýchlo pozastaviť vykonávanie náčrtu, ale zároveň zablokujete činnosť mikrokontroléra. Použitie príkazu millis vám umožní robiť bez oneskorenia v Arduine, ale bude to vyžadovať trochu viac programovania. Vyberte si najlepšiu metódu v závislosti od zložitosti vášho projektu. Spravidla sa v jednoduchých náčrtoch a s oneskorením menším ako 10 sekúnd používa oneskorenie. Ak je prevádzková logika zložitejšia a je potrebné veľké oneskorenie, potom je lepšie použiť milis namiesto oneskorenia.

“ predstavuje tréningový kurz „Arduino pre začiatočníkov“. Séria pozostáva z 10 lekcií a doplnkového materiálu. Lekcie obsahujú textové pokyny, fotografie a inštruktážne videá. V každej lekcii nájdete zoznam požadovaných komponentov, výpis programu a schému zapojenia. Po dokončení týchto 10 základných lekcií budete môcť prejsť k zaujímavejším modelom a stavaniu robotov na báze Arduina. Kurz je určený pre začiatočníkov, na jeho začatie nie sú potrebné žiadne ďalšie informácie z elektrotechniky alebo robotiky.

Stručné informácie o Arduine

Čo je Arduino?

Arduino (Arduino) je hardvérová výpočtová platforma, ktorej hlavnými komponentmi sú vstupno-výstupná doska a vývojové prostredie. Arduino možno použiť na vytváranie samostatných interaktívnych objektov alebo na pripojenie k softvéru bežiacemu na počítači. Arduino je jednodoskový počítač.

Ako sú Arduino a roboty prepojené?

Odpoveď je veľmi jednoduchá – Arduino sa často používa ako robotický mozog.

Výhodou dosiek Arduino oproti podobným platformám je ich relatívne nízka cena a takmer rozšírená distribúcia medzi amatérmi aj profesionálmi v robotike a elektrotechnike. Akonáhle sa dostanete do Arduina, nájdete podporu v akomkoľvek jazyku a rovnako zmýšľajúcich ľudí, ktorí odpovedia na vaše otázky a prediskutujú váš vývoj.

Lekcia 1. Blikajúca LED na Arduine

V prvej lekcii sa naučíte, ako pripojiť LED k Arduinu a ovládať ho, aby blikal. Toto je najjednoduchší a najzákladnejší model.

Dióda vyžarujúca svetlo- polovodičové zariadenie, ktoré pri prechode elektrického prúdu v priepustnom smere vytvára optické žiarenie.

Lekcia 2. Pripojenie tlačidla na Arduine

V tomto návode sa naučíte, ako pripojiť tlačidlo a LED k Arduinu.

Po stlačení tlačidla sa LED rozsvieti, po stlačení tlačidla sa nerozsvieti. Toto je tiež základný model.

Lekcia 3. Pripojenie potenciometra na Arduino

V tomto návode sa naučíte, ako pripojiť potenciometer k Arduinu.

Potenciometer- Toto odpor s nastaviteľným odporom.Potenciometre sa používajú ako regulátory rôznych parametrov - hlasitosť zvuku, výkon, napätie atď.Toto je tiež jedna zo základných schém. V našom modeli od otáčania gombíka potenciometraJas LED bude závisieť.

Lekcia 4. Ovládanie serva na Arduine

V tomto návode sa naučíte, ako pripojiť servo k Arduinu.

Servoje motor, ktorého polohu hriadeľa je možné ovládať nastavením uhla natočenia.

Servo sa používajú na simuláciu rôznych mechanických pohybov robotov.

Lekcia 5. Trojfarebná LED na Arduine

V tomto návode sa naučíte, ako pripojiť trojfarebnú LED k Arduinu.

Trojfarebná LED dióda(rgb led) - sú to tri LED diódy rôznych farieb v jednom kryte. Dodávajú sa buď s malou doskou plošných spojov, na ktorej sú umiestnené odpory, alebo bez vstavaných odporov. Lekcia zahŕňa obe možnosti.

Lekcia 6. Piezoelektrický prvok na Arduine

V tejto lekcii sa naučíte, ako pripojiť piezo prvok k Arduinu.

Piezo prvok- elektromechanický menič, ktorý prekladá elektrické napätie do membránových vibrácií. Tieto vibrácie vytvárajú zvuk.

V našom modeli je možné upraviť frekvenciu zvuku nastavením príslušných parametrov v programe.

Lekcia 7. Fotorezistor na Arduine

V tejto lekcii nášho kurzu sa naučíte, ako pripojiť fotorezistor k Arduinu.

Fotorezistor- odpor, ktorého odpor závisí od jasu svetla dopadajúceho naň.

V našom modeli sa LED rozsvieti iba vtedy, ak je jas svetla nad fotorezistorom menší ako určitý, tento jas je možné nastaviť v programe.

Lekcia 8. Pohybový senzor (PIR) na Arduine. Automatické odosielanie e-mailov

V tejto lekcii nášho kurzu sa naučíte, ako pripojiť snímač pohybu (PIR) k Arduinu, ako aj organizovať automatické odosielanie e-mailov.

Pohybový senzor (PIR)- infračervený senzor na detekciu pohybu alebo prítomnosti ľudí alebo zvierat.

V našom modeli pri príjme signálu o pohybe človeka z PIR senzora Arduino odošle do počítača príkaz na odoslanie e-mailu a list sa odošle automaticky.

Lekcia 9. Pripojenie snímača teploty a vlhkosti DHT11 alebo DHT22

V tejto našej lekcii sa naučíte, ako pripojiť snímač teploty a vlhkosti DHT11 alebo DHT22 k Arduinu, a tiež sa zoznámite s rozdielmi v ich charakteristikách.

Senzor teploty a vlhkosti je kompozitný digitálny snímač pozostávajúci z kapacitného snímača vlhkosti a termistora na meranie teploty.

V našom modeli Arduino číta hodnoty senzorov a zobrazuje ich na obrazovke počítača.

Lekcia 10. Pripojenie maticovej klávesnice

V tejto lekcii nášho kurzu sa naučíte, ako pripojiť maticovú klávesnicu k doske Arduino, a tiež sa zoznámite s rôznymi zaujímavými obvodmi.

Maticová klávesnica vynájdený na zjednodušenie pripojenia veľkého počtu tlačidiel. Takéto zariadenia sa nachádzajú všade - v počítačových klávesniciach, kalkulačkách atď.

Lekcia 11. Pripojenie modulu hodín reálneho času DS3231

V poslednej lekcii nášho kurzu sa dozviete, ako pripojiť modul hodín reálneho času od rodiny
DS k doske Arduino, a tiež sa zoznámiť s rôznymi zaujímavými obvodmi.

Modul hodín reálneho času- ide o elektronický obvod určený na zaznamenávanie chronometrických údajov (aktuálny čas, dátum, deň v týždni atď.) a je to systém pozostávajúci z autonómneho zdroja energie a záznamového zariadenia.

Aplikácia. Hotové rámy a roboty Arduino


Arduino sa môžete začať učiť nielen zo samotnej dosky, ale aj zakúpením hotového, plnohodnotného robota založeného na tejto doske – pavúčí robot, robotické auto, korytnačí robot atď. Takéto spôsobom Je vhodný aj pre tých, ktorých elektrické obvody vyslovene nelákajú.

Zakúpením modelu pracovného robota, t.j. v skutočnosti môže hotová high-tech hračka prebudiť záujem o nezávislý dizajn a robotiku. Otvorenosť platformy Arduino umožňuje vyrábať nové hračky z rovnakých komponentov.

Ďalšou možnosťou je zakúpenie rámu alebo tela robota: plošina na kolesách alebo dráhe, humanoid, pavúk atď. V tomto prípade budete musieť urobiť vypchávanie robota sami.

Aplikácia. Mobilný adresár


– pomocník pre vývojárov algoritmov pre platformu Arduino, ktorého účelom je poskytnúť koncovému používateľovi možnosť mať mobilnú sadu príkazov (referenčná kniha).

Aplikácia pozostáva z 3 hlavných častí:

  • Operátori;
  • údaje;
  • Funkcie.

Kde kúpiť Arduino


Súpravy Arduino

Kurz bude aktualizovaný o ďalšie lekcie. Nasleduj nás

Dnes si povieme niečo o používaní SD a micro SD kariet v Arduine. Zistíme, ako pripojiť SD karty k Arduinu, ako zapisovať a čítať informácie. Použitie dodatočnej pamäte môže byť veľmi užitočné v mnohých projektoch. Ak neviete, čo sú SPI, I2C a analógové kolíky, potom vám odporúčam, aby ste si pozreli minulé lekcie a porozumeli týmto komunikačným rozhraniam Arduino.

V tomto návode si povieme niečo o bezdrôtovej komunikácii medzi dvoma doskami Arduino. To môže byť veľmi užitočné pri odovzdávaní príkazov z jedného Arduina do druhého alebo pri výmene informácií medzi vašimi DIY. Možnosť bezdrôtového prenosu dát otvára nové možnosti pri tvorbe vašich projektov.

V tomto návode sa dozvieme o zbernici I2C. I2C je komunikačná zbernica, ktorá využíva iba dve linky. Pomocou tohto rozhrania môže Arduino komunikovať s mnohými zariadeniami cez dva káble. Dnes prídeme na to, ako pripojiť senzory k Arduinu cez I2C zbernicu, ako pristupovať ku konkrétnemu zariadeniu a ako prijímať dáta z týchto zariadení.

V tomto návode budeme hovoriť o sériovom komunikačnom rozhraní Arduino. Toto rozhranie sme už používali v predchádzajúcich lekciách, keď sme na obrazovke počítača zobrazovali hodnoty zo senzorov. Dnes sa bližšie pozrieme na to, ako toto spojenie funguje, a tiež sa naučíme využívať dáta prenášané na monitor portu počítača pomocou Processing.

Dnes budeme hovoriť o tranzistoroch a pripájaní záťaže k Arduinu. Samotné Arduino nedokáže z jedného pinu vyprodukovať vyššie napätie ako 5 voltov a prúd vyšší ako 40 mA. Na senzory a LED to stačí, ak však chceme pripojiť zariadenia, ktoré sú prúdovo náročnejšie, budeme musieť použiť tranzistory alebo relé.

V tejto lekcii budeme hovoriť o základoch návrhu obvodov aplikovaných na Arduino. A začnime, samozrejme, Ohmovým zákonom, keďže ten je základom všetkých obvodov. Aj v tejto lekcii si povieme o odpore, ťahovom a ťahovom odpore, výpočte prúdu a napätia.

V tomto článku som sa rozhodol dať dokopy kompletný návod krok za krokom pre začiatočníkov Arduina. Pozrieme sa na to, čo je Arduino, čo sa potrebujete začať učiť, kde stiahnuť a ako nainštalovať a nakonfigurovať programovacie prostredie, ako funguje a ako používať programovací jazyk a ešte oveľa viac, čo je potrebné na vytvorenie plnohodnotného komplexné zariadenia založené na rodine týchto mikrokontrolérov.

Tu sa pokúsim uviesť zhustené minimum, aby ste pochopili princípy práce s Arduinom. Pre úplnejšie ponorenie sa do sveta programovateľných mikrokontrolérov venujte pozornosť iným sekciám a článkom tejto stránky. Pre podrobnejšie štúdium niektorých aspektov ponechám odkazy na ďalšie materiály na tejto stránke.

Čo je Arduino a na čo slúži?

Arduino je elektronická stavebnica, ktorá umožňuje komukoľvek vytvárať rôzne elektromechanické zariadenia. Arduino pozostáva zo softvéru a hardvéru. Softvérová časť obsahuje vývojové prostredie (program na písanie a ladenie firmvéru), mnoho hotových a pohodlných knižníc a zjednodušený programovací jazyk. Hardvér obsahuje veľký rad mikrokontrolérov a pre ne pripravené moduly. Vďaka tomu je práca s Arduinom veľmi jednoduchá!

S pomocou Arduina sa môžete naučiť programovanie, elektrotechniku ​​a mechaniku. Ale toto nie je len vzdelávací konštruktér. Na jeho základe môžete vyrábať skutočne užitočné zariadenia.
Počnúc jednoduchými blikajúcimi svetlami, meteostanicami, automatizačnými systémami a končiac systémami inteligentných domácností, CNC strojov a bezpilotných lietadiel. Možnosti nie sú obmedzené ani vašou fantáziou, pretože návodov a nápadov na realizáciu je obrovské množstvo.

Arduino Starter Kit

Aby ste sa mohli začať učiť Arduino, musíte získať samotnú dosku mikrokontroléra a ďalšie časti. Najlepšie je zakúpiť si Arduino štartovaciu sadu, ale všetko, čo potrebujete, si môžete vybrať sami. Odporúčam zvoliť sadu, pretože je to jednoduchšie a často aj lacnejšie. Tu sú odkazy na najlepšie zostavy a jednotlivé diely, ktoré si určite budete musieť naštudovať:

Základná súprava Arduino pre začiatočníkov:Kúpiť
Veľká sada na školenie a prvé projekty:Kúpiť
Sada prídavných senzorov a modulov:Kúpiť
Arduino Uno je najzákladnejší a najpohodlnejší model z radu:Kúpiť
Bezspájkovacia doska pre ľahké učenie a prototypovanie:Kúpiť
Sada vodičov s pohodlnými konektormi:Kúpiť
LED sada:Kúpiť
Súprava rezistorov:Kúpiť
Tlačidlá:Kúpiť
Potenciometre:Kúpiť

Vývojové prostredie Arduino IDE

Ak chcete písať, ladiť a sťahovať firmvér, musíte si stiahnuť a nainštalovať Arduino IDE. Toto je veľmi jednoduchý a pohodlný program. Na mojej stránke som už opísal proces sťahovania, inštalácie a konfigurácie vývojového prostredia. Preto tu jednoducho nechám odkazy na najnovšiu verziu programu a na

Verzia Windows Mac OS X Linux
1.8.2

Programovací jazyk Arduino

Keď máte v rukách dosku mikrokontroléra a v počítači nainštalované vývojové prostredie, môžete začať písať prvé skice (firmvér). Aby ste to dosiahli, musíte sa oboznámiť s programovacím jazykom.

Programovanie Arduino využíva zjednodušenú verziu jazyka C++ s preddefinovanými funkciami. Rovnako ako v iných programovacích jazykoch podobných C, aj tu existuje množstvo pravidiel pre písanie kódu. Tu sú tie najzákladnejšie:

  • Za každým pokynom musí nasledovať bodkočiarka (;)
  • Pred deklarovaním funkcie musíte zadať typ údajov vrátených funkciou alebo void, ak funkcia nevracia hodnotu.
  • Pred deklarovaním premennej je tiež potrebné uviesť typ údajov.
  • Komentáre sú označené: // Inline a /* blok */

Viac o dátových typoch, funkciách, premenných, operátoroch a jazykových konštrukciách sa dozviete na stránke na Všetky tieto informácie si nemusíte pamätať a pamätať si ich. Vždy môžete prejsť do referenčnej knihy a pozrieť sa na syntax konkrétnej funkcie.

Všetok firmvér Arduino musí obsahovať aspoň 2 funkcie. Sú to setup() a loop().

funkcia nastavenia

Aby všetko fungovalo, musíme napísať náčrt. Po stlačení tlačidla nech sa LED rozsvieti a po ďalšom stlačení zhasne. Tu je náš prvý náčrt:

// premenné s pinmi pripojených zariadení int switchPin = 8; int ledPin = 11; // premenné na uloženie stavu tlačidla a LED boolean lastButton = LOW; boolean currentButton = NÍZKA; boolean ledOn = false; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // funkcia na debouncing boolean debounse(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( delay ( 5); prúd = digitalRead(switchPin); ) návratový prúd; ) void loop() ( currentButton = debounse(poslednéTlačidlo); if(poslednéTlačidlo == NÍZKE && aktuálneTlačidlo == VYSOKÉ) ( ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite(ledPin, ledOn); )

// premenné s pinmi pripojených zariadení

int switchPin = 8 ;

int ledPin = 11 ;

// premenné na uloženie stavu tlačidla a LED

boolean lastButton = LOW ;

boolean currentButton = NÍZKA ;

boolean ledOn = false ;

void setup() (

pinMode(switchPin, INPUT);

pinMode(ledPin, OUTPUT);

// funkcia na odskok

boolean debounse (boolean last ) (

booleovský prúd = digitalRead(switchPin);

ak (posledné != aktuálne ) (

oneskorenie(5);

prúd = digitalRead(switchPin);

spätný prúd;

void loop() (

currentButton = debounse(lastButton);

if (poslednéTlačidlo == NÍZKE && aktuálne Tlačidlo == VYSOKÉ ) (

ledOn = ! ledOn;

lastButton = aktuálneTlačidlo ;

digitalWrite(ledPin, ledOn);

V tomto náčrte som vytvoril dodatočnú funkciu debounse na potlačenie odrazu kontaktu. Na mojej webovej stránke sú informácie o návrate kontaktov. Nezabudnite si pozrieť tento materiál.

PWM Arduino

Modulácia šírky impulzu (PWM) je proces riadenia napätia pomocou pracovného cyklu signálu. To znamená, že pomocou PWM môžeme plynulo ovládať záťaž. Napríklad môžete plynulo meniť jas LED, ale túto zmenu jasu nedosiahnete znížením napätia, ale zvýšením intervalov nízkeho signálu. Princíp činnosti PWM je znázornený na tomto diagrame:

Keď na LED priložíme PWM, začne rýchlo svietiť a zhasínať. Ľudské oko to nevidí, pretože frekvencia je príliš vysoká. Pri natáčaní videa ale s najväčšou pravdepodobnosťou uvidíte momenty, kedy LED dióda nesvieti. Stane sa tak za predpokladu, že snímková frekvencia kamery nie je násobkom frekvencie PWM.

Arduino má vstavaný modulátor šírky impulzu. PWM môžete použiť iba na pinoch, ktoré sú podporované mikrokontrolérom. Napríklad Arduino Uno a Nano majú 6 pinov PWM: sú to piny D3, D5, D6, D9, D10 a D11. Na iných doskách sa kolíky môžu líšiť. Môžete nájsť popis dosky, o ktorú máte záujem

Na použitie PWM v Arduine existuje funkcia, ktorá berie ako argumenty číslo pinu a hodnotu PWM od 0 do 255. 0 je 0% naplniť vysokým signálom a 255 je 100%. Napíšme si jednoduchý náčrt ako príklad. Nech sa LED rozsvieti plynule, počkáme jednu sekundu a rovnako hladko zhasne a tak ďalej donekonečna. Tu je príklad použitia tejto funkcie:

// LED je pripojená na pin 11 int ledPin = 11; void setup() ( pinMode(ledPin, OUTPUT); ) void loop() ( for (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; i--) ( analogWrite(ledPin, i); delay(5); ) )

// LED pripojená na kolík 11

int ledPin = 11 ;

void setup() (

pinMode(ledPin, OUTPUT);

void loop() (

pre (int i = 0; i< 255 ; i ++ ) {

analogWrite(ledPin, i);

oneskorenie(5);

oneskorenie(1000);

for (int i = 255; i > 0; i -- ) (

Tento simulátor funguje najlepšie v prehliadači Chrome
Poďme sa bližšie pozrieť na Arduino.

Arduino nie je veľký počítač, ktorý je možné pripojiť k externým obvodom. Arduino Uno používa Atmega 328P
Toto je najväčší čip na doske. Tento čip vykonáva programy, ktoré sú uložené v jeho pamäti. Program si môžete stiahnuť cez usb pomocou Arduino IDE. Port USB tiež poskytuje napájanie arduina.

K dispozícii je samostatný napájací konektor. Doska má dva piny označené 5v a 3,3v, ktoré sú potrebné na napájanie rôznych zariadení. Nájdete tu aj piny označené GND, to sú tie zemniace piny (zem je 0V). Platforma Arduino má tiež 14 digitálnych pinov, označených 0 až 13, ktoré sa pripájajú k externým uzlom a majú dva stavy, vysoký alebo nízky (zapnuté alebo vypnuté). Tieto kontakty môžu pracovať ako výstupy alebo ako vstupy, t.j. môžu buď prenášať niektoré údaje a ovládať externé zariadenia, alebo prijímať údaje zo zariadení. Ďalšie kolíky na doske sú označené A0-A5. Ide o analógové vstupy, ktoré môžu prijímať dáta z rôznych senzorov. To je obzvlášť výhodné, keď potrebujete zmerať určitý rozsah, napríklad teplotu. Analógové vstupy majú ďalšie funkcie, ktoré je možné aktivovať samostatne.

Ako používať vývojovú dosku.

Krájacia doska je potrebná na dočasné spojenie dielov, skontrolovanie fungovania zariadenia predtým, ako všetko spojíte.
Všetky nasledujúce príklady sú zostavené na doske, takže môžete rýchlo vykonať zmeny v obvode a znova použiť diely bez toho, aby ste sa museli obťažovať spájkovaním.

Doska na krájanie má rady otvorov, do ktorých môžete vložiť diely a drôty. Niektoré z týchto otvorov sú navzájom elektricky spojené.

Dva horné a spodné rady sú spojené v radoch pozdĺž celej dosky. Tieto riadky sa používajú na napájanie obvodu. Mohlo by to byť 5V alebo 3,3V, ale v každom prípade, prvá vec, ktorú musíte urobiť, je pripojiť 5V a GND k doske, ako je znázornené na obrázku. Niekedy môžu byť tieto spoje riadkov prerušené v strede dosky, potom, ak potrebujete, môžete ich pripojiť tak, ako je znázornené na obrázku.








Zvyšné otvory, umiestnené v strede dosky, sú zoskupené do skupín po piatich otvoroch. Používajú sa na pripojenie častí obvodu.


Prvá vec, ktorú pripojíme k nášmu mikrokontroléru, je LED. Schéma elektrického zapojenia je znázornená na obrázku.

Prečo je v obvode potrebný odpor? V tomto prípade obmedzuje prúd, ktorý prechádza cez LED. Každá LED je navrhnutá pre určitý prúd a ak je tento prúd vyšší, LED dióda zlyhá. Akú hodnotu by mal mať odpor, môžete zistiť pomocou Ohmovho zákona. Pre tých, ktorí nevedia alebo zabudli, Ohmov zákon hovorí, že medzi prúdom a napätím existuje lineárny vzťah. To znamená, že čím väčšie napätie privedieme na rezistor, tým väčší prúd ním pretečie.
V=I*R
Kde V- napätie na rezistore
ja- prúd cez odpor
R- odpor, ktorý treba nájsť.
Najprv musíme zistiť napätie na rezistore. Väčšina 3mm alebo 5mm LED diód, ktoré použijete, má prevádzkové napätie 3V. To znamená, že na rezistore potrebujeme zhasnúť 5-3 = 2V.

Potom vypočítame prúd prechádzajúci rezistorom.
Väčšina 3mm a 5mm LED svieti pri plnom jase pri 20mA. Väčší prúd ako tento ich môže deaktivovať, zatiaľ čo prúd s menšou intenzitou zníži ich jas bez toho, aby spôsobil akúkoľvek škodu.

Chceme teda zapojiť LED do 5V obvodu tak, aby ním prechádzal prúd 20mA. Pretože všetky časti sú zahrnuté v jednom obvode, rezistor bude mať tiež prúd 20 mA.
Dostaneme
2V = 20 mA * R
2V = 0,02A * R
R = 100 Ohm

100 ohmov je minimálny odpor, je lepšie použiť trochu viac, pretože LED diódy majú určité rozdiely v charakteristikách.
V tomto príklade je použitý 220 ohmový odpor. Už len preto, že ich má autor veľa:mrkať: .

Vložte LED diódu do otvorov v strede dosky tak, aby jej dlhý vodič bol pripojený k jednému z vodičov odporu. Pripojte druhý koniec odporu na 5V a druhý vodič LED pripojte na GND. LED by sa mala rozsvietiť.

Upozorňujeme, že je rozdiel v spôsobe pripojenia LED. Prúd tečie z dlhšej svorky na kratšiu. Na diagrame si môžete predstaviť, že prúd tečie v smere, kam smeruje trojuholník. Skúste LEDku otočiť hore nohami a uvidíte, že sa nerozsvieti.

Ale na tom, ako pripojíte odpor, vôbec nezáleží. Môžete ho otočiť alebo ho skúsiť pripojiť k inému kolíku LED, nebude to mať vplyv na činnosť obvodu. Stále bude obmedzovať prúd cez LED.

Anatómia Arduino Sketch.

Programy pre Arduino sa nazývajú sketch. Pozostávajú z dvoch hlavných funkcií. Funkcia nastaviť a funkciu slučka
Vo vnútri tejto funkcie nastavíte všetky základné nastavenia. Ktoré piny budú fungovať ako vstup alebo výstup, ktoré knižnice pripojiť, inicializovať premenné. Funkcia Nastaviť() beží iba raz počas skice, keď sa spustí vykonávanie programu.
toto je hlavná funkcia, ktorá sa vykoná po nastaviť(). V skutočnosti je to samotný program. Táto funkcia bude fungovať neobmedzene, kým nevypnete napájanie.

Arduino blikajúca LED dióda



V tomto príklade pripojíme LED obvod na jeden z digitálnych pinov Arduina a pomocou programu ho zapneme a vypneme a naučíte sa aj niekoľko užitočných funkcií.

Táto funkcia sa používa v nastaviť()časť programu a slúži na inicializáciu pinov, ktoré použijete ako vstup (INPUT) alebo odchod (VÝKON). Údaje z pinu nebudete môcť čítať ani zapisovať, kým ho nenastavíte na resp pinMode. Táto funkcia má dva argumenty: PIN kód je číslo PIN, ktoré budete používať.

Režim-nastavuje, ako bude kolík fungovať. Pri vchode (INPUT) alebo odchod (VÝKON). Aby sme rozsvietili LED, musíme dať signál OD Arduino. Aby sme to dosiahli, nakonfigurujeme výstupný kolík.
- táto funkcia slúži na nastavenie stavu (štát) pina (PIN kód). Existujú dva hlavné štáty (v skutočnosti 3), jeden je VYSOKÝ, na pine bude 5V, to je niečo iné Nízka a kolík bude 0v. To znamená, že na rozsvietenie LED musíme nastaviť kolík pripojený k LED na vysokú úroveň VYSOKÝ.

Oneskorenie. Slúži na oddialenie činnosti programu na dobu určenú v ms.
Nižšie je uvedený kód, vďaka ktorému bude LED blikať.
//LED Blink int ledPin = 7;//Kolík Arduina, ku ktorému je pripojená LED void setup() ( pinMode(ledPin, OUTPUT);// nastavenie pinu ako OUTPUT) void loop() ( digitalWrite(ledPin, HIGH) ;// zapnutie oneskorenia LED(1000);// oneskorenie 1000 ms (1 s) digitalWrite(ledPin, LOW);//Vypnutie oneskorenia LED (1000);//čakajte 1 sekundu)

Malé vysvetlenia ku kódu.
Riadky, ktoré začínajú „//“ sú komentáre a Arduino ich ignoruje.
Všetky príkazy končia bodkočiarkou, ak ich zabudnete, zobrazí sa chybové hlásenie.

ledPin je premenná. Premenné sa v programoch používajú na ukladanie hodnôt. V tomto príklade premenná ledPin hodnota je priradená 7, toto je číslo pinu Arduino. Keď program Arduino narazí na riadok s premennou ledPin, použije hodnotu, ktorú sme zadali skôr.
Takže záznam pinMode(ledPin, OUTPUT) podobne ako pri nahrávaní pinMode(7, OUTPUT).
Ale v prvom prípade stačí zmeniť premennú a zmení sa v každom riadku, kde sa používa, a v druhom prípade, aby ste zmenili premennú, budete musieť vykonať zmeny ručne v každom príkaze.

Prvý riadok označuje typ premennej. Pri programovaní Arduina je dôležité vždy deklarovať typ premenných. Zatiaľ stačí, aby ste to vedeli INT oznamuje záporné a kladné čísla.
Nižšie je simulácia náčrtu. Kliknutím na štart zobrazíte okruh v akcii.

Podľa očakávania LED zhasne a po jednej sekunde sa znova rozsvieti. Skúste zmeniť oneskorenie, aby ste videli, ako to funguje.

Ovládanie viacerých LED diód.

V tomto príklade sa naučíte ovládať viacero LED diód. Za týmto účelom nainštalujte na dosku 3 ďalšie LED diódy a pripojte ich k rezistorom a kolíkom Arduino, ako je znázornené nižšie.

Aby ste zapínali a vypínali LED diódy jednu po druhej, musíte napísať program podobný tomuto:
//Multi LED Blink int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup() ( //nastavenie pinov ako OUTPUT pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); ) void loop() ( digitalWrite(led1Pin, HIGH );//zapnite oneskorenie LED (1000);//oneskorenie 1 s digitalWrite(led1Pin, LOW);//vypnite oneskorenie LED (1000);//oneskorenie 1 s //urobte to isté pre ďalšie 3 LED diódy digitalWrite(led2Pin, HIGH);//oneskorenie rozsvietenia LED (1000);//oneskorenie 1 s digitalWrite(led2Pin, LOW);//zhasnutie oneskorenia LED (1000);//oneskorenie 1 s digitalWrite(led3Pin, HIGH );//oneskorenie rozsvietenia LED (1000);// oneskorenie 1 s digitalWrite(led3Pin, LOW);//zhasnutie oneskorenia LED (1000);//oneskorenie 1 s digitalWrite(led4Pin, HIGH);//zapnite oneskorenie LED (1000);// oneskorenie 1 s digitalWrite (led4Pin, LOW);//zhasnutie oneskorenia LED (1000);//oneskorenie 1 s)

Tento program bude fungovať skvele, ale nie je to najracionálnejšie riešenie. Kód je potrebné zmeniť. Aby program fungoval znova a znova, použijeme konštrukciu s názvom .
Slučky sú užitočné, keď potrebujete opakovať rovnakú akciu niekoľkokrát. Vo vyššie uvedenom kóde opakujeme riadky

DigitalWrite(led4Pin, HIGH); oneskorenie(1000); digitalWrite(led4Pin, LOW); oneskorenie(1000);
celý kód náčrtu v prílohe (stiahnutia: 1260)

Regulácia jasu LED

Niekedy budete musieť zmeniť jas LED diód v programe. To je možné vykonať pomocou príkazu analogWrite() . Tento príkaz zapína a vypína LED tak rýchlo, že oko nevidí blikanie. Ak je LED dióda zapnutá polovicu času a zhasnutá polovicu času, bude to vizuálne vyzerať, že svieti polovičným jasom. Toto sa nazýva modulácia šírky impulzov (PWM alebo PWM v angličtine). Podložka sa používa pomerne často, pretože ju možno použiť na ovládanie „analógového“ komponentu pomocou digitálneho kódu. Nie všetky piny Arduino sú vhodné na tieto účely. Iba tie závery, v ktorých je takéto označenie vyvodené " ~ Uvidíte ho vedľa kolíkov 3,5,6,9,10,11.
Pripojte jednu z vašich LED k jednému z PWM kolíkov (pre autora je to kolík 9). Teraz spustite náčrt blikania LED, ale najprv zmeňte príkaz digitalWrite() na analogWrite(). analogWrite() má dva argumenty: prvý je číslo pinu a druhý je hodnota PWM (0-255), vo vzťahu k LED to bude ich jas a pre elektromotory rýchlosť otáčania. Nižšie je uvedený príklad kódu pre rôzne jasy LED.
//Zmena jasu LED int ledPin = 9;//LED je pripojená k tomuto pinu void setup() ( pinMode(ledPin, OUTPUT);// inicializácia pinu na výstup ) void loop() ( analogWrite( ledPin, 255);// plný jas (255/255 = 1) oneskorenie (1000);//pauza 1 s digitalWrite(ledPin, LOW);//vypnutie oneskorenia LED (1000);//pauza 1 s analogWrite( ledPin, 191);//jas o 3/4 (191/255 ~= 0,75) oneskorenie(1000);//pauza 1 s digitalWrite(ledPin, LOW);//vypnutie oneskorenia LED (1000);// pauza 1 s analogWrite(ledPin, 127); //polovičný jas (127/255 ~= 0,5) oneskorenie (1000);//pauza 1 s digitalWrite(ledPin, LOW);//vypnutie oneskorenia LED (1000);/ /pauza 1 s analogWrite(ledPin, 63); //štvrťročný jas (63/255 ~= 0,25) oneskorenie (1000);//pauza 1 s digitalWrite(ledPin, LOW);//vypnutie oneskorenia LED (1000) ;//pauza 1 sekunda)

Skúste zmeniť hodnotu PWM v príkaze analogWrite() aby ste videli, ako to ovplyvňuje jas.
Ďalej sa dozviete, ako plynulo nastaviť jas od plného po nulový. Úsek kódu môžete, samozrejme, skopírovať 255-krát
analogWrite(ledPin, jas); delay(5);//krátke oneskorenie jas = jas + 1;
Ale chápete, toto nebude praktické. Najlepší spôsob, ako to urobiť, je použiť cyklus FOR, ktorý sme použili predtým.
Nasledujúci príklad používa dve slučky, jednu na zníženie jasu z 255 na 0
for (int jas=0;jas=0;jas--)( analogWrite(ledPin,jas); delay(5); )
meškanie (5) používa sa na spomalenie rýchlosti zoslabovania jasu 5*256=1280ms=1,28s)
Prvý riadok používa " jas-", aby sa hodnota jasu znížila o 1 pri každom opakovaní slučky. Upozorňujeme, že slučka bude prebiehať, kým jas >=0.Výmena značky > na znamenie >= do rozsahu jasu sme zaradili 0. Tento náčrt je modelovaný nižšie. //hladko zmeňte jas int ledPin = 9;//k tomuto kolíku je pripojená LED void setup() ( pinMode(ledPin, OUTPUT);// inicializácia výstupného kolíka) void loop() ( //hladko zvýši jas (0 až 255 ) pre (int jas=0;jas=0;jas--)( analogWrite(ledPin,jas); delay(5); ) delay(1000);//čakajte 1 sekundu //hladko znížite jas (255 až 0) pre (int jas=255;jas>=0;jas--)( analogWrite(ledPin,jas); delay(5); ) delay(1000);//čakajte 1 sekundu) )
Nie je to veľmi vidieť, ale myšlienka je jasná.

RGB LED a Arduino

RGB LED sú vlastne tri rôzne farebné LED diódy v jednom balení.

Zahrnutím rôznych LED diód s rôznym jasom ich môžete kombinovať a vytvárať rôzne farby. Pre Arduino, kde je počet úrovní jasu 256, získate 256^3=16581375 možných farieb. V skutočnosti ich bude samozrejme menej.
LED, ktorú použijeme, je spoločná katóda. Tie. všetky tri LED sú konštrukčne spojené katódami na jednu svorku. Tento pin spojíme s pinom GND. Zostávajúce kolíky cez obmedzovacie odpory musia byť pripojené k kolíkom PWM. Autor použil piny 9 – 11. Takto bude možné ovládať každú LED samostatne. Prvý náčrt ukazuje, ako zapnúť každú LED samostatne.



//RGB LED - test //pinové spojenia int red = 9; int zelená = 10; int modrá = 11; void setup())( pinMode(červená, OUTPUT); pinMode(modrá, OUTPUT); pinMode(zelená, OUTPUT); ) void loop())( //zapnutie/vypnutie červenej LED digitalWrite(červená, HIGH); delay(500) ; digitalWrite(červená, LOW); delay(500); //zapnutie/vypnutie zelenej LED digitalWrite(zelená, HIGH); delay(500); digitalWrite(zelená, LOW); delay(500); // zapnutie/vypnutie modrej LED digitalWrite(modrá, HIGH); delay(500); digitalWrite(modrá, LOW); delay(500); )

Nasledujúci príklad používa príkazy analogWrite() a získať rôzne náhodné hodnoty jasu pre LED diódy. Uvidíte rôzne farby, ktoré sa náhodne menia.
//RGB LED - náhodné farby //pinové spojenia 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ýber náhodnej farby analógWrite(červená, náhodný(256)); analogWrite( modrá, náhodný(256)); analogWrite(zelený, náhodný(256)); oneskorenie(1000);//čakajte jednu sekundu)

Náhodné(256)-vracia náhodné číslo v rozsahu od 0 do 255.
V priloženom súbore je náčrt, ktorý bude demonštrovať plynulé farebné prechody z červenej na zelenú, potom na modrú, červenú, zelenú atď. (stiahnutia: 348)
Vzorový náčrt funguje, ale existuje veľa duplicitných kódov. Kód môžete zjednodušiť napísaním vlastnej pomocnej funkcie, ktorá sa bude plynulo meniť z jednej farby na druhú.
Takto to bude vyzerať: (stiahnutia: 385)
Pozrime sa na definíciu funkcie kúsok po kúsku. Funkcia sa volá fader a má dva argumenty. Každý argument je oddelený čiarkou a má typ deklarovaný v prvom riadku definície funkcie: void fader (int color1, int color2). Vidíte, že oba argumenty sú deklarované ako int a dostanú mená farba1 A farba2 ako podmienkové premenné na definovanie funkcie. Void znamená, že funkcia nevracia žiadne hodnoty, iba vykonáva príkazy. Ak by ste mali napísať funkciu, ktorá by vrátila výsledok násobenia, vyzerala by takto:
int multiplikátor(int číslo1, int číslo2)( int produkt = číslo1*číslo2; vrátiť produkt; )
Všimnite si, ako sme deklarovali Type int ako návratový typ
neplatné.
Vo vnútri funkcie sú príkazy, ktoré ste už použili v predchádzajúcom náčrte, boli nahradené iba čísla pinov farba1 A farba2. Funkcia sa volá fader, jeho argumenty sú vypočítané ako farba1 = červená A farba2 = zelená. Archív obsahuje kompletný náčrt pomocou funkcií (stiahnutia: 288)

Tlačidlo

Ďalší náčrt bude používať tlačidlo s normálne otvorenými kontaktmi bez aretácie.


To znamená, že kým tlačidlo nie je stlačené, nepreteká ním žiadny prúd a po uvoľnení sa tlačidlo vráti do pôvodnej polohy.
Okrem tlačidla obvod používa odpor. V tomto prípade neobmedzuje prúd, ale tlačidlo „stiahne“ na 0V (GND). Tie. Kým tlačidlo nestlačíte, kolík Arduina, ku ktorému je pripojený, sa zníži. Rezistor použitý v obvode je 10 kOhm.


//určenie kedy je tlačidlo stlačené int buttonPin = 7; void setup())( pinMode(buttonPin, INPUT);//inicializácia pinu na vstup Serial.begin(9600);//inicializácia sériového portu) void loop())( if (digitalRead(buttonPin)==HIGH )(//ak je stlačené tlačidlo Serial.println("stlačené"); // zobrazí "stlačené" ) else ( Serial.println("unpressed"); // inak "unpressed" ) )
V tomto náčrte je niekoľko nových príkazov.
-Tento príkaz preberá vysoké a nízke hodnoty výstupu, ktorý testujeme. Tento výstup musí byť najprv nakonfigurovaný ako vstup v setup().
; //kde buttonPin je číslo PIN, ku ktorému je tlačidlo pripojené.
Sériový port umožňuje Arduinu odosielať správy do počítača, zatiaľ čo samotný ovládač vykonáva program. Je to užitočné pri ladení programu, odosielaní správ do iných zariadení alebo aplikácií. Ak chcete povoliť prenos dát cez sériový port (nazývaný aj UART alebo USART), musíte ho inicializovať v setup()

Serial.begin() má len jeden argument – ​​tým je rýchlosť prenosu dát medzi Arduinom a počítačom.
Skica používa príkaz na zobrazenie správy na obrazovke v Arduino IDE (Nástroje >> Serial Monitor).
- dizajn umožňuje kontrolovať priebeh vykonávania programu kombináciou niekoľkých kontrol na jednom mieste.
Ak sa funkcia digitalRead vráti na hodnotu HIGH, na monitore sa zobrazí slovo „stlačený“. V opačnom prípade (inak) sa na monitore zobrazí slovo „uvoľnené“. Teraz môžete skúsiť zapnúť a vypnúť LED stlačením tlačidla.
//detekcia stlačenia tlačidla s výstupom LED int buttonPin = 7; int ledPin = 8; void setup())( pinMode(buttonPin, INPUT);//tentokrát nastavíme pin tlačidla ako INPUT pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin) )= =VYSOKÉ)( digitalWrite(ledPin,HIGH); Serial.println("stlačené"); ) else ( digitalWrite(ledPin,LOW); Serial.println("unpressed"); ) )

Analógový vstup.

analógovýPrečítaj umožňuje čítať dáta z jedného z analógových pinov Arduino a zobrazuje hodnotu v rozsahu od 0 (0V) do 1023 (5V). Ak je napätie na analógovom vstupe 2,5 V, vytlačí sa 2,5 / 5 * 1023 = 512
analógovýPrečítaj má iba jeden argument - Toto je číslo analógového vstupu (A0-A5). Nasledujúci náčrt ukazuje kód pre čítanie napätia z potenciometra. Za týmto účelom pripojte premenlivý odpor, vonkajšie svorky na kolíky 5V a GND a strednú svorku na vstup A0.

Spustite nasledujúci kód a na sériovom monitore uvidíte, ako sa hodnoty menia v závislosti od otáčania gombíka odporu.
//analógový vstup int potPin = A0;//stredový kolík potenciometra je pripojený k tomuto kolíku void setup())( //analógový kolík je štandardne zahrnutý ako vstup, takže inicializácia nie je potrebná Serial.begin(9600 ); ) void loop())( int potVal = analogRead(potPin);//potVal je číslo medzi 0 a 1023 Serial.println(potVal); )
Nasledujúca skica kombinuje skicu kliknutia na tlačidlo a skicu ovládania jasu LED. LED sa rozsvieti tlačidlom a jas sa ovláda potenciometrom.
//detekcia stlačenia tlačidla s LED výstupom a variabilnou intenzitou int buttonPin = 7; int ledPin = 9; int potPin = A0; void setup())( pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin)==HIGH)(//ak je stlačené tlačidlo int analogVal = analogRead(potPin); int scaledVal = map(analogVal, 0, 1023, 0, 255); analogWrite(ledPin, scaledVal);//zapnutie LED s intenzitou nastavenou pot Serial.println("stlačený"); ) else ( digitalWrite(ledPin, LOW);//vypnúť, ak tlačidlo nie je stlačené Serial.println("unpressed"); ) )

Doručenie nových domácich produktov na poštu

Dostávajte výber nových domácich produktov e-mailom. Žiadny spam, iba užitočné nápady!