» electronică » Arduino »Arduino pentru începători

Arduino pentru începători


Arduino este o placă de microcontroller pe care o puteți programa pentru a controla dispozitivele externe. Acesta interacționează cu lumea exterioară prin senzori, motoare, LED-uri, difuzoare ... și chiar pe Internet, ceea ce o face o platformă flexibilă pentru diverse proiecte. Există destul de multe microcontrolere, dar Arduino este popular datorită faptului că diverse proiecte sunt foarte stabilite și discutate pe Internet. Dacă căutați pe Google sau pe YouTube, veți găsi milioane de idei și informații pentru a începe să explorați singur Arduino.
Chiar dacă nu aveți experiență în programarea microcontrolerelor - cu Arduino veți afla rapid și veți învăța ceva electronică folosind experimente.

Ce ai nevoie pentru a începe?
Arduino Uno- 1 buc
Cablu USB-1 buc
Jumpers 1 buc
Placa de dezvoltare 1 buc
LED roșu 4 buc
220 ohm rezistor 4buc
Rezistență 10 cameră 1 buc
Buton fără fixare
potențiometru
LED RGB cu catod comun

Toate acestea pot fi cumpărate de la un magazin de radio local sau comandate pe Internet.

Un simulator online a fost utilizat pentru a demonstra și simula circuitele electrice.

Acest simulator funcționează cel mai bine în browserul Chrome.
Să aruncăm o privire mai atentă asupra Arduino.

Arduino nu este un computer mare la care se pot conecta circuite externe. Arduino Uno utilizează Atmega 328P
Acesta este cel mai mare cip de pe bord. Acest cip execută programe care sunt stocate în memoria sa. Puteți descărca programul prin usb folosind Arduino IDE. Portul USB oferă, de asemenea, putere arduino.

Există un conector de alimentare separat. Există două ieșiri pe placă, etichetate 5v și 3.3v, care sunt necesare pentru a alimenta diferite dispozitive. Veți găsi, de asemenea, ace marcate ca GND, acestea sunt legături la sol (terenul este 0V). Platforma Arduino are, de asemenea, 14 ieșiri digitale (pini), marcate cu numere de la 0 la 13, care sunt conectate la noduri externe și au două stări, mare sau redus (pornit sau oprit). Aceste contacte pot funcționa ca ieșiri sau ca intrări, adică. ele pot fie să transmită unele date și să controleze dispozitivele externe, fie să primească date de la dispozitive. Următoarele concluzii de pe consiliu sunt desemnate A0-A5. Acestea sunt intrări analogice care pot primi date de la diverși senzori. Acest lucru este deosebit de convenabil atunci când trebuie să măsurați un interval, cum ar fi temperatura. Intrările analogice au funcții suplimentare care pot fi activate separat.


Cum se folosește o panou.

Pentru a conecta temporar piesele, pentru a verifica modul în care funcționează dispozitivul, este necesară o panou de pană înainte de a vinde totul împreună.
Toate exemplele următoare sunt colectate pe o placă de panou, astfel încât să puteți face rapid modificări în circuit și să reutilizați piesele fără a vă deranja cu lipirea.

Plăcuța are șiruri de găuri în care puteți introduce piese și fire. Unele dintre aceste găuri sunt conectate electric între ele.

Cele două rânduri superioare și inferioare sunt conectate în serie de-a lungul întregii plăci. Aceste rânduri sunt utilizate pentru a alimenta circuitul. Poate fi 5v sau 3.3v, dar în orice caz, primul lucru pe care trebuie să îl faceți este să conectați 5v și GND la panoul de panou, așa cum se arată în figură. Uneori, aceste conexiuni de rând pot fi întrerupte în mijlocul plăcii, apoi, dacă este necesar, le puteți conecta, așa cum se arată în figură.




Găurile rămase situate în mijlocul plăcii sunt grupate în cinci găuri. Sunt utilizate pentru conectarea pieselor de circuit.

Primul lucru pe care îl conectăm la microcontrolerul nostru este LED-ul. Diagrama conexiunii electrice este prezentată în imagine.


De ce am nevoie de un rezistor în circuit? În acest caz, limitează curentul care trece prin LED. Fiecare LED este proiectat pentru un curent specific, iar dacă acest curent este mai mare, LED-ul va defecta. Aflați ce valoare ar trebui să aibă rezistorul folosind legea Ohm. Pentru cei care nu știu sau au uitat, legea lui Ohm spune că există o dependență liniară a curentului de tensiune. Adică cu cât aplicăm mai multă tensiune pe rezistor, cu atât va curge mai mult curent.
V = I * R
unde V-voltajul în toată rezistența
eu- curent prin rezistor
R- rezistența de găsit.
În primul rând, trebuie să aflăm tensiunea din rezistor. Majoritatea LED-urilor de 3 mm sau 5mm pe care le veți folosi au o tensiune de operare de 3V. Deci, pe rezistor trebuie să plătim 5-3 = 2v.

Apoi calculăm curentul care trece prin rezistor.
Majoritatea LED-urilor de 3 și 5 mm strălucesc la o luminozitate maximă la un curent de 20mA. Un curent mai mult decât acest lucru le poate dezactiva, iar un curent cu o putere mai mică le va reduce luminozitatea, fără a provoca daune.

Așadar, vrem să aprindem LED-ul în circuitul 5v, astfel încât acesta să aibă un curent de 20mA. Deoarece toate piesele sunt incluse într-un singur circuit, rezistența va avea și un curent de 20 mA.
Ajungem
2V = 20 mA * R
2V = 0,02A * R
R = 100 ohmi

100 Ohmi este rezistența minimă, este mai bine să folosiți puțin mai mult, deoarece LED-urile au unele variații ale caracteristicilor.
În acest exemplu, este utilizat un rezistor de 220 ohmi. Doar pentru că autorul are o mulțime de ei: cu ochiul:.

Introduceți LED-ul în orificiile din mijlocul plăcii, astfel încât borna sa lungă să fie conectată la unul dintre bornele rezistorului. Conectați cel de-al doilea capăt al rezistenței la 5V și conectați a doua ieșire a LED-ului la GND. LED-ul ar trebui să se aprindă.

Vă rugăm să rețineți că există o diferență în modul de conectare a LED-ului. Curentul curge de la un terminal mai lung la unul mai scurt. În diagrama se poate imagina că curentul curge în direcția în care este direcționat triunghiul. Încercați să rotiți ledul și veți vedea că nu se va aprinde.

Dar cum conectați rezistorul, nu există nicio diferență. Puteți să-l întoarceți sau să încercați să-l conectați la cealaltă ieșire a LED-ului, acest lucru nu va afecta funcționarea circuitului. Acesta va limita în continuare curentul prin LED.

Anatomia unui schit Arduino.

Programele pentru Arduino se numesc schita. Ele constau în două funcții principale. funcție configurarea și funcție buclă
în cadrul acestei funcții veți seta toate setările de bază. Ce concluzii vor funcționa la intrare sau ieșire, ce biblioteci să se conecteze, inițializează variabilele. funcție Configurare () Începe o singură dată în timpul schiței, când începe programul.
aceasta este funcția principală care este executată după configurare (). De fapt, acesta este programul în sine. Această funcție va rula la nesfârșit până când opriți alimentarea.

LED-ul intermitent Arduino




În acest exemplu, vom conecta un circuit cu un LED la unul dintre pinii digitali Arduino și îl vom porni și opri folosind programul și veți învăța, de asemenea, mai multe funcții utile.



- această funcție este folosită în configurare () părți ale programului și servește la inițializarea concluziilor pe care le veți folosi ca input (INPUT) sau ieșiți (IEȘIRE). Nu puteți citi sau scrie date din pin până când nu le setați corespunzător pinMode. Această funcție are două argumente: pinNumber- Acesta este numărul de pin pe care îl veți folosi.

