KULTUROSFERA

Primul microcontroler: LED care clipește, în Tinkercad

Lecția-suport: Lanțul de energie: constituenți și funcții

Semaforul, mașina de spălat, imprimanta — toate au înăuntru un microcontroler: un calculator cât unghia care rulează un singur program, la nesfârșit. Azi programezi primul tău microcontroler, un Arduino, fără să riști să arzi ceva: totul în simulator. La finalul laboratorului vei avea un circuit funcțional cu un LED care clipește în ritmul dictat de programul tău — „Hello, world!"-ul electronicii.

Ce îți trebuie

  • Un cont pe tinkercad.com — gratuit. Dacă profesorul a creat o clasă Tinkercad, intri cu codul clasei, fără e-mail propriu; întreabă-l înainte să-ți faci cont singur.
  • Browser — nu se instalează nimic.
  • Timp: 45 de minute — 15 pentru circuit, 15 pentru program, 15 pentru misiune.

Circuitul: Arduino, LED, rezistor

  1. Autentifică-te pe tinkercad.com și alege din meniu secțiunea CircuitsCreate → circuit nou. (Dacă interfața diferă puțin, caută zona de creare a unui circuit nou — Tinkercad își mai rearanjează butoanele.)
  2. Din panoul de componente din dreapta, trage pe planșă: un Arduino Uno R3, o breadboard (mini e suficientă), un LED și un rezistor.
  3. Setează rezistorul: clic pe el și scrie în căsuța de valoare 220 (ohmi). Rezistorul e bodyguard-ul LED-ului — fără el, curentul prea mare l-ar arde. În simulator chiar vezi asta: un LED legat direct afișează o avertizare.
  4. Fă legăturile trăgând fire de la un picior la altul (clic pe capăt, clic pe destinație):
    • pinul 8 al Arduino → un capăt al rezistorului;
    • celălalt capăt al rezistorului → piciorul lung al LED-ului (anodul — în simulator e piciorul îndoit);
    • piciorul scurt al LED-ului → pinul GND al Arduino.
  5. Colorează firele din bara de sus: roșu spre pin, negru spre GND. Nu e obligatoriu electric, dar e obligatoriu profesional — schemele se citesc din culori.
ArduinoUnopin 8GND220 ΩLEDlung +scurt −

Programul: blocuri care aprind și sting

  1. Cu Arduino selectat, apasă butonul Code. Se deschide editorul pe blocuri — și surpriză: Tinkercad a pus deja un program de test care clipește LED-ul de pe placă. Șterge blocurile existente ca să construiești de la zero.
  2. Trage din paletă, în interiorul zonei care se repetă la nesfârșit (microcontrolerele nu se opresc niciodată — asta e viața lor):
    • set pin 8 to HIGH — trimite curent pe pinul 8, LED-ul se aprinde;
    • wait 1 secs — pauză de o secundă;
    • set pin 8 to LOW — taie curentul, LED-ul se stinge;
    • încă un wait 1 secs.
  3. Apasă Start Simulation. LED-ul clipește: o secundă aprins, o secundă stins.
  4. Fără cele două pauze, ce s-ar întâmpla? Testează: șterge-le și rulează. LED-ul pare mereu aprins — se aprinde și se stinge de mii de ori pe secundă, prea repede pentru ochi. Pune pauzele la loc. Lecția: microcontrolerul e absurd de rapid; pauzele sunt pentru oameni.

Privirea în spatele blocurilor: C++

  1. În editorul de cod, schimbă modul din Blocks în Blocks + Text (meniul derulant de sus). În dreapta apare codul real, în limbajul C++, generat din blocurile tale:
void setup()
{
  pinMode(8, OUTPUT);
}

void loop()
{
  digitalWrite(8, HIGH);
  delay(1000);
  digitalWrite(8, LOW);
  delay(1000);
}
  1. Fă potrivirea bloc cu rând: set pin HIGH = digitalWrite(8, HIGH), wait 1 secs = delay(1000) (milisecunde!), iar repetiția la nesfârșit = funcția loop, pe care Arduino o cheamă iar și iar. setup rulează o singură dată la pornire și anunță că pinul 8 e de ieșire.
  2. Schimbă un bloc de așteptare la 0.2 secunde și privește cum textul se rescrie singur în delay(200). Blocurile și C++-ul sunt același program în două haine.

Dacă nu merge

  • LED-ul nu se aprinde deloc. Suspectul numărul 1: LED-ul montat invers. LED-ul e o supapă cu sens unic — piciorul lung trebuie să fie spre rezistor/pin, cel scurt spre GND. Rotește-l din simulator și repornește simularea.
  • LED-ul afișează o avertizare de curent prea mare. Rezistorul lipsește din drum sau are valoare prea mică. 220 de ohmi e valoarea de siguranță standard pentru un LED la 5V.
  • Programul pare corect, dar nimic nu clipește. Verifică numărul pinului: blocul spune pinul 8, dar firul tău pleacă din alt pin? Codul și circuitul trebuie să vorbească despre același pin.
  • Blocurile nu se leagă între ele. Trebuie să fie în interiorul blocului care se repetă, îmbinate vertical, ca la Scratch. Un bloc plutind separat nu se execută.
  • Simularea e înghețată sau lentă. Oprește-o (Stop Simulation), reîncarcă pagina din browser, pornește din nou. Tinkercad obosește după multe modificări cu simularea pornită — obișnuiește-te să oprești simularea cât editezi.

Misiunea ta

Nivel de bază: circuitul cu LED și rezistor clipește în ritm de 1 secundă, iar tu poți arăta în codul C++ rândul corespunzător fiecărui bloc.

Extindere: transformă clipirea în semnal SOS: trei clipiri scurte (0.2 s), trei lungi (0.6 s), trei scurte, pauză de 2 secunde, și de la capăt. Doar cu blocurile pe care le știi deja — dar numără-le înainte: câte îți trebuie?

Provocare: adaugă un al doilea LED (cu rezistorul lui!) pe pinul 9 și fă-le să clipească alternativ: când unul e aprins, celălalt e stins — un semafor de trecere de cale ferată. Schema pentru al doilea LED e identică, doar pinul diferă.

Ai terminat când:

  • LED-ul clipește și poți urmări cu degetul drumul complet al curentului;
  • ai văzut experimentul fără pauze și știi să explici de ce LED-ul „pare" mereu aprins;
  • pentru orice bloc din program poți indica rândul lui din C++;
  • ai schimbat ritmul clipirii din text (nu din blocuri) și a funcționat.