Authorized Online Retailers:

Buy from USA Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP

In questa lezione, vi mostreremo come inviare informazioni sulla temperatura da Pico allo schermo LCD I2C.

I2C è un protocollo molto popolare che può scambiare dati tra il computer (Master) e i suoi dispositivi esterni (Slave). Un tipico dispositivo slave I2C deve avere un pin di dati (SDA) e un pin di clock (SCL) che devono essere collegati ai pin SDA e SCL di Raspberry Pi Pico. Una coppia di pin SDA e SCL del Pico (BUS) può effettivamente collegarsi a più dispositivi slave. Ogni dispositivo slave ha un indirizzo ID unico con il quale Pico può trovarlo tramite programma.

In questo progetto, useremo un display LCD I2C come dispositivo slave. Useremo un sensore di temperatura interno alla scheda Pico per ottenere la temperatura e visualizzare i dati sul display LCD I2C.

  1. Scheda Raspberry Pi Pico e micro
  2. Cavo USB
  3. Un computer per eseguire Thonny Python IDEA breadboard
  4. Display LCD I2C 1602

Nel grafico del circuito di cui sopra, si può vedere che:
Pin VCC LCD collegato al pin Vbus di Pico (5V)
Pin LCD GND collegato a Pico GND
Pin SDA LCD collegato al pin SDA del Pico (GP0)
Pin LCD SCL collegato al pin Pico SCL (GP1)

lcd_api and pico_i2c_lcd library

In questa lezione, useremo lcd_api e pico_i2c_lcd due librerie Python per accedere a LCD. Scarica il file zip della libreria da: https://osoyoo.com/driver/pico/pico_i2c_lcd.zip

Scompattate il file zip di cui sopra, vedrete due file: lcd_api.py e pico_i2c_lcd.py. Usate Thonny per aprire ogni file e poi salvateli nella directory principale di Pico.

Potete scaricare il codice python della lezione 4 da https://osoyoo.com/driver/pico/lesson4/pico-lesson4.py

Puoi usare Thonny per aprire pico-lesson4.py e caricarlo su Pico in seguito:

from machine import I2C,Pin,ADC #import libraries to handle Pins, I2C and ADC
from time import sleep 
from pico_i2c_lcd import I2cLcd #import library to handle I2C LCD
sensor_temp = ADC(4)            #Internal Temperature sensor is connected to ADC 4
conversion_factor = 3.3/65535
def get_temperature():          #get temperature value from ADC 4 internal sensor
    reading = sensor_temp.read_u16() * conversion_factor
    temperature = 27 - (reading - 0.706)/0.001721
    return temperature

i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000) #initialize I2C port
I2C_ADDR = i2c.scan()[0].          #get I2C address
lcd = I2cLcd(i2c, I2C_ADDR, 2, 16) #initialize I2C display as 2x16
degree = bytearray([0x1c,0x14,0x1c,0x00,0x00,0x00,0x00,0x00]) #define a customized LCD icon for º (degree sign)
lcd.custom_char(0, degree)         #degree sign 'º' will be used as chr(0) in program
while True:       
    lcd.putstr("Temperature:\n"+str(get_temperature())+" C"+chr(0)) #display temperature to LCD
    sleep(4)
    lcd.clear()

Step 1:Collegare la scheda Pico a una delle porte USB del PC
Step 2:Se non avete installato il software Thonny o non sapete come usare Thonny IDE, leggete la lezione 1

Step 3: Ora aprite l’IDE Thonny Python, cliccate su Run per selezionare MicroPython per Rapsberry Pi Pico come interprete:

Seleziona anche la porta COM a cui è collegata la tua scheda Pico:

Dopo di che, cliccate su OK per salvare l’impostazione.

Step 4: Decomprimere il file pico_i2c_lcd.zip, si possono vedere due file: lcd_api.py e pico_i2c_lcd.py. Usa Thonny per aprire ogni file come segue;

e poi salvarli nella directory principale di Pico.

poi clicca su OK

Step 5: Aprire il file lesson4.py, fare clic sul piccolo pulsante ►, salvare questo py sul computer, quindi eseguire il codice Python.

Ora puoi vedere LCD mostrare:

Temperature:
25.01234 Cº

SCOPRI DI PIÙ CIRCA I COMPONENTI SKU:2021005900

No. Immagine Nome Prodotto Link
1 Scheda Raspberry Pi Pico https://osoyoo.store/products/raspberry-pi-pico-flexible-microcontroller-board-based-on-the-raspberry-pi-rp2040-dual-core-arm-cortex-m0-processor-1-pc?variant=39875307864175
2 Servo motore https://osoyoo.store/products/micro-servo-sg90-blue-for-arduino-v2-0-robot-carmodel-lacc200610?variant=31648847560815
3 Modulo Infrared Sensor https://osoyoo.store/products/hc-sr501-pir-motion-sensor-for-arduino?variant=31957812838511
4 Modulo RFID e carta https://osoyoo.store/products/osoyoo-rfid-module?variant=31970646130799
5 Pulsanti e capucci https://osoyoo.store/products/push-button-and-hats-5pcs?variant=39879253131375
6 LED(6 x Bianco, 6 x Rosso, 6 x Giallo, 6x Verde) https://osoyoo.store/products/led-packs-for-arduino?variant=31957816442991
7 Servo motore https://osoyoo.store/products/sg90-micro-servo-for-arduino-raspberry-pi-robot?variant=31957821096047
8 Piezo Buzzer Module https://osoyoo.store/products/piezo-buzzer-module-1pcs?variant=39879251656815
9 Display I2C LCD(16×2) https://osoyoo.store/products/i2c-lcd1602-display?variant=39875437101167
10 Cacciavite Philips https://osoyoo.store/products/phillips-screwdriver?variant=31930635780207https://osoyoo.store/products/single-channel-relay-module-for-arduino-raspberry-pi?variant=31955954401391
11 Breadboard per prototipi senza saldature https://osoyoo.store/products/solderless-prototype-breadboard-1pcs?variant=39879255457903
12 Ptenziomentro (10K Resistenza regolabile) https://osoyoo.store/products/potentionmeter-10k-adjustable-resistor-3pcs?variant=39879281016943
13 40Pin M to M Fili Jumper https://osoyoo.store/products/40pin-m-to-m-jumper-wires?variant=39879256539247
14 20Pin M to F Flli Jumper 15cm https://osoyoo.store/products/20pin-15cm-female-to-female-cable?variant=31930663305327