Yksinkertaiset Arduino-piirit aloittelijoille. Yksinkertaiset piirit Arduinossa aloittelijoille Suunnitelmat Arduinossa

Arduinon viiveillä on erittäin suuri rooli. Ilman niitä yksinkertaisinkaan esimerkki Blinkistä, joka vilkkuu LEDiä tietyn ajan kuluttua, ei toimi. Mutta useimmat aloittelevat ohjelmoijat tietävät vähän aikaviiveistä ja käyttävät vain Arduino-viivettä tietämättä tämän komennon sivuvaikutuksia. Tässä artikkelissa puhun yksityiskohtaisesti ajoitustoiminnoista ja niiden käytöstä Arduino IDE:ssä.

Arduinossa on useita erilaisia ​​komentoja, jotka vastaavat ajan ja taukojen käyttämisestä:

  • viive()
  • viivemikrosekuntia()
  • millis()
  • micros()

Ne eroavat tarkkuudesta ja niillä on omat ominaisuutensa, jotka tulee ottaa huomioon koodia kirjoitettaessa.

Käytä arduino-viivetoimintoa

Syntaksi

Arduino-viive on yksinkertaisin komento, ja sitä käyttävät useimmiten aloittelijat. Pohjimmiltaan se on viive, joka keskeyttää ohjelman suluissa ilmoitetuksi millisekunteiksi. (Yhdessä sekunnissa on 1000 millisekuntia.) Suurin arvo voi olla 4294967295 ms, mikä vastaa suunnilleen 50 päivää. Katsotaanpa yksinkertaista esimerkkiä, joka osoittaa selvästi, kuinka tämä komento toimii.

Void setup() ( pinMode(13, OUTPUT); ) void loop() ( digitalWrite(13, HIGH); // lähettää korkean signaalin nastan 13 viiveen (10000); // tauko 10 000 ms tai 10 sekuntia digitalWrite13, LOW) ; // lähettää matalan signaalin nastalle 13 delay(10000); // tauko 10 000 ms tai 10 sekuntia)

Menetelmässä perustaa Määritämme, että nastaa 13 käytetään lähtönä. Ohjelman pääosassa korkea signaali lähetetään ensin nastalle, jonka jälkeen teemme 10 sekunnin viiveen. Tänä aikana ohjelma näyttää olevan keskeytettynä. Sitten annetaan matala signaali ja taas tulee viive ja kaikki alkaa alusta. Tuloksena saamme, että nastalle syötetään vuorotellen joko 5 V tai 0.

Sinun on ymmärrettävä selvästi, että viiveen käyttötauon aikana ohjelman työ keskeytyy, sovellus ei vastaanota tietoja antureilta. Tämä on Arduinon viivetoiminnon käytön suurin haitta. Voit kiertää tämän rajoituksen käyttämällä keskeytyksiä, mutta puhumme tästä erillisessä artikkelissa.

Esimerkki viiveestä, jossa LED vilkkuu

Esimerkkipiiri havainnollistamaan, kuinka viivetoiminto toimii.
Voit rakentaa piirin LEDillä ja vastuksella. Sitten meillä on vakioesimerkki - LED-valon vilkkuminen. Tätä varten sinun on kytkettävä positiivisella koskettimella varustettu LED-nasta, jonka määritimme ulostuloksi. Yhdistämme LEDin vapaan haaran maahan noin 220 ohmin vastuksen kautta (hieman enemmän on mahdollista). Voit määrittää napaisuuden katsomalla sen sisäosia. Sisällä oleva iso kuppi on yhdistetty miinukseen ja pieni jalka plussaan. Jos LED on uusi, voit määrittää napaisuuden johtojen pituuden perusteella: pitkä jalka on plus, lyhyt haara on miinus.

delayMicroseconds -toiminto

Tämä toiminto on täydellinen analogi viiveelle, paitsi että sen mittayksiköt eivät ole millisekunteja, vaan mikrosekunteja (1 sekunnissa on 1 000 000 mikrosekuntia). Suurin arvo on 16383, mikä vastaa 16 millisekuntia. Resoluutio on 4, eli luku on aina neljän kerrannainen. Esimerkkikatkelma näyttäisi tältä:

DigitalWrite(2, KORKEA); // lähettää korkean signaalin nastalle 2 delayMicroseconds(16383); // tauko 16383 µs digitalWrite(2, LOW); // lähettää matalan signaalin nastalle 2 delayMicroseconds(16383); // tauko 16383 µs

ViiveMikrosekuntien ongelma on täsmälleen sama kuin viiveen kanssa - nämä toiminnot "roikkuvat" ohjelman kokonaan ja se kirjaimellisesti jäätyy hetkeksi. Tällä hetkellä on mahdotonta työskennellä porttien kanssa, lukea tietoja antureista ja suorittaa matemaattisia operaatioita. Tämä vaihtoehto sopii vilkkuville valoille, mutta kokeneet käyttäjät eivät käytä sitä suuriin projekteihin, koska tällaisia ​​​​vikoja ei tarvita. Siksi on paljon parempi käyttää alla kuvattuja toimintoja.

Millis-toiminto viiveen sijaan

Millis()-funktion avulla voit suorittaa viiveen viivytyksettä Arduinossa, mikä kiertää aiempien menetelmien puutteet. Millis-parametrin maksimiarvo on sama kuin viivefunktion arvo (4294967295ms tai 50 päivää).

Millejä käyttämällä emme pysäytä koko luonnoksen suorittamista, vaan yksinkertaisesti osoitamme, kuinka kauan Arduinon tulisi yksinkertaisesti "ohittaa" tarkka koodilohko, jonka haluamme keskeyttää. Toisin kuin viive millis, se ei pysäytä mitään itsestään. Tämä komento yksinkertaisesti palauttaa meille mikro-ohjaimen sisäänrakennetusta ajastimesta kuinka monta millisekuntia on kulunut käynnistyksestä. Jokaisella silmukan kutsulla mittaamme itse ajan, joka on kulunut koodimme viimeisestä kutsusta ja jos aikaero on pienempi kuin haluttu tauko, jätämme koodin huomiotta. Heti kun ero on suurempi kuin vaadittu tauko, suoritamme koodin, saamme nykyisen ajan samoilla milliseillä ja muistamme sen - tämä aika on uusi lähtökohta. Seuraavalla jaksolla lähtölaskenta on jo uudesta pisteestä ja jätämme koodin taas huomiotta, kunnes uusi millin ja aiemmin tallennetun arvon välinen ero saavuttaa jälleen halutun tauon.

Viive ilman viivettä milliseinä vaatii enemmän koodia, mutta sen avulla voit vilkkua LED-valoa ja keskeyttää luonnoksen pysäyttämättä järjestelmää.

Tässä on esimerkki, joka havainnollistaa selkeästi joukkueen työtä:

Allekirjoittamaton pitkäaikainen; // Muuttuja viitepisteen tallentamiseen void setup() ( Serial.begin(9600); ) void loop() ( /* Tässä pisteessä alkaa delay()-analogin suoritus. Laske nykyisen hetken ja aiemmin tallennettu viitepiste. Jos ero on suurempi kuin haluttu arvo, suorita koodi. Jos ei, älä tee mitään */ if (millis() - ajoitus > 10000)( // Korvaa 10000:n sijasta taukoarvo, jota tarvitset ajoituksen = millis(); Serial.println ("10 sekuntia") ; ) )

Ensin esittelemme ajoitusmuuttujan, joka tallentaa millisekuntien määrän. Oletusarvoisesti muuttujan arvo on 0. Ohjelman pääosassa tarkastetaan ehto: jos millisekuntien määrä mikrokontrollerin alusta miinus ajoitusmuuttujaan kirjoitettu luku on suurempi kuin 10000, niin suoritetaan viestin tulostaminen porttivalvontaan ja nykyinen aika-arvo kirjoitetaan muuttujaan. Ohjelman toiminnan seurauksena porttimonitorissa näkyy viesti 10 sekuntia 10 sekunnin välein. Tämän menetelmän avulla voit vilkkua LED-valoa ilman viivettä.

Mikrotoiminto viiveen sijaan

Tämä toiminto voi myös suorittaa viiveen ilman viive-komentoa. Se toimii täsmälleen samalla tavalla kuin millis, mutta se laskee mikrosekunteja millisekuntien sijasta 4 μs:n resoluutiolla. Sen enimmäisarvo on 4294967295 mikrosekuntia tai 70 minuuttia. Jos se vuotaa yli, arvo nollataan yksinkertaisesti nollaan, älä unohda sitä.

Yhteenveto

Arduino-alusta tarjoaa meille useita tapoja toteuttaa viive projektissamme. Viiveellä voit nopeasti keskeyttää luonnoksen suorittamisen, mutta samalla estät mikro-ohjaimen toiminnan. Millis-komennon avulla voit tehdä viivytyksettä Arduinossa, mutta tämä vaatii hieman enemmän ohjelmointia. Valitse paras menetelmä projektisi monimutkaisuuden mukaan. Yleensä yksinkertaisissa luonnoksissa ja alle 10 sekunnin viiveellä käytetään viivettä. Jos toimintalogiikka on monimutkaisempi ja vaaditaan suurta viivettä, on parempi käyttää milliä viiveen sijaan.

" esittelee koulutuskurssin "Arduino aloittelijoille". Sarja koostuu 10 oppitunnista sekä lisämateriaalista. Oppitunnit sisältävät tekstiohjeita, valokuvia ja opetusvideoita. Jokaiselta oppitunnilta löydät luettelon tarvittavista komponenteista, ohjelmaluettelon ja kytkentäkaavion. Kun olet suorittanut nämä 10 perusoppituntia, voit siirtyä kiinnostavampiin Arduino-pohjaisten robottien malleihin ja rakentamiseen. Kurssi on suunnattu aloittelijoille, sen aloittamiseen ei tarvita lisätietoa sähkötekniikasta tai robotiikasta.

Lyhyt tietoa Arduinosta

Mikä on Arduino?

Arduino (Arduino) on laitteistolaskenta-alusta, jonka pääkomponentit ovat input-output board ja kehitysympäristö. Arduinoa voidaan käyttää itsenäisten interaktiivisten objektien luomiseen tai yhteyden muodostamiseen tietokoneella toimiviin ohjelmistoihin. Arduino on yksilevyinen tietokone.

Miten Arduino ja robotit yhdistetään?

Vastaus on hyvin yksinkertainen - Arduinoa käytetään usein robotin aivot.

Arduino-levyjen etuna vastaaviin alustoihin verrattuna on niiden suhteellisen alhainen hinta ja lähes laaja levinneisyys robotiikan ja sähkötekniikan harrastajien ja ammattilaisten keskuudessa. Kun pääset Arduinoon, löydät tukea millä tahansa kielellä ja samanhenkisiä ihmisiä, jotka vastaavat kysymyksiisi ja keskustelevat kehityksestäsi.

Oppitunti 1. Vilkkuva LED Arduinossa

Ensimmäisellä oppitunnilla opit kytkemään LEDin Arduinoon ja ohjaamaan sitä vilkkumaan. Tämä on yksinkertaisin ja yksinkertaisin malli.

Valodiodi- puolijohdelaite, joka tuottaa optista säteilyä, kun sen läpi johdetaan eteenpäin suunnassa sähkövirtaa.

Oppitunti 2. Painikkeen liittäminen Arduinoon

Tässä opetusohjelmassa opit yhdistämään painikkeen ja LEDin Arduinoon.

Kun painiketta painetaan, LED syttyy, kun painiketta painetaan, se ei syty. Tämä on myös perusmalli.

Oppitunti 3. Potentiometrin kytkeminen Arduinoon

Tässä opetusohjelmassa opit yhdistämään potentiometrin Arduinoon.

Potentiometri- Tämä vastus säädettävällä resistanssilla.Potentiometrejä käytetään eri parametrien säätimiin - äänenvoimakkuus, teho, jännite jne.Tämä on myös yksi perussuunnitelmista. Meidän mallissamme potentiometrin nupin kääntämisestäLEDin kirkkaus riippuu.

Oppitunti 4. Servoohjaus Arduinossa

Tässä opetusohjelmassa opit yhdistämään servon Arduinoon.

Servoon moottori, jonka akselin asentoa voidaan ohjata asettamalla pyörimiskulma.

Servoja käytetään simuloimaan erilaisia ​​robottien mekaanisia liikkeitä.

Oppitunti 5. Kolmivärinen LED Arduinossa

Tässä opetusohjelmassa opit yhdistämään kolmivärisen LEDin Arduinoon.

Kolmivärinen LED(rgb led) - Nämä ovat kolme eriväristä LEDiä samassa kotelossa. Niissä on joko pieni painettu piirilevy, jossa vastukset sijaitsevat, tai ilman sisäänrakennettuja vastuksia. Oppitunti kattaa molemmat vaihtoehdot.

Oppitunti 6. Pietsosähköinen elementti Arduinossa

Tällä oppitunnilla opit yhdistämään pietsoelementin Arduinoon.

Pietsoelementti- sähkömekaaninen muunnin, joka kääntää sähköjännite kalvon värähtelyyn. Nämä värähtelyt luovat ääntä.

Mallissamme äänen taajuutta voidaan säätää asettamalla sopivat parametrit ohjelmassa.

Oppitunti 7. Valovastus Arduinossa

Tällä kurssimme oppitunnilla opit kytkemään valovastuksen Arduinoon.

Valovastus- vastus, jonka resistanssi riippuu siihen putoavan valon kirkkaudesta.

Mallissamme LED syttyy vain, jos valovastuksen yläpuolella olevan valon kirkkaus on pienempi kuin tietty, tätä kirkkautta voidaan säätää ohjelmassa.

Oppitunti 8. Liiketunnistin (PIR) Arduinossa. Automaattinen sähköpostin lähetys

Tällä kurssimme oppitunnilla opit yhdistämään liiketunnistimen (PIR) Arduinoon sekä järjestämään automaattisen sähköpostin lähettämisen.

Liiketunnistin (PIR)- Infrapuna-anturi ihmisten tai eläinten liikkeen tai läsnäolon havaitsemiseksi.

Mallissamme, kun Arduino vastaanottaa signaalin ihmisen liikkeestä PIR-anturista, lähettää tietokoneelle komennon lähettää sähköposti ja kirje lähetetään automaattisesti.

Oppitunti 9. Lämpötila- ja kosteusanturin DHT11 tai DHT22 liittäminen

Tällä oppitunnilla opit liittämään DHT11- tai DHT22-lämpötila- ja kosteusanturi Arduinoon ja tutustut myös niiden ominaisuuksien eroihin.

Lämpötila- ja kosteusanturi on komposiittidigitaalinen anturi, joka koostuu kapasitiivisesta kosteusanturista ja termistorista lämpötilan mittaamiseen.

Mallissamme Arduino lukee anturin lukemat ja näyttää lukemat tietokoneen näytöllä.

Oppitunti 10. Matriisinäppäimistön liittäminen

Tällä kurssimme oppitunnilla opit yhdistämään matriisinäppäimistön Arduino-levyyn ja tutustut myös erilaisiin mielenkiintoisiin piireihin.

Matrix-näppäimistö keksitty yksinkertaistamaan useiden painikkeiden yhdistämistä. Tällaisia ​​laitteita löytyy kaikkialta - tietokoneiden näppäimistöistä, laskimista ja niin edelleen.

Oppitunti 11. DS3231-reaaliaikakellomoduulin liittäminen

Kurssimme viimeisellä oppitunnilla opit yhdistämään perheen reaaliaikakellomoduulin
DS Arduino-levylle ja tutustu myös erilaisiin mielenkiintoisiin piireihin.

Reaaliaikainen kellomoduuli- tämä on elektroninen piiri, joka on suunniteltu tallentamaan kronometrisiä tietoja (nykyinen aika, päivämäärä, viikonpäivä jne.), ja se on järjestelmä, joka koostuu autonomisesta virtalähteestä ja tallennuslaitteesta.

Sovellus. Valmiit kehykset ja Arduino-robotit


Voit aloittaa Arduinon oppimisen paitsi itse laudalta, myös ostamalla tähän levyyn perustuvan valmiin, täysimittaisen robotin - hämähäkkirobotin, robottiauton, kilpikonnarobotin jne. Sellainen tapa Se sopii myös niille, jotka eivät ole erityisen kiinnostuneita sähköpiireistä.

Ostamalla toimivan robottimallin, ts. Itse asiassa valmis korkean teknologian lelu voi herättää kiinnostuksen itsenäiseen suunnitteluun ja robotiikkaan. Arduino-alustan avoimuus mahdollistaa uusien lelujen valmistamisen samoista komponenteista.

Toinen vaihtoehto on ostaa robotin runko tai runko: pyörillä oleva alusta tai tela, humanoidi, hämähäkki jne. Tässä tapauksessa sinun on tehtävä robotin täyttö itse.

Sovellus. Matkapuhelinhakemisto


– Arduino-alustalle tarkoitettujen algoritmien kehittäjien avustaja, jonka tarkoituksena on antaa loppukäyttäjälle mahdollisuus saada mobiili komentosarja (viitekirja).

Sovellus koostuu 3 pääosasta:

  • Operaattorit;
  • Data;
  • Toiminnot.

Mistä ostaa Arduinoa


Arduino sarjat

Kurssia päivitetään lisätunneilla. Seuraa meitä

Tänään puhumme SD- ja microSD-korttien käytöstä Arduinossa. Selvitämme kuinka yhdistää SD-kortit Arduinoon, kuinka kirjoittaa ja lukea tietoja. Lisämuistin käyttö voi olla erittäin hyödyllistä monissa projekteissa. Jos et tiedä mitä SPI-, I2C- ja analogiset nastat ovat, suosittelen sinua katsomaan menneitä oppitunteja ja ymmärtämään nämä Arduino-viestintäliitännät.

Tässä opetusohjelmassa puhumme langattomasta tiedonsiirrosta kahden Arduino-levyn välillä. Tämä voi olla erittäin hyödyllistä siirtää komentoja yhdestä Arduinosta toiseen tai vaihtaa tietoja tee-se-itse-laitteiden välillä. Mahdollisuus langattomaan tiedonsiirtoon avaa uusia mahdollisuuksia projektien luomiseen.

Tässä opetusohjelmassa opimme I2C-väylästä. I2C on tietoliikenneväylä, joka käyttää vain kahta linjaa. Tämän käyttöliittymän avulla Arduino voi kommunikoida monien laitteiden kanssa kahdella johdolla. Tänään selvitetään, kuinka anturit yhdistetään Arduinoon I2C-väylän kautta, kuinka päästään tiettyyn laitteeseen ja kuinka vastaanottaa tietoja näistä laitteista.

Tässä opetusohjelmassa puhumme Arduino Serial -viestintäliittymästä. Olemme käyttäneet tätä käyttöliittymää jo aiemmilla tunneilla, kun näytimme antureiden arvoja tietokoneen näytöllä. Tänään tarkastellaan lähemmin, miten tämä yhteys toimii, ja opimme myös käyttämään tietokoneporttimonitoriin siirrettyä dataa Processingin avulla.

Tänään puhumme transistoreista ja kuormien kytkemisestä Arduinoon. Arduino itsessään ei voi tuottaa yhdestä nastasta yli 5 voltin jännitettä ja yli 40 mA virtaa. Tämä riittää antureille ja LEDeille, mutta jos haluamme liittää virtaa vaativampia laitteita, joudumme käyttämään transistoreita tai releitä.

Tällä oppitunnilla puhumme piirisuunnittelun perusteista sellaisena kuin sitä sovelletaan Arduinoon. Ja aloitetaan tietysti Ohmin laista, koska tämä on kaiken piirin perusta. Myös tällä oppitunnilla puhumme resistanssista, veto- ja vetovastuksista, virran ja jännitteen laskemisesta.

Tässä artikkelissa päätin koota täydellisen vaiheittaisen oppaan Arduino-aloittelijoille. Katsomme mitä Arduino on, mitä sinun tulee aloittaa oppiminen, mistä ladata ja kuinka ohjelmointiympäristö asennetaan ja konfiguroidaan, miten se toimii ja kuinka ohjelmointikieltä käytetään, ja paljon muuta, mitä tarvitaan täysimittaisen monimutkaisia ​​laitteita, jotka perustuvat näiden mikro-ohjainten perheeseen.

Yritän tässä antaa tiivistetyn minimin, jotta ymmärrät Arduinon kanssa työskentelyn periaatteet. Jos haluat uppoutua täydellisemmin ohjelmoitavien mikro-ohjainten maailmaan, kiinnitä huomiota tämän sivuston muihin osiin ja artikkeleihin. Jätän linkkejä muihin tämän sivuston materiaaleihin joidenkin näkökohtien yksityiskohtaisempaa tutkimista varten.

Mikä Arduino on ja mihin se on tarkoitettu?

Arduino on elektroninen rakennussarja, jonka avulla kuka tahansa voi luoda erilaisia ​​sähkömekaanisia laitteita. Arduino koostuu ohjelmistoista ja laitteistoista. Ohjelmisto-osa sisältää kehitysympäristön (ohjelmiston kirjoitus- ja virheenkorjausohjelma), monia valmiita ja käteviä kirjastoja sekä yksinkertaistetun ohjelmointikielen. Laitteisto sisältää suuren valikoiman mikrokontrollereita ja valmiita moduuleja niitä varten. Tämän ansiosta työskentely Arduinon kanssa on erittäin helppoa!

Arduinon avulla voit oppia ohjelmointia, sähkötekniikkaa ja mekaniikkaa. Mutta tämä ei ole vain koulutusrakentaja. Sen perusteella voit tehdä todella hyödyllisiä laitteita.
Alkaen yksinkertaisista vilkkuvista valoista, sääasemista, automaatiojärjestelmistä ja päättyen älykkään kodin järjestelmiin, CNC-koneisiin ja miehittämättömiin lentokoneisiin. Mahdollisuuksia ei edes mielikuvituksesi rajoita, koska toteutusohjeita ja ideoita on valtava määrä.

Arduino Starter Kit

Jotta voit aloittaa Arduinon oppimisen, sinun on hankittava itse mikro-ohjainkortti ja lisäosat. On parasta ostaa Arduino-aloituspakkaus, mutta voit valita kaiken tarvitsemasi itse. Suosittelen sarjan valitsemista, koska se on helpompaa ja usein halvempaa. Tässä on linkkejä parhaisiin sarjoihin ja yksittäisiin osiin, jotka sinun on ehdottomasti opittava:

Arduino-perussarja aloittelijoille:Ostaa
Suuri setti koulutukseen ja ensimmäisiin projekteihin:Ostaa
Sarja lisäantureita ja moduuleja:Ostaa
Arduino Uno on linjan yksinkertaisin ja kätevin malli:Ostaa
Juoteton leipälauta helppoon oppimiseen ja prototyyppien luomiseen:Ostaa
Johtosarja kätevillä liittimillä:Ostaa
LED-sarja:Ostaa
Vastussarja:Ostaa
Painikkeet:Ostaa
Potentiometrit:Ostaa

Arduino IDE -kehitysympäristö

Jotta voit kirjoittaa, korjata ja ladata laiteohjelmiston, sinun on ladattava ja asennettava Arduino IDE. Tämä on erittäin yksinkertainen ja kätevä ohjelma. Olen jo kuvaillut verkkosivustollani kehitysympäristön lataamisen, asennuksen ja konfiguroinnin. Siksi jätän tähän vain linkit ohjelman uusimpaan versioon ja

Versio Windows Mac-käyttöjärjestelmän kymmenes versio Linux
1.8.2

Arduino ohjelmointikieli

Kun sinulla on käsissäsi mikro-ohjainkortti ja tietokoneeseen on asennettu kehitysympäristö, voit aloittaa ensimmäisten luonnosten (firmware) kirjoittamisen. Tätä varten sinun on perehdyttävä ohjelmointikieleen.

Arduino-ohjelmointi käyttää C++-kielen yksinkertaistettua versiota ennalta määritetyillä toiminnoilla. Kuten muissakin C:n kaltaisissa ohjelmointikielissä, koodin kirjoittamiseen on useita sääntöjä. Tässä alkeellisimmat:

  • Jokaisen ohjeen jälkeen tulee olla puolipiste (;)
  • Ennen funktion ilmoittamista sinun on määritettävä funktion palauttama tietotyyppi tai void, jos funktio ei palauta arvoa.
  • Tietotyyppi on myös ilmoitettava ennen muuttujan ilmoittamista.
  • Kommentit on merkitty: // Inline ja /* block */

Voit oppia lisää tietotyypeistä, funktioista, muuttujista, operaattoreista ja kielirakenteista sivulta Sinun ei tarvitse muistaa ja muistaa kaikkia näitä tietoja. Voit aina mennä viitekirjaan ja katsoa tietyn funktion syntaksia.

Kaikissa Arduino-laiteohjelmistoissa on oltava vähintään 2 toimintoa. Nämä ovat setup() ja loop().

asetustoiminto

Jotta kaikki toimisi, meidän on kirjoitettava luonnos. Laitetaan LED-valo syttymään painikkeen painalluksen jälkeen ja sammumaan seuraavan painalluksen jälkeen. Tässä ensimmäinen luonnos:

// muuttujat liitettyjen laitteiden pinneillä int switchPin = 8; int ledPin = 11; // muuttujat painikkeen tilan tallentamiseen ja LED boolean lastButton = LOW; boolean currentButton = LOW; boolean ledOn = false; void setup() ( pinMode(kytkinPin, INPUT); pinMode(ledPin, OUTPUT); ) // funktio boolean debounse(boolean last) poistamiseen ( boolean current = digitalRead(switchPin); if(last != current) ( viive ( 5); current = digitalRead(switchPin); ) paluuvirta; ) void loop() ( currentButton = debounse(viimeinen painike); if(viimeinen painike == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) viimeinen painike = currentButton ; digitalWrite(ledPin, ledOn); )

// muuttujat yhdistettyjen laitteiden pinneillä

int switchPin = 8;

int ledPin = 11;

// muuttujat painikkeen ja LEDin tilan tallentamiseen

boolean lastButton = LOW ;

boolean currentButton = LOW ;

boolean ledOn = false ;

void setup() (

pinMode(kytkinPin, INPUT);

pinMode(ledPin, OUTPUT);

// palautustoiminto

boolean debounse (boolen viimeinen ) (

boolen nykyinen = digitalRead(kytkinPin);

jos (viimeinen != nykyinen ) (

viive(5);

nykyinen = digitaalinenLue(kytkinPin);

paluuvirta ;

void loop() (

currentButton = debounse(lastButton);

if (lastButton == LOW && currentButton == HIGH ) (

ledOn = ! ledOn;

lastButton = currentButton ;

digitalWrite(ledPin, ledOn);

Tässä luonnoksessa loin ylimääräisen debounse-toiminnon kontaktien pomppimisen estämiseksi. Sivustollani on tietoa yhteydenottojen palautumisesta. Muista tarkistaa tämä materiaali.

PWM Arduino

Pulssinleveysmodulaatio (PWM) on prosessi, jolla ohjataan jännitettä käyttämällä signaalin toimintajaksoa. Eli PWM:n avulla voimme ohjata kuormaa sujuvasti. Voit esimerkiksi muuttaa LEDin kirkkautta sujuvasti, mutta tämä kirkkauden muutos ei saavuteta alentamalla jännitettä, vaan lisäämällä matalan signaalin intervalleja. PWM:n toimintaperiaate näkyy tässä kaaviossa:

Kun käytämme PWM:ää LEDiin, se alkaa nopeasti syttyä ja sammua. Ihmissilmä ei pysty näkemään tätä, koska taajuus on liian korkea. Mutta kun kuvaat videota, näet todennäköisesti hetkiä, jolloin LED ei pala. Näin tapahtuu, jos kameran kuvataajuus ei ole PWM-taajuuden kerrannainen.

Arduinossa on sisäänrakennettu pulssinleveysmodulaattori. Voit käyttää PWM:ää vain niissä nastoissa, joita mikro-ohjain tukee. Esimerkiksi Arduino Unossa ja Nanossa on 6 PWM-nastaa: nämä ovat nastat D3, D5, D6, D9, D10 ja D11. Tapit voivat poiketa muista levyistä. Löydät kuvauksen sinua kiinnostavasta taulusta

PWM:n käyttämiseksi Arduinossa on funktio, joka ottaa argumenteiksi pin-numeron ja PWM-arvon välillä 0 - 255. 0 on 0% täyttö korkealla signaalilla ja 255 on 100%. Kirjoita esimerkkinä yksinkertainen luonnos. Annetaan LEDin sytyttää tasaisesti, odottaa sekunti ja sammua yhtä tasaisesti ja niin edelleen loputtomiin. Tässä on esimerkki tämän toiminnon käytöstä:

// LED on kytketty nastan 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); viive(5); ) )

// LED kytketty nastan 11

int ledPin = 11;

void setup() (

pinMode(ledPin, OUTPUT);

void loop() (

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

analogWrite(ledPin, i);

viive(5);

viive (1000);

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

Tämä simulaattori toimii parhaiten Chrome-selaimella
Katsotaanpa tarkemmin Arduinoa.

Arduino ei ole suuri tietokone, joka voidaan liittää ulkoisiin piireihin. Arduino Uno käyttää Atmega 328P:tä
Tämä on levyn suurin siru. Tämä siru suorittaa ohjelmia, jotka on tallennettu sen muistiin. Voit ladata ohjelman usb:n kautta käyttämällä Arduino IDE:tä. USB-portti antaa virtaa myös arduinolle.

On erillinen virtaliitin. Levyssä on kaksi nastaa, jotka on merkitty 5v ja 3,3v, joita tarvitaan eri laitteiden virransyöttöön. Löydät myös nastat, jotka on merkitty GND, nämä ovat maadoitusnastat (maa on 0V). Arduino-alustalla on myös 14 digitaalista nastaa, jotka on merkitty numeroilla 0–13, jotka kytketään ulkoisiin solmuihin ja joilla on kaksi tilaa, korkea tai matala (päällä tai pois päältä). Nämä koskettimet voivat toimia lähtöinä tai tuloina, ts. ne voivat joko lähettää tietoja ja ohjata ulkoisia laitteita tai vastaanottaa tietoja laitteista. Taulukon seuraavat nastat on merkitty A0-A5. Nämä ovat analogisia tuloja, jotka voivat vastaanottaa tietoja eri antureilta. Tämä on erityisen kätevää, kun sinun on mitattava tietty alue, kuten lämpötila. Analogisissa tuloissa on lisätoimintoja, jotka voidaan ottaa käyttöön erikseen.

Kuinka käyttää kehityslevyä.

Leipälautaa tarvitaan osien väliaikaiseen kytkemiseen, laitteen toiminnan tarkistamiseen, ennen kuin juotat kaiken yhteen.
Kaikki seuraavat esimerkit on koottu leipälevylle, jotta voit nopeasti tehdä muutoksia piiriin ja käyttää osia uudelleen ilman juottamista.

Leipälaudassa on riviä reikiä, joihin voit laittaa osia ja johtoja. Jotkut näistä rei'istä on kytketty sähköisesti toisiinsa.

Kaksi ylä- ja alariviä on liitetty riveihin koko levyä pitkin. Näitä rivejä käytetään virran syöttämiseen piiriin. Se voi olla 5V tai 3,3V, mutta kummassakin tapauksessa, ensimmäinen asia, joka sinun on tehtävä, on kytkeä 5V ja GND leipälevyyn kuvan osoittamalla tavalla. Joskus nämä riviliitännät voivat katketa ​​laudan keskeltä, jolloin voit tarvittaessa kytkeä ne kuvan osoittamalla tavalla.








Loput reiät, jotka sijaitsevat laudan keskellä, on ryhmitelty viiden reiän ryhmiin. Niitä käytetään kytkemään piirin osia.


Ensimmäinen asia, jonka yhdistämme mikrokontrolleriimme, on LED. Sähköliitäntäkaavio näkyy kuvassa.

Miksi piiriin tarvitaan vastus? Tässä tapauksessa se rajoittaa LEDin läpi kulkevaa virtaa. Jokainen LED on suunniteltu tietylle virralle, ja jos tämä virta on suurempi, LED epäonnistuu. Ohmin lain avulla voit selvittää, mikä arvo vastuksen tulisi olla. Niille, jotka eivät tiedä tai ovat unohtaneet, Ohmin laki sanoo, että virran ja jännitteen välillä on lineaarinen suhde. Eli mitä enemmän jännitettä syötämme vastukseen, sitä enemmän virtaa virtaa sen läpi.
V=I*R
Missä V- jännite vastuksen yli
minä- virta vastuksen läpi
R- vastus, joka on löydettävä.
Ensin meidän on selvitettävä vastuksen yli oleva jännite. Useimpien käyttämiesi 3 mm tai 5 mm LEDien käyttöjännite on 3 V. Tämä tarkoittaa, että meidän on sammutettava 5-3 = 2V vastuksesta.

Laskemme sitten vastuksen läpi kulkevan virran.
Useimmat 3 mm ja 5 mm LEDit hehkuvat täydellä kirkkaudella 20 mA. Tätä suurempi virta voi poistaa ne käytöstä, kun taas pienempi voimakkuus heikentää niiden kirkkautta aiheuttamatta mitään haittaa.

Joten haluamme kytkeä LEDin 5 V piiriin niin, että se kuljettaa 20 mA:n virtaa. Koska kaikki osat ovat samassa piirissä, vastuksen virta on myös 20 mA.
Saamme
2V = 20 mA * R
2V = 0,02A * R
R = 100 ohmia

100 ohmia on pienin vastus, on parempi käyttää hieman enemmän, koska LEDeillä on jonkin verran vaihtelua ominaisuuksissa.
Tässä esimerkissä käytetään 220 ohmin vastusta. Vain siksi, että kirjoittajalla on niitä paljon: silmänisku: .

Työnnä LED levyn keskellä oleviin reikiin niin, että sen pitkä johdin on kytketty yhteen vastusjohtimista. Kytke vastuksen toinen pää 5V:iin ja LEDin toinen johto GND:hen. LEDin pitäisi syttyä.

Huomaa, että LEDin kytkemisessä on eroja. Virta kulkee pidemmästä terminaalista lyhyempään. Kaaviossa voit kuvitella, että virta kulkee kolmion suunnassa. Yritä kääntää LED ylösalaisin ja huomaat, että se ei syty.

Mutta vastuksen liittämisellä ei ole mitään merkitystä. Voit kääntää sen tai yrittää kytkeä sen toiseen LED-nastaan, tämä ei vaikuta piirin toimintaan. Se rajoittaa silti LEDin kautta kulkevaa virtaa.

Arduino Sketchin anatomia.

Arduinon ohjelmia kutsutaan sketchiksi. Ne koostuvat kahdesta päätoiminnosta. Toiminto perustaa ja toimivuus silmukka
Tämän toiminnon sisällä määrität kaikki perusasetukset. Mitkä nastat toimivat tulona tai lähtönä, mitkä kirjastot liitetään, alustetaan muuttujat. Toiminto Perustaa() suoritetaan vain kerran luonnoksen aikana, kun ohjelman suoritus alkaa.
tämä on päätoiminto, joka suoritetaan sen jälkeen perustaa(). Itse asiassa se on itse ohjelma. Tämä toiminto toimii toistaiseksi, kunnes katkaiset virran.

Arduino vilkkuva LED



Tässä esimerkissä yhdistämme LED-piirin yhteen Arduinon digitaalisista nastaista ja kytkemme sen päälle ja pois ohjelman avulla, ja opit myös useita hyödyllisiä toimintoja.

Tätä toimintoa käytetään perustaa() osa ohjelmaa ja sen avulla alustetaan nastat, joita käytät tulona (INPUT) tai poistu (OUTPUT). Et voi lukea tai kirjoittaa tietoja nastasta ennen kuin asetat sen vastaavasti pinMode. Tällä funktiolla on kaksi argumenttia: pin koodi on käyttämäsi PIN-koodi.

tila- määrittää kuinka pin toimii. Sisäänkäynnillä (INPUT) tai poistu (OUTPUT). LED-valon sytyttämiseksi meidän on annettava signaali FROM Arduino. Tätä varten määritämme lähtönastan.
- tätä toimintoa käytetään tilan asettamiseen (osavaltio) pina (pin koodi). Päätiloja on kaksi (itse asiassa 3), yksi on KORKEA, nastassa on 5 V, se on jotain muuta Matala ja pinni on 0v. Tämä tarkoittaa, että LEDin sytyttämiseksi meidän on asetettava LEDiin kytketty nasta korkealle tasolle KORKEA.

Viive. Viivästyttää ohjelman toimintaa msec:ssä määritellyn ajan.
Alla on koodi, joka saa LEDin vilkkumaan.
//LED Blink int ledPin = 7;//Arduino-nasta, johon LED on kytketty void setup() ( pinMode(ledPin, OUTPUT);// nastan asettaminen OUTPUT:ksi) void loop() ( digitalWrite(ledPin, HIGH) ;// kytke LED-viive (1000) päälle

Pienet selitykset koodiin.
"//":lla alkavat rivit ovat kommentteja, ja Arduino jättää ne huomiotta.
Kaikki komennot päättyvät puolipisteeseen; jos unohdat ne, saat virheilmoituksen.

ledPin on muuttuja. Muuttujia käytetään ohjelmissa arvojen tallentamiseen. Tässä esimerkissä muuttuja ledPin arvo on määritetty 7:ksi, tämä on Arduinon pin-numero. Kun Arduino-ohjelma kohtaa rivin, jossa on muuttuja ledPin, se käyttää aiemmin määrittämäämme arvoa.
Ennätys siis pinMode(ledPin, OUTPUT) samanlainen kuin tallennus pinMode(7, OUTPUT).
Mutta ensimmäisessä tapauksessa sinun tarvitsee vain muuttaa muuttuja ja se muuttuu jokaisella rivillä, jolla sitä käytetään, ja toisessa tapauksessa, jotta voit muuttaa muuttujaa, sinun on tehtävä muutokset manuaalisesti jokaisessa komennossa.

Ensimmäinen rivi osoittaa muuttujan tyypin. Arduinoa ohjelmoitaessa on tärkeää ilmoittaa aina muuttujien tyyppi. Toistaiseksi riittää, että tiedät sen INT ilmoittaa negatiiviset ja positiiviset numerot.
Alla on simulaatio luonnoksesta. Napsauta Käynnistä nähdäksesi piirin toiminnassa.

Kuten odotettiin, LED sammuu ja syttyy takaisin yhden sekunnin kuluttua. Kokeile muuttaa viivettä nähdäksesi, miten se toimii.

Useiden LEDien ohjaus.

Tässä esimerkissä opit ohjaamaan useita LEDejä. Voit tehdä tämän asentamalla 3 muuta LEDiä levylle ja liittämällä ne vastuksiin ja Arduino-nastoihin alla olevan kuvan mukaisesti.

Jotta LED-valot voidaan sytyttää ja sammuttaa yksitellen, sinun on kirjoitettava tämän kaltainen ohjelma:
//Multi LED Blink int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup() ( //asettaa nastat OUTPUT:ksi pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); ) void loop() ( digitalWrite(led1Pin, HIGH) );//kytke LED-viive (1000) päälle LEDit digitalWrite(led2Pin , HIGH);//sytytä LED-viive(1000);//viive 1 s digitalWrite(led2Pin, LOW);//sammuttavat LED-viiveen(1000);//viive 1 s digitalWrite(led3Pin, HIGH) );//sytytä LED-viive (1000);// viive 1 s digitalWrite(led3Pin, LOW);//sammuta LED-viive (1000);//viive 1 s digitalWrite(led4Pin, HIGH);//kytke päälle LED-viive (1000);// viive 1 s digitalWrite(led4Pin, LOW);//sammuttaa LED-viive (1000);//viive 1 s

Tämä ohjelma toimii hyvin, mutta se ei ole järkevin ratkaisu. Koodi on vaihdettava. Jotta ohjelma toimisi yhä uudelleen, käytämme konstruktiota nimeltä .
Silmukat ovat hyödyllisiä, kun sinun on toistettava sama toiminto useita kertoja. Yllä olevassa koodissa toistamme rivit

DigitalWrite (led4Pin, KORKEA); viive (1000); digitalWrite(led4Pin, LOW); viive (1000);
täydellinen luonnoskoodi liitteenä (lataukset: 1260)

LED-kirkkauden säätö

Joskus joudut muuttamaan ohjelman LEDien kirkkautta. Tämä voidaan tehdä komennolla analogWrite() . Tämä komento sytyttää ja sammuttaa LEDin niin nopeasti, että silmä ei näe välkkymistä. Jos LED palaa puolet ajasta ja sammuu puolet ajasta, näyttää visuaalisesti, että se hehkuu puolet kirkkaudestaan. Tätä kutsutaan pulssinleveysmodulaatioksi (PWM tai PWM englanniksi). Välilevyä käytetään melko usein, koska sillä voidaan ohjata "analogista" komponenttia digitaalisella koodilla. Kaikki Arduino-nastat eivät sovellu näihin tarkoituksiin. Vain ne johtopäätökset, joiden lähellä tällainen nimitys tehdään " ~ ". Näet sen nastojen 3,5,6,9,10,11 vieressä.
Liitä yksi LED-valoistasi yhteen PWM-nastasta (kirjoittajalle tämä on nasta 9). Suorita nyt LED-vilkkusketsi, mutta muuta ensin komento digitalWrite() päällä analogWrite(). analogWrite() on kaksi argumenttia: ensimmäinen on pin-numero ja toinen on PWM-arvo (0-255), suhteessa LEDeihin tämä on niiden kirkkaus ja sähkömoottoreille pyörimisnopeus. Alla on esimerkkikoodi eri LED-kirkkauksille.
//Muuta LEDin kirkkautta int ledPin = 9;//tähän pinoon on kytketty LED void setup() ( pinMode(ledPin, OUTPUT);// nastan alustaminen lähtöön ) void loop() ( analogWrite( ledPin, 255);// täysi kirkkaus (255/255 = 1) viive(1000);//tauko 1 s digitalWrite(ledPin, LOW);//sammuta LED-viive(1000);//tauko 1 s analogWrite( ledPin, 191);//kirkkaus 3/4 (191/255 ~= 0,75) viive(1000);//tauko 1 s digitalWrite(ledPin, LOW);//sammuta LED-viive (1000);// tauko 1 s analogWrite(ledPin, 127); //puoli kirkkautta (127/255 ~= 0,5) viive(1000);//tauko 1 s digitalWrite(ledPin, LOW);//sammuta LED-viive(1000);/ /tauko 1 s analogWrite(ledPin, 63); //neljänneskirkkaus (63/255 ~= 0,25) viive(1000);//tauko 1 s digitalWrite(ledPin, LOW);//sammuta LED-viive (1000) ;//tauko 1 sekunti)

Yritä muuttaa komennon PWM-arvoa analogWrite() nähdäksesi kuinka tämä vaikuttaa kirkkauteen.
Seuraavaksi opit säätämään kirkkautta sujuvasti täydestä nollaan. Voit tietysti kopioida koodinpätkän 255 kertaa
analogWrite(ledPin, kirkkaus); viive(5);//lyhyt viive kirkkaus = kirkkaus + 1;
Mutta ymmärräthän, tämä ei ole käytännöllistä. Paras tapa tehdä tämä on käyttää aiemmin käyttämäämme FOR-silmukkaa.
Seuraavassa esimerkissä käytetään kahta silmukkaa, joista toinen pienentää kirkkautta arvosta 255 arvoon 0
for (int kirkkaus=0;kirkkaus=0;kirkkaus-)( analogWrite(ledPin,kirkkaus); viive(5); )
viive (5) käytetään hidastamaan kirkkauden häipymisnopeutta 5*256=1280ms=1.28s)
Ensimmäisellä rivillä käytetään " kirkkaus-", jotta kirkkausarvo pienenee 1:llä joka kerta, kun silmukka toistetaan. Huomaa, että silmukka jatkuu, kunnes kirkkaus >=0.Kyltin vaihtaminen > merkin päällä >= sisällytimme 0 kirkkausalueeseen. Tämä luonnos on mallinnettu alla. //muuta kirkkautta tasaisesti int ledPin = 9;//tähän pinoon on kytketty LED void setup() ( pinMode(ledPin, OUTPUT);// lähtönastan alustus) void loop() ( //lisää tasaisesti kirkkaus (0 - 255 ) kohteelle (int kirkkaus=0;kirkkaus=0;kirkkaus-)( analogWrite(ledPin,kirkkaus); viive(5); ) delay(1000);//odota 1 s //vähennä kirkkautta tasaisesti (255 - 0) kohteelle (int kirkkaus=255;kirkkaus>=0;kirkkaus-)( analogWrite(ledPin,kirkkaus); viive(5); ) viive (1000);//odota 1 sekunti ) )
Se ei ole kovin näkyvää, mutta ajatus on selvä.

RGB LED ja Arduino

RGB-LED on itse asiassa kolme eriväristä LEDiä yhdessä paketissa.

Lisäämällä erilaisia ​​LED-valoja eri kirkkauksilla voit yhdistää niitä luomaan erilaisia ​​värejä. Arduinolle, jossa kirkkaustasojen lukumäärä on 256, saat 256^3=16581375 mahdollista väriä. Todellisuudessa niitä tulee tietysti olemaan vähemmän.
LED, jota käytämme, on yhteinen katodi. Nuo. kaikki kolme LEDiä on rakenteellisesti kytketty katodeilla yhteen liittimeen. Yhdistämme tämän nastan GND-nastaan. Loput nastat on kytkettävä PWM-nastoihin rajoittavien vastusten kautta. Kirjoittaja käytti nastat 9-11. Näin jokaista LEDiä voidaan ohjata erikseen. Ensimmäinen luonnos näyttää, kuinka jokainen LED kytketään päälle erikseen.



//RGB LED - testaa //pin liitännät int red = 9; int vihreä = 10; int sininen = 11; void setup())( pinMode(punainen, OUTPUT); pinMode(sininen, OUTPUT); pinMode(vihreä, OUTPUT); ) void loop())( //sytytä/poista punainen LED digitalWrite(punainen, KORKEA); viive (500) ; digitalWrite (punainen, LOW); viive (500); //vihreän LEDin kytkeminen päälle/pois digitalWrite (vihreä, HIGH); viive (500); digitalWrite (vihreä, LOW); viive (500); // kytke päälle/pois sininen LED digitalWrite(sininen, HIGH); viive(500); digitalWrite(sininen, LOW); viive(500); )

Seuraava esimerkki käyttää komentoja analogWrite() ja saada erilaisia ​​satunnaisia ​​kirkkausarvoja LEDeille. Näet eri värit muuttuvan satunnaisesti.
//RGB LED - satunnaiset värit //pin liitännät int red = 9; int vihreä = 10; int sininen = 11; void setup())( pinMode(punainen, OUTPUT); pinMode(sininen, OUTPUT); pinMode(vihreä, OUTPUT); ) void loop())( //valitse satunnainen väri analogWrite(punainen, satunnainen(256)); analogWrite(sininen, satunnainen(256)); analogWrite(vihreä, satunnainen(256)); viive(1000);//odota sekunti )

Satunnainen (256)-palauttaa satunnaisluvun välillä 0-255.
Liitteenä olevassa tiedostossa on luonnos, joka näyttää sujuvat värisiirtymät punaisesta vihreään, sitten siniseen, punaiseen, vihreään jne. (lataukset: 348)
Esimerkkiluonnos toimii, mutta siinä on paljon päällekkäistä koodia. Voit yksinkertaistaa koodia kirjoittamalla oman aputoiminnon, joka vaihtuu sujuvasti väristä toiseen.
Tältä se näyttää: (lataukset: 385)
Katsotaanpa funktion määritelmää pala palalta. Funktiota kutsutaan häivytin ja sillä on kaksi argumenttia. Jokainen argumentti erotetaan pilkulla, ja sen tyyppi on ilmoitettu funktion määritelmän ensimmäisellä rivillä: void fader(int color1, int color2). Näet, että molemmat argumentit on ilmoitettu int, ja heille annetaan nimet väri 1 Ja väri 2 ehtomuuttujina funktion määrittelemiseksi. Tyhjä tarkoittaa, että funktio ei palauta arvoja, se yksinkertaisesti suorittaa komentoja. Jos sinun pitäisi kirjoittaa funktio, joka palauttaa kertolaskutuloksen, se näyttäisi tältä:
int kerroin(int numero1, int luku2)( int tuote = numero1*luku2; palautustulos; )
Huomaa, kuinka määritimme tyypin int sen sijaan palautustyyppinä
mitätön.
Toiminnon sisällä on komentoja, joita olet käyttänyt jo edellisessä luonnoksessa, vain pin-numerot on korvattu väri 1 Ja väri 2. Funktiota kutsutaan häivytin, sen argumentit lasketaan seuraavasti väri1 = punainen Ja väri2 = vihreä. Arkisto sisältää täydellisen luonnoksen funktioiden avulla (lataukset: 288)

Painike

Seuraavassa luonnoksessa käytetään painiketta, jossa on normaalisti avoimet koskettimet ilman lukitusta.


Tämä tarkoittaa, että kun painiketta ei paineta, sen läpi ei kulje virtaa, ja vapauttamisen jälkeen painike palaa alkuperäiseen asentoonsa.
Painikkeen lisäksi piiri käyttää vastusta. Tässä tapauksessa se ei rajoita virtaa, vaan "vetää" painikkeen 0V:iin (GND). Nuo. Kunnes painiketta painetaan, Arduino-nasta, johon se on kytketty, laskee alhaiseksi. Piirissä käytetty vastus on 10 kOhm.


//määritä, milloin painiketta painetaan int buttonPin = 7; void setup())( pinMode(buttonPin, INPUT);//alustaa nasta tuloon Serial.begin(9600);//alustaa sarjaportti) void loop())( if (digitalRead(buttonPin)==HIGH )(//jos painiketta painetaan Serial.println("painattu"); // näytä "pressed" ) else ( Serial.println("painamaton"); // muuten "painamaton" ) )
Tässä luonnoksessa on useita uusia komentoja.
-Tämä komento ottaa testattavan lähdön korkeat ja matalat arvot. Tämä lähtö on ensin konfiguroitava tuloksi setup().
; //jossa buttonPin on PIN-koodi, johon painike on liitetty.
Sarjaportin avulla Arduino voi lähettää viestejä tietokoneelle, kun ohjain itse suorittaa ohjelmaa. Tästä on hyötyä ohjelman virheenkorjauksessa, viestien lähettämisessä muihin laitteisiin tai sovelluksiin. Voit ottaa tiedonsiirron käyttöön sarjaportin kautta (kutsutaan myös UARTiksi tai USARTiksi), sinun on alustettava se setup()

Serial.begin() on vain yksi argumentti - tämä on tiedonsiirtonopeus Arduinon ja tietokoneen välillä.
Luonnos käyttää komentoa, joka näyttää viestin näytöllä Arduino IDE:ssä (Tools >> Serial Monitor).
- suunnittelun avulla voit hallita ohjelman suorittamisen edistymistä yhdistämällä useita tarkistuksia yhteen paikkaan.
Jos digitalRead palauttaa HIGH, sana "pressed" näkyy näytössä. Muussa tapauksessa (muuten) sana "vapautettu" näkyy näytössä. Nyt voit yrittää sytyttää ja sammuttaa LEDin painamalla painiketta.
//painikkeen painalluksen tunnistus LED-lähdöllä int buttonPin = 7; int ledPin = 8; void setup())( pinMode(buttonPin, INPUT);//tällä kertaa asetamme painikkeen nastaksi INPUT pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin) )= =KORKEA)( digitalWrite(ledPin,HIGH); Serial.println("painattu"); ) else ( digitalWrite(ledPin,LOW); Serial.println("painaamaton"); ) )

Analoginen tulo.

analoginen Read voit lukea tietoja yhdestä Arduinon analogisista nastaista ja näyttää arvon välillä 0 (0 V) - 1023 (5 V). Jos jännite analogisessa sisääntulossa on 2,5 V, tulostetaan 2,5 / 5 * 1023 = 512
analoginen Read on vain yksi argumentti - Tämä on analogisen tulon numero (A0-A5). Seuraava piirros näyttää koodin jännitteen lukemiseksi potentiometristä. Liitä tätä varten säädettävä vastus, ulommat liittimet 5V- ja GND-nastoihin ja keskiliitin A0-tuloon.

Suorita seuraava koodi ja katso sarjanäytöstä, kuinka arvot muuttuvat vastuksen nupin pyörimisestä riippuen.
//analoginen tulo int potPin = A0;//potentiometrin keskinasta on kytketty tähän pinoon void setup())( //analoginen nasta on oletusarvoisesti mukana tulona, ​​joten alustusta ei tarvita Serial.begin(9600 ); ) void loop())( int potVal = analogRead(potPin);//potVal on numero välillä 0 ja 1023 Serial.println(potVal); )
Seuraava luonnos yhdistää painikkeen napsautusluonnoksen ja LED-kirkkauden säätöluonnoksen. LED syttyy painikkeesta ja kirkkautta ohjataan potentiometrillä.
//painikkeen painalluksen tunnistus LED-lähdöllä ja vaihtelevalla intensiteetillä 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)(//jos painiketta painetaan int analogVal = analogiRead(potPin);int skaalattuVal = kartta(analogVal, 0, 1023, 0, 255); analogWrite(ledPin, scaldVal);//sytytä led, jonka intensiteetti asettaa potti Serial.println("painattu"); ) else ( digitalWrite(ledPin, LOW);//sammuta, jos painiketta ei paineta Serial.println("painamaton"); ) )

Uusien kotitekoisten tuotteiden toimitus postiin

Saat sähköpostiisi valikoiman uusia kotitekoisia tuotteita. Ei roskapostia, vain hyödyllisiä ideoita!