برمجة راسبيري باي بيكو || ADC on Raspberry Pi Pico Using MicroPython with SSD1306 OLED - DIY Channel3

DIY Channel3

Arduino│ESP8266│ESP32│Drone│Robot

برمجة راسبيري باي بيكو || ADC on Raspberry Pi Pico Using MicroPython with SSD1306 OLED

مشاركة هذا

 


نحن هنا مع برنامج تعليمي آخر لـ Raspberry Pi Pico. إذا كنت تتابع سلسلة دروس Raspberry Pi Pico التعليمية ، فأنت تعرف بالفعل الإعداد الأساسي وكيفية توصيل وحدة عرض OLED مع Raspberry Pi Pico. في هذا البرنامج التعليمي ، سوف نستخدم لوحة Pico لإجراء تحويل ADC. يحتوي Raspberry Pi Pico على أربع قنوات ADC ذات 12 بت ، لكن إحداها متصلة بمستشعر درجة الحرارة الداخلية. توجد ADCs المتبقية في GPIO26 و GPIO27 و GPIO28 مثل ADC0 و ADC1 و ADC2 ، على التوالي. يمكنك رؤية دبابيس ADC مظللة باللون الأحمر في الصورة أدناه.





____________________________________________________


_______________________________________________________


from machine import Pin, I2C

from ssd1306 import SSD1306_I2C

import framebuf

import machine

import utime


sensor_temp = machine.ADC(28)

conversion_factor = 10 / (65535)


WIDTH  = 128                                          

HEIGHT = 32                                             


i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=200000)       

print("I2C Address      : "+hex(i2c.scan()[0]).upper()) 

print("I2C Configuration: "+str(i2c))                 


oled = SSD1306_I2C(WIDTH, HEIGHT, i2c)                



buffer = bytearray(b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|?\x00\x01\x86@\x80\x01\x01\x80\x80\x01\x11\x88\x80\x01\x05\xa0\x80\x00\x83\xc1\x00\x00C\xe3\x00\x00~\xfc\x00\x00L'\x00\x00\x9c\x11\x00\x00\xbf\xfd\x00\x00\xe1\x87\x00\x01\xc1\x83\x80\x02A\x82@\x02A\x82@\x02\xc1\xc2@\x02\xf6>\xc0\x01\xfc=\x80\x01\x18\x18\x80\x01\x88\x10\x80\x00\x8c!\x00\x00\x87\xf1\x00\x00\x7f\xf6\x00\x008\x1c\x00\x00\x0c \x00\x00\x03\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")


while True:

    reading = sensor_temp.read_u16() * conversion_factor

    

    fb = framebuf.FrameBuffer(buffer, 32, 32, framebuf.MONO_HLSB)


   

    oled.fill(0)


   

    oled.blit(fb, 96, 0)

    

    oled.invert(True)    

    

    

    oled.text("ADC : ",5,15)

    oled.text(str(round(reading,2)),50,15)


    oled.show()


No comments:

Post a Comment