Cum citesc un switch cu micro:bit si Micropython

Care sunt componentele necesare?

Un switch (un buton cu revenire, adica un buton care are o lamela elastica ce il aduce la pozitia initiala dupa ce a fost apasat).

Un rezistor de 10kOhm sau 10000 de ohmi (verifica valoarea cu un multimetru sau verifica codul de culori ca in imagine). 

Evident, avem nevoie si de un micro:bit.

Cum construim circuitul? 

Hai sa folosim pinul 0 pentru a citi switch-ul.

La pinul 0 se leaga rezistorul si un terminal al switch-ului, iar rezistorul se leaga la 3V3. Celalalt terminal al switch-ului se leaga la GND.

Observatie: ca sa fim siguri ca selectam terminalele corecte la switch, atunci alegeti terminalele din doua colturi opuse (in diagonala).

Cum scriem codul?

In editorul de Micropython pentru micro:bit (https://python.microbit.org/v/1.1) sau in editorul offline Mu (https://codewith.mu/), scriem urmatorul program care va aprinde LED-ul din mijlocul display-ului daca buton este apasat si il stinge daca nu este apasat:

from microbit import *

while True:
   if p0.read_digital() == 0:
       display.set_pixel(2, 2, 9)
   else:
       display.set_pixel(2, 2, 0)

Desi este simplu, invatam o multime de lucruri:

  • prima linie (from microbit import *) este necesara pentru toate programele Micropython pentru micro:bit;
  • cum citim starea unui pin: p0.read_digital(). Aceasta returneaza doua valori: 1 (3.3V) sau 0 (0V);
  • daca butonul nu este apasat, la pinul 0 se citeste valoarea 1. Daca butonul este apasat, atunci va citi valoarea 0;
  • fiti atenti la spatiile goale din fata liniilor de cod! Daca modificam spatiile goale in alt mod decat le aseaza editorul, atunci vom avea eroare;
  • pentru a citi starea butoanelor de pe micro:bit (butoanele A si B) se foloseste instructiunea button_a.is_pressed().

Cum citesc un switch cu Arduino

Care sunt componentele necesare?

Un switch (un buton cu revenire, adica un buton care are o lamela elastica ce il aduce la pozitia initiala dupa ce a fost apasat).

Un rezistor de 10kOhm (verifica valoarea cu un multimetru). 

Evident, avem nevoie si de un Arduino. Nu este obligatoriu sa fie Arduino Uno.