mod- stabilește modul în care funcționează știftul. La intrare (INPUT) sau ieșiți (IEȘIRE). Pentru a aprinde ledul trebuie să dăm un semnal DE LA Arduino. Pentru a face acest lucru, configurăm pinul pentru a ieși.
- această funcție servește la setarea stării (Stat) bolț (PinNumber). Există două stări principale (în general există 3), una este HIGH, pinul va fi de 5v, altul este scăzut iar pinul va fi 0v. Așadar, pentru a aprinde LED-ul, trebuie să setăm un nivel înalt pe știftul conectat la LED HIGH.

- întârziere. Servește să întârzie programul pentru o perioadă specificată în ms.
Mai jos este codul care determină LED-ul să clipească.
// LED clipește

int ledPin = 7; // Pinul Arduino la care este conectat LED-ul

void setup () {
  pinMode (ledPin, OUTPUT); // setați pinul ca EXIT
}

void loop () {
  digitalWrite (ledPin, HIGH); // aprinde LED-ul
  întârziere (1000); // întârziere 1000 ms (1 sec)
  digitalWrite (ledPin, LOW); // Opriți LED-ul
  întârziere (1000); // așteptați 1 sec
}


O mică explicație asupra codului.
Liniile care încep cu „//” sunt comentarii ale lui Arduino care le ignoră.
Toate comenzile se încheie cu punct și virgulă; dacă le uitați, veți primi un mesaj de eroare.

ledPineste o variabilă. Variabilele sunt utilizate în programe pentru stocarea valorilor. În acest exemplu, variabila ledPin alocat o valoare de 7, acesta este numărul pin al Arduino. Când Arduino în program întâlnește un șir cu o variabilă ledPin , va folosi valoarea specificată anterior.
Deci, înregistrați pinMode (ledPin, OUTPUT) similar cu înregistrarea pinMode (7, OUTPUT).
Dar în primul caz, este suficient să schimbați variabila și se va schimba în fiecare linie unde este utilizată, iar în al doilea caz, pentru a schimba variabila, trebuie să faceți modificări în stilourile din fiecare comandă.

în prima linie se indică tipul variabilei. Când programați Arduino, este important să declarați întotdeauna tipul de variabile. Deocamdată, este suficient să știi asta INT anunță numere negative și pozitive.
Mai jos este prezentat modelare schiță. Apăsați Start pentru a vizualiza funcționarea circuitului.



După cum era de așteptat, LED-ul se stinge și se aprinde după o secundă. Încercați să modificați întârzierea pentru a vedea cum funcționează.

Gestionarea mai multor LED-uri.

În acest exemplu, veți învăța cum să controlați mai multe leduri. Pentru a face acest lucru, instalați încă 3 leduri pe placă și conectați-le la rezistențele și pinii Arduino, așa cum se arată mai jos.



Pentru a porni și opri LED-urile pe rând, trebuie să scrieți un program ca acesta:
// Clip LED multiplu

int led1Pin = 4;
int led2Pin = 5;
int led3Pin = 6;
int led4Pin = 7;

void setup () {
  // setați pinii ca EXIT
  pinMode (led1Pin, OUTPUT);
  pinMode (led2Pin, OUTPUT);
  pinMode (led3Pin, OUTPUT);
  pinMode (led4Pin, OUTPUT);
}

void loop () {
  digitalWrite (led1Pin, HIGH); // aprinde LED-ul
  întârziere (1000); // întârziere 1 sec
  digitalWrite (led1Pin, LOW); // stinge LED-ul
  întârziere (1000); // întârziere 1 sec

  // faceți același lucru pentru celelalte 3 LED-uri
  digitalWrite (led2Pin, HIGH); // aprinde LED-ul
  întârziere (1000); // întârziere 1 sec
  digitalWrite (led2Pin, LOW); // stinge LED-ul
  întârziere (1000); // întârziere 1 sec

  digitalWrite (led3Pin, HIGH); // aprinde LED-ul
  întârziere (1000); // întârziere 1 sec
  digitalWrite (led3Pin, LOW); // stinge LED-ul
  întârziere (1000); // întârziere 1 sec

  digitalWrite (led4Pin, HIGH); // aprinde LED-ul
  întârziere (1000); // întârziere 1 sec
  digitalWrite (led4Pin, LOW); // stinge LED-ul
  întârziere (1000); // întârziere 1 sec
}


Acest program va funcționa bine, dar aceasta nu este soluția cea mai rațională. Codul trebuie schimbat. Pentru ca programul să funcționeze încă o dată, vom folosi construcția numită.
Ciclurile sunt convenabile atunci când trebuie să repetați aceeași acțiune de mai multe ori. În codul de mai sus, repetăm ​​liniile

digitalWrite (led4Pin, HIGH);
întârziere (1000);
digitalWrite (led4Pin, LOW);
întârziere (1000); 

cod complet de schiță în atașament for.zip [720 b] (descărcări: 1410)

Reglare luminozitate LED

Uneori, va trebui să schimbați luminozitatea LED-urilor din program. Aceasta se poate face folosind comanda analogWrite (). Această comandă pornește și se stinge LED-ul atât de repede încât ochiul nu vede acest pâlpâire. Dacă LED-ul este pornit jumătate din timp și jumătate stins, va apărea vizual că este aprins la jumătate din luminozitate. Aceasta se numește modularea lățimii pulsului (PWM sau PWM în engleză). PWM este utilizat destul de des, deoarece poate fi folosit pentru a controla componenta „analogică” folosind un cod digital. Nu toți acei Arduino sunt potriviți în aceste scopuri. Doar acele concluzii în jurul cărora este trasă o asemenea desemnare "~“.Îl veți vedea lângă pinii 3,5,6,9,10,11.
Conectați unul dintre LED-urile dvs. la una dintre ieșirile PWM (pentru autor, acesta este pinul 9). Acum rulați schița care luminează intermitent, dar mai întâi schimbați comanda digitalWrite () pe analogWrite (). analogWrite () Are două argumente: primul este numărul pinului, iar al doilea este valoarea PWM (0-255), așa cum se aplică LED-urilor, aceasta va fi luminozitatea lor, iar pentru motoarele electrice, viteza de rotație. Mai jos este un cod de exemplu pentru luminozitatea LED-urilor diferite.
// Schimbați luminozitatea LED-ului

int ledPin = 9; // LED conectat la acest pin
void setup () {
  pinMode (ledPin, OUTPUT); // inițializează pinul către ieșire
}

void loop () {
  analogWrite (ledPin, 255); // luminozitate completă (255/255 = 1)
  întârziere (1000); // pauză 1 sec
  digitalWrite (ledPin, LOW); // stingeți LED-ul
  întârziere (1000); // pauză 1 sec

  analogWrite (ledPin, 191); // luminozitate la 3/4 (191/255 ~ = 0,75)
  întârziere (1000); // pauză 1 sec
  digitalWrite (ledPin, LOW); // stingeți LED-ul
  întârziere (1000); // pauză 1 sec

  analogWrite (ledPin, 127); // jumătate luminozitate (127/255 ~ = 0,5)
  întârziere (1000); // pauză 1 sec
  digitalWrite (ledPin, LOW); // stingeți LED-ul
  întârziere (1000); // pauză 1 sec

  analogWrite (ledPin, 63); // luminozitatea sferturilor (63/255 ~ = 0.25)
  întârziere (1000); // pauză 1 sec
  digitalWrite (ledPin, LOW); // stingeți LED-ul
  întârziere (1000); // pauză 1 sec
}


Încercați să schimbați valoarea PWM din comandă analogWrite ()pentru a vedea cum afectează luminozitatea.
În continuare, veți învăța cum să reglați luminozitatea de la complet la zero. Puteți, desigur, să copiați o bucată de cod de 255 ori
analogWrite (ledPin, luminozitate);
întârziere (5); // întârziere scurtă
luminozitate = luminozitate + 1;

Dar, înțelegeți - nu va fi practic. Pentru a face acest lucru, este mai bine să utilizați bucla FOR care a fost folosită anterior.
Următorul exemplu utilizează două cicluri, unul pentru a reduce luminozitatea de la 255 la 0
for (int luminozitate = 0; luminozitate = 0; luminozitate -) {

analogWrite (ledPin, luminozitate);
întârziere (5);

}

întârziere (5) utilizat pentru a încetini ritmul de creștere și scădere a luminozității 5 * 256 = 1280 ms = 1,28 sec.)
Prima linie folosește „Brightness-"pentru ca valoarea luminozității să scadă cu 1, de fiecare dată când se repetă ciclul. Rețineți că ciclul va funcționa atât timp cât luminozitate> = 0Înlocuirea semnului > pe semn >= am inclus 0 în gama de luminozitate. Această schiță este modelată mai jos.
// schimbați ușor luminozitatea

int ledPin = 9; // LED-ul este conectat la acest pin

void setup () {
  pinMode (ledPin, OUTPUT); // inițializează pinul pentru a ieși
}

void loop () {
  // crește treptat luminozitatea (de la 0 la 255)
  for (int luminozitate = 0; luminozitate = 0; luminozitate -) {
    analogWrite (ledPin, luminozitate);
    întârziere (5);
  }

  întârziere (1000); // așteptați 1 sec
 // scade lin luminozitatea (255 la 0)
  for (luminozitate int = 255; luminozitate> = 0; luminozitate -) {
    analogWrite (ledPin, luminozitate);
    întârziere (5);
  }

  întârziere (1000); // așteptați 1 sec
}
}

Acest lucru nu este foarte vizibil, dar ideea este clară.



RGB LED și Arduino

LED-ul RGB este de fapt trei LED-uri de culori diferite într-o singură carcasă.



Inclusiv diferite LED-uri cu luminozitate diferită, puteți combina și obține culori diferite. Pentru Arduino, unde numărul de gradații de luminozitate este de 256, obțineți 256 ^ 3 = 16581375 culori posibile. În realitate, desigur, vor fi mai puțini dintre ei.
LED-ul pe care îl vom folosi este un catod comun. Ie toate cele trei LED-uri sunt conectate structural de catodi la un terminal. Vom conecta acest pin la pinul GND. Terminalele rămase, prin rezistențele de limitare, trebuie conectate la bornele PWM. Autorul a folosit concluziile 9-11. Astfel, va fi posibil să controlați fiecare LED separat. Prima schiță arată cum să porniți fiecare LED separat.



// LED RGB - test

// conexiuni pin
int roșu = 9;
verde int = 10;
int albastru = 11;

void setup () {
  pinMode (roșu, OUTPUT);
  pinMode (albastru, OUTPUT);
  pinMode (verde, OUTPUT);
}

void loop () {
  // porniți / opriți LED-ul roșu
  digitalWrite (roșu, HIGH);
  întârziere (500);
  digitalWrite (roșu, LOW);
  întârziere (500);
  
  // porniți / opriți ledul verde
  digitalWrite (verde, înalt);
  întârziere (500);
  digitalWrite (verde, LOW);
  întârziere (500);

  // porniți / opriți LED-ul albastru
  digitalWrite (albastru, HIGH);
  întârziere (500);
  digitalWrite (albastru, LOW);
  întârziere (500);
}


Următorul exemplu utilizează comenzile analogWrite () și pentru a obține diverse valori ale luminozității aleatorii pentru LED-uri. Veți vedea diferite culori schimbând la întâmplare.
// LED RGB - culori aleatorii

// conexiuni pin
int roșu = 9;
verde int = 10;
int albastru = 11;
void setup () {
  pinMode (roșu, OUTPUT);
  pinMode (albastru, OUTPUT);
  pinMode (verde, OUTPUT);
}
void loop () {
  // alege o culoare aleatorie
  analogWrite (roșu, aleatoriu (256));
  analogWrite (albastru, aleatoriu (256));
  analogWrite (verde, aleatoriu (256));
  întârziere (1000); // așteptați o secundă
}


Aleatoriu (256)-Returnează un număr aleatoriu în intervalul de la 0 la 255.
În fișierul atașat există o schiță care demonstrează tranziții line ale culorilor de la roșu la verde, apoi la albastru, roșu, verde etc. perehody.zip [373 b] (descărcări: 386)
Un exemplu de schiță funcționează, dar există o mulțime de coduri duplicate. Puteți simplifica codul scriind propria funcție de asistent, care va schimba fără probleme o culoare în alta.
Iată cum va arăta: funktsiya.zip [263 b] (descărcări: 420)
Să analizăm definiția unei funcții în părți. Funcție numită fader și are două argumente. Fiecare argument este separat de o virgulă și are un tip declarat în prima linie a definiției funcției: void fader (int color1, int color2). Vedeți că ambele argumente sunt declarate ca fiind int, și li se dau nume culoare1 și COLOR2 ca variabile condiționale pentru definirea unei funcții. neavenit înseamnă că funcția nu returnează nicio valoare, pur și simplu execută comenzi. Dacă ar fi necesară scrierea unei funcții care a returnat rezultatul înmulțirii, ar arăta astfel:
multiplicator int (număr int 1, număr 2 int) {

produs int = număr1 * număr2;
returnare produs;

} 

Observați cum am declarat tipul int în schimb, ca tip retur
vid.
În cadrul funcției există comenzi pe care le-ați folosit deja în schița anterioară, doar numerele de pin au fost înlocuite cu culoare1 și COLOR2. Funcție numită fader, argumentele sale sunt calculate ca: culoare1 = roșu și culoare2 = verde. Arhiva schiță completă folosind funcții funktsii.zip [392 b] (descărcări: 320)

buton

În următoarea schiță, va fi utilizat un buton cu contacte normal deschise, fără remediere.

Arduino pentru începători

Aceasta înseamnă că, în timp ce butonul nu este apăsat, curentul nu curge prin el, iar după eliberare, butonul revine la poziția inițială.
În circuit, pe lângă buton, este folosit un rezistor. În acest caz, nu limitează curentul, ci „trage” butonul la 0v (GND). Ie până când este apăsat butonul pe pinul Arduino la care este conectat, nivelul va fi scăzut. Rezistența folosită în circuitul de 10 kΩ.

// definiți clic pe buton
buton intPin = 7;
void setup () {
  pinMode (buttonPin, INPUT); // inițializați pinul de intrare
  Serial.begin (9600); // inițializează portul serial
}
void loop () {
  if (digitalRead (buttonPin) == HIGH) {// dacă este apăsat butonul
    Serial.println ("apăsat"); // print „apăsat”
  } altfel {
    Serial.println ("nepresat"); // altfel "nepresat"
  }
}

În această schiță există mai multe echipe noi.
-Această comandă ia valoarea înaltă (nivel înalt) și scăzut (nivel scăzut) a ieșirii verificate. Anterior, în configurare (), această ieșire trebuie configurată pentru a fi introdusă.
; // unde buttonPin este numărul pinului la care este conectat butonul.
Portul serial vă permite să trimiteți mesaje Arduino către computer, în timp ce controlerul în sine rulează programul. Acest lucru este util pentru depanarea unui program, trimiterea de mesaje către alte dispozitive sau aplicații. Pentru a activa transferul de date prin portul serial (cunoscut și sub numele de UART sau USART), trebuie inițializat în configurare ()

Serial.begin () are un singur argument este rata de transfer de date între Arduino și computer.
schita, o comanda este folosita pentru a afisa un mesaj pe ecran in IDE Arduino (Instrumente >> Serial Monitor).
- proiectarea vă permite să controlați progresul programului prin combinarea mai multor verificări într-un singur loc.
Dacă (dacă) digitalRead returnează HIGH, atunci pe monitor este afișat cuvântul "apăsat". Altfel (altfel) cuvântul „stors” este afișat pe monitor. Acum puteți încerca să porniți și să dezactivați LED-ul apăsând un buton.
// detectarea butonului cu ieșire LED
buton intPin = 7;
int ledPin = 8;
void setup () {
  pinMode (buttonPin, INPUT); // de data aceasta vom seta pinul butonului ca INPUT
  pinMode (ledPin, OUTPUT);
  Serial.begin (9600);
}
void loop () {
  if (digitalRead (buttonPin) == HIGH) {
    digitalWrite (ledPin, HIGH);
    Serial.println ("apăsat");
  } altfel {
    digitalWrite (ledPin, LOW);
    Serial.println ("nepresat");
  }
}


Intrare analogică.

analogRead vă permite să citiți date de la unul dintre pinii analogici Arduino și afișează o valoare în intervalul de la 0 (0V) la 1023 (5V). Dacă tensiunea la intrarea analogică este 2.5V, atunci vor fi tipărite 2.5 / 5 * 1023 = 512
analogRead are un singur argument- Acesta este numărul de intrare analogic (A0-A5). Următoarea schiță oferă un cod pentru citirea tensiunii de la un potențiometru. Pentru a face acest lucru, conectați un rezistor variabil, pinii extreme la pinii 5V și GND și pinul mijlociu la intrarea A0.


Rulați următorul cod și priviți în monitorul serial cum se schimbă valorile în funcție de rotația butonului de rezistență.
// intrare analogică

int potPin = A0; // ieșirea centrală a potențiometrului este conectată la acest pin

void setup () {
  // pinul analogic este activat implicit prin introducere, deci nu este necesară inițializarea
  Serial.begin (9600);
}

void loop () {
  int potVal = analogRead (potPin); // potVal este un număr între 0 și 1023
  Serial.println (potVal);
}

Următoarea schiță combină o schiță cu clic-buton și o schiță de control a luminozității LED. LED-ul se va aprinde de la buton, iar potențiometrul va controla luminozitatea strălucirii.
// detectarea butonului cu ieșire LED și intensitate variabilă
buton intPin = 7;
int ledPin = 9;
int potPin = A0;
void setup () {
  pinMode (butonPin, INPUT);
  pinMode (ledPin, OUTPUT);
  Serial.begin (9600);
}
void loop () {
  if (digitalRead (buttonPin) == HIGH) {// dacă butonul a fost apăsat
    int analogVal = analogRead (potPin);
    int scaledVal = hartă (analogVal, 0, 1023, 0, 255);
    analogWrite (ledPin, scaledVal); // porniți ledul cu intensitatea setată de pot
    Serial.println ("apăsat");
  } altfel {
    digitalWrite (ledPin, LOW); // opriți dacă butonul nu este apăsat
    Serial.println ("nepresat");
  }
}
8.7
9
9

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
4 comentarii
Așa funcționează așa cum trebuie - // crește treptat luminozitatea (de la 0 la 255)
for (int luminositate = 0; luminozitate <= 255; luminozitate ++) {
analogWrite (ledPin, luminozitate);
întârziere (5);
la compilare dă o eroare Arduino: 1.6.5 (Windows 7), placă "Arduino Nano, ATmega328"

sketch_sep20a: 25: eroare: declarație preconizată înainte de jetonul „}”
declarația preconizată înainte de simbolul „}”
Am copiat schița aprinderii lin.
LED-ul meu se aprinde brusc, dar se stinge lin.

Explicați te rog.
Am copiat schița aprinderii lin.
LED-ul meu se aprinde brusc, dar se stinge lin.

Explicați te rog.

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...