Acquista dagli USA | Acquista dal Regno Unito | Acquista dalla Germania | Acquista dall’Italia | Acquista dalla Francia | Acquista dalla Spagna | 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.
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)
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
Ora puoi vedere LCD mostrare:
Temperature: 25.01234 Cº
DownLoad Url osoyoo.com
You must be logged in to post a comment.
I can’t get to write in the LCD. My code is the same as the one in this page (lesson4 for raspberry pi pico in micropython), but nothing happens. I use some fuctions to interact with de LCD like backlight_on() or backlight_off() and it works, but when I use putstr() it doesn’t work.
¿Can you help me please?
firstly, please make sure you have properly adjust the brightness through the little screw in the back of LCD,
check this picture
https://osoyoo.com/wp-content/uploads/2017/05/LACC200602-6.jpg
Then make sure there is no error message when you run the Python code. If you have any error message, please show us the error message. Or you can send the screenshot of error message to [email protected]
It was about the brightness, excuse my clumsiness.
Thanks!