Primul microcontroler: LED care clipește, în Tinkercad
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
- Autentifică-te pe tinkercad.com și alege din meniu secțiunea Circuits → Create → circuit nou. (Dacă interfața diferă puțin, caută zona de creare a unui circuit nou — Tinkercad își mai rearanjează butoanele.)
- Din panoul de componente din dreapta, trage pe planșă: un Arduino Uno R3, o breadboard (mini e suficientă), un LED și un rezistor.
- 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.
- 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.
- 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.
Programul: blocuri care aprind și sting
- 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.
- 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.
- Apasă Start Simulation. LED-ul clipește: o secundă aprins, o secundă stins.
- 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++
- Î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);
}
- 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țialoop, pe care Arduino o cheamă iar și iar.setuprulează o singură dată la pornire și anunță că pinul 8 e de ieșire. - 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.