Cu ajutorul lui Raspberry Pi Pico putem converti un valoarea unei tensiune continue intr-o valoare digitala. Acest lucru se poate face cu ajutorul unuia din cele 3 convertoare Analog-Digitale pe care le are Pico (de fapt sunt 4 convertoare dar numai 3 pot fi folosite!). Aceste convertoare functioneaza pe 12 biti si sunt notate cu ADC0 (GPIO26 - pin 31), ADC1 (GPIO27 - pin 32) si ADC2 (GPIO28 - pin 34).
Pentru a citi o valoare cuprinsa intre 0V si 3.3V vom folosi un rezistor semireglabil cu o valoare de 1 kiloOhm. Acesta va fi conectat in felul urmator: cele 2 terminale se vor conecta la +3V3 (pin 36) si la GND (pin 38) iar cursorul se va conecta la ADC0 (pin 31).
Pentru inceput vom importa clasa ADC din libraria machine:
from machine import ADC
Apoi vom importa si clasa sleep din libraria time:
from time import sleep
In urmatoarea linie de cod vom declara o variabila numita analog. Aceasta variabila va initializa convertorul ADC0:
In acest tutorial vom vedea cum putem modifica timpii in care un led va fi pornit sau oprit. Pentru a face acest lucru vom folosi clasa Pin din libraria machine:
from machine import Pin
Pentru a pune si o pauza in executia codului vom folosi clasa sleep din libraria time:
from time import sleep
Inainte de a rula codul va trebui sa declaram si o variabila prin care comunicam microprocesorului la ce pin este conectat ledul. Aceasta variabila se decalara in felul urmator:
Pornind de la precedentul articol vom incerca si folosirea unui display 128*64 pixeli dar cu conectare pe interfata SPI. Displayul se conecteaza pe interfata SPI0 si se alimenteaza cu o tensiune de +3V3.
La fel ca in precedentul articol avem nevoie de libraria ssd1306.py.
Conexiunile dintre display si raspberry Pi Pico sunt cele de mai jos:
Avand la dispozitie un display OLED 128*32 pixeli cu driverul SSD1306 vom incerca folosirea acestuia impreuna cu Raspberry Pi Pico.
Displayul folosit de mine fiind pe interfata I2C va simplifica foarte mult conectarea deoarece conexiunea dintre acesta si raspberry Pi Pico se va face pe unul din porturile I2C disponibile. In cazul de fata vom folosi portul I2C0 iar pinii folositi vor fi GPIO8 (pin 11 pe placa) pentru SDA si GPIO9 (pin 12 pe placa) pentru SCL. Displayul se alimenteaza cu o tensiune de 3V3.
Displayul folosit este cel din fotografia de mai jos: