Προς το περιεχόμενο

micropython, with LCD I2C


tuxpower
Μετάβαση στην απάντηση Απαντήθηκε από immortalx,

Προτεινόμενες αναρτήσεις

Καλημέρα,

Δουλεύω με ενα Raspberry Pico, στο οποίο υπάρχει συνδεδεμένος ενας MQ2 gas sensor και ενα 16x2 LCD i2c.

ο κώδικας micropython είναι αυτός:

# MQ-2 library to use gas sensor with Raspberry PI Pico (MicroPython)

from mq2 import MQ2
import I2C_LCD_driver
import utime
from machine import Pin

#LCD
lcd = I2C_LCD_driver.lcd()
# MQ2 sensor
pin=26
sensor = MQ2(pinData = pin, baseVoltage = 3.3)

print("Calibrating")
sensor.calibrate()
print("Calibration completed")
print("Base resistance:{0}".format(sensor._ro))
lcd.lcd_clear
lcd.lcd_display_string("Detecting..")
lpg = sensor.readLPG()
hydrogen = sensor.readHydrogen()
while True:
    print("Detecting..")
    print("LPG: {:.1f}ppm".format(sensor.readLPG())+" - ", end="")
    print
    print("Hydrogen: {:.1f}ppm".format(sensor.readHydrogen()))
    lcd.lcd_clear
    lcd.lcd_display_string("LPG: {:.1f}ppm".format (lpg),1)
    lcd.lcd_display_string("Hydrogen: {:.1f}ppm".format (hydrogen),2)
    utime.sleep(0.5)

 

τρέχει κανονικά και ανιχνεύει LPG και Hydrogen. Το θέμα μου είναι οτι ενώ παίρνω output readings στο idle που ανανεώνονται αν ανιχνευτεί αέριο, δεν ανανεώνεται το reading στην lcd οθόνη και πάντα γράφει την πρώτη μέτρηση.

Ενω δηλαδή υπάρχει αέριο στον χώρο  και παίρνω readings στο idle, στην οθόνη lcd υπάρχει η πρώτη μέτρηση που θα πάρει χωρίς ανανεώση.

Καμιά ιδέα πως μπορεί να γίνει μέσα στο loop while True: ;

 

IMG-0502.jpg

IMG-0503.jpg

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Λύση

Δεν εχω ιδεα απο micropython αλλα φαινεται οτι στο call που κανεις στο

lcd.lcd_display_string

περνας το variable lpg που του κανεις assign τιμη πριν απο το while loop.
Ενω οταν κανεις print στο console ξαναδιαβαζεις τον σενσορα με

sensor.readLPG()

 

  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

11 λεπτά πριν, immortalx είπε

Δεν εχω ιδεα απο micropython αλλα φαινεται οτι στο call που κανεις στο

lcd.lcd_display_string

περνας το variable lpg που του κανεις assign τιμη πριν απο το while loop.
Ενω οταν κανεις print στο console ξαναδιαβαζεις τον σενσορα με

sensor.readLPG()

 

Σε ευχαριστώ, να'σαι καλά. είχε γίνει το μυαλό μου πουρές να ψάχνω τον i2c_lcd_driver..

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μόλις τώρα, tuxpower είπε

Σε ευχαριστώ, να'σαι καλά. είχε γίνει το μυαλό μου πουρές να ψάχνω τον i2c_lcd_driver..

Σε νοιωθω, και γω τις ιδιες εμπλοκες παθαινω 😂BTW ωραια φαινεται η micropython!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

32 λεπτά πριν, immortalx είπε

😂BTW ωραια φαινεται η micropython!

για prototyping ειδικά σε microcontroller είναι καλή.Αν όμως έχεις καμιά δεκαριά sensors έχει προβλήματα απόδοσης, είναι αργή.

  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...