可變電阻+OLED_0.96進度條顯示-micropython

 可變電阻+OLED_0.96進度條顯示-micropython


前言:
    記得在Arduino的應用裡,ssd1306的程式庫裡有進度條的函式,很久以前一直有個
疑惑,為什麼mpython沒有,今天再次回顧重溫,找了些資料,發現其實只要知道公式
要做成進度條也是很容易。

材料:

  • 可變電阻
  • OLED0.96
  • ESP32(燒錄micropython)

接線:

ssd1306.py先匯入esp32

程式碼:

from machine import Pin, SoftI2C, ADC ,PWM
import ssd1306
import time

p=ADC(Pin(34))
p.atten(ADC.ATTN_11DB)
ADC.width(ADC.WIDTH_10BIT)
i2c=SoftI2C(scl=Pin(22), sda=Pin(21))
display=ssd1306.SSD1306_I2C(128, 64, i2c)

#類似於c裡面的map()函式
def scale_value(value, in_min, in_max, out_min, out_max):
  scaled_value = (value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min
  return scaled_value


while True:
    pwmVal=p.read()
    print(pwmVal)
    display.text("vaule: "+str(pwmVal),10, 0)
    display.show()
    display.rect(10, 30, 90,20, 1)      # draw a rectangle outline 10,10 to 117,53, colour=1
    display.fill_rect(10, 30, int(scale_value(pwmVal,0, 680, 0, 60)), 20, 1)   # draw a solid rectangle 10,10 to 117,53, colour=1
    display.show()
    display.fill(0)
    time.sleep(1)



















留言

這個網誌中的熱門文章

使用PWM控制伺服馬達-micropython

DHT11+OLED+IFTTT+LINE-notity-micropython

BMP280氣壓,溫度模組-micropython