Comprar en EE. UU. | Comprar en el Reino Unido | Comprar en Alemania | Comprar en Italia | Comprar en Francia | Comprar en España | ここでご購入を! |
En esta lección, te mostraremos cómo enviar información de temperatura desde Pico a una pantalla LCD I2C.
I2C es un protocolo muy popular que puede intercambiar datos entre una computadora (Maestro) y sus dispositivos externos (Esclavo). Un dispositivo esclavo típico de I2C debe tener un pin de datos (SDA) y un pin de reloj (SCL) que deben conectarse a los pines SDA y SCL de Raspberry Pi Pico. Un par de pines SDA y SCL de Pico (BUS) puede conectarse en realidad a múltiples dispositivos esclavos. Cada dispositivo esclavo tiene una identificación de dirección única mediante la cual Pico puede encontrarlo en el programa.
En este proyecto, usaremos una pantalla LCD I2C como dispositivo esclavo. Usaremos el sensor de temperatura interno de la placa Pico para obtener la temperatura y mostrar los datos en la pantalla LCD I2C.
En el gráfico del circuito anterior, puedes ver que:
El pin VCC del LCD está conectado al pin Vbus de Pico (5V)
El pin GND del LCD está conectado a GND de Pico
El pin SDA del LCD está conectado al pin SDA de Pico (GP0)
El pin SCL del LCD está conectado al pin SCL de Pico (GP1)
En esta lección, usaremos dos bibliotecas de Python, lcd_api y pico_i2c_lcd, para acceder al LCD.
Por favor, descarga el archivo zip de la biblioteca desde https://osoyoo.com/driver/pico/pico_i2c_lcd.zip.
Después de descomprimir el archivo, verás dos archivos: lcd_api.py y pico_i2c_lcd.py. Usa Thonny para abrir cada archivo y guárdalos en el directorio raíz de Pico.
Puedes descargar el código Python para la lección 4 desde https://osoyoo.com/driver/pico/lesson4/pico-lesson4.py.
Más tarde, puedes usar Thonny para abrir pico-lesson4.py y cargarlo en Pico.
Aquí está el código completo con comentarios:
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()
Paso 1: Conecta la placa Pico a uno de los puertos USB de tu PC.
Paso 2: Si no has instalado el software Thonny o no sabes cómo usar el IDE de Thonny, por favor lee la lección 1.
Paso 3: Ahora abre el IDE de Python Thonny y selecciona MicroPython para Raspberry Pi Pico como el intérprete haciendo clic en ‘Ejecutar’ y luego seleccionándolo.
También, por favor selecciona el puerto COM al que está conectada tu placa Pico.
Después de eso, haz clic en OK para guardar la configuración.
Paso 4: Descomprime el archivo pico_i2c_lcd.zip. Verás dos archivos: lcd_api.py y pico_i2c_lcd.py. de la siguiente manera;
Usa Thonny para abrir cada archivo como sigue y luego guárdalos en el directorio raíz de Pico.
Luego, haz clic en OK.
Ahora puedes ver la pantalla LCD mostrar la temperatura como sigue:
Temperatura: 25.01234 °C
Después de que se complete la operación, presiona Ctrl+C para finalizar el comando.
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!