yc0526vip 发表于 2024-1-10 16:04:06

micropython 随机数

@fishc

micropython led随机时长闪烁,oled显示闪烁间隔

FishC 发表于 2024-1-10 16:05:19

要在MicroPython中生成随机数,您可以使用`random`模块。下面是一个示例代码,它将随机点亮LED并在OLED上显示随机间隔的闪烁效果:

import machine
import ssd1306
import time
import random

# 初始化LED和OLED
led = machine.Pin(2, machine.Pin.OUT)
i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)

while True:
    # 生成随机的灯亮时间和间隔时间
    light_time = random.randint(100, 1000) / 1000
    interval = random.randint(100, 2000) / 1000
   
    # LED点亮,并在OLED上显示闪烁间隔
    led.on()
    oled.fill(0)
    oled.text("Interval: %.2fs" % interval, 0, 0)
    oled.show()
   
    # 等待灯亮时间
    time.sleep(light_time)
   
    # LED熄灭
    led.off()
   
    # 等待间隔时间
    time.sleep(interval)

请注意,这只是一个简单的示例,您可能需要根据自己的硬件和需求进行适当的调整。在这个例子中,LED连接到GPIO 2引脚,OLED显示屏通过I2C连接。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

yc0526vip 发表于 2024-1-10 16:16:23

FishC 发表于 2024-1-10 16:05
要在MicroPython中生成随机数,您可以使用`random`模块。下面是一个示例代码,它将随机点亮LED并在OLED上显 ...

调整代码, 增加led 随机亮持续时间

FishC 发表于 2024-1-10 16:17:02

yc0526vip 发表于 2024-01-10 16:16
调整代码, 增加led 随机亮持续时间

好的,我根据您的需求调整了代码,现在LED的亮持续时间也是随机生成的:import machine
import ssd1306
import time
import random

# 初始化LED和OLED
led = machine.Pin(2, machine.Pin.OUT)
i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)

while True:
    # 生成随机的灯亮时间和间隔时间
    light_time = random.randint(100, 1000) / 1000
    interval = random.randint(100, 2000) / 1000

    # LED点亮,并在OLED上显示闪烁间隔和亮持续时间
    led.on()
    oled.fill(0)
    oled.text("Interval: %.2fs" % interval, 0, 0)
    oled.text("Light Time: %.2fs" % light_time, 0, 10)
    oled.show()

    # 等待灯亮时间
    time.sleep(light_time)

    # LED熄灭
    led.off()

    # 等待间隔时间
    time.sleep(interval)

这样,每次LED亮起的持续时间和闪烁间隔时间都会随机生成,并在OLED上显示出来。希望对您有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

yc0526vip 发表于 2024-1-10 16:21:30

FishC 发表于 2024-1-10 16:17
好的,我根据您的需求调整了代码,现在LED的亮持续时间也是随机生成的:import machine
import ssd130 ...

增加 oled显示熄灭led时长

FishC 发表于 2024-1-10 16:22:26

yc0526vip 发表于 2024-01-10 16:21
增加 oled显示熄灭led时长

好的,我根据您的需求进一步调整了代码,现在OLED会显示LED熄灭的持续时间:import machineimport ssd1306import timeimport random# 初始化LED和OLEDled = machine.Pin(2, machine.Pin.OUT)i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))oled = ssd1306.SSD1306_I2C(128, 64, i2c)while True:    # 生成随机的灯亮时间、间隔时间和熄灭时间    light_time = random.randint(100, 1000) / 1000    interval = random.randint(100, 2000) / 1000    off_time = random.randint(100, 1000) / 1000    # LED点亮,并在OLED上显示闪烁间隔、亮持续时间和熄灭持续时间    led.on()    oled.fill(0)    oled.text("Interval: %.2fs" % interval, 0, 0)    oled.text("Light Time: %.2fs" % light_time, 0, 10)    oled.show()    # 等待灯亮时间    time.sleep(light_time)    # LED熄灭,并在OLED上显示熄灭持续时间    led.off()    oled.fill(0)    oled.text("Interval: %.2fs" % interval, 0, 0)    oled.text("Off Time: %.2fs" % off_time, 0, 10)    oled.show()    # 等待熄灭时间    time.sleep(off_time)    # 等待间隔时间    time.sleep(interval)现在,每次LED亮起和熄灭的持续时间以及闪烁间隔时间都会随机生成,并在OLED上显示出来。希望对您有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

yc0526vip 发表于 2024-1-10 16:23:50

FishC 发表于 2024-1-10 16:22
好的,我根据您的需求进一步调整了代码,现在OLED会显示LED熄灭的持续时间:import machineimport ssd1 ...

排版错误,重新输出

FishC 发表于 2024-1-10 16:24:45

yc0526vip 发表于 2024-01-10 16:23
排版错误,重新输出

非常抱歉,以下是经过排版的代码:
import machine
import ssd1306
import time
import random

# 初始化LED和OLED
led = machine.Pin(2, machine.Pin.OUT)
i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)

while True:
    # 生成随机的灯亮时间、间隔时间和熄灭时间
    light_time = random.randint(100, 1000) / 1000
    interval = random.randint(100, 2000) / 1000
    off_time = random.randint(100, 1000) / 1000

    # LED点亮,并在OLED上显示闪烁间隔、亮持续时间和熄灭持续时间
    led.on()
    oled.fill(0)
    oled.text("Interval: %.2fs" % interval, 0, 0)
    oled.text("Light Time: %.2fs" % light_time, 0, 10)
    oled.show()

    # 等待灯亮时间
    time.sleep(light_time)

    # LED熄灭,并在OLED上显示熄灭持续时间
    led.off()
    oled.fill(0)
    oled.text("Interval: %.2fs" % interval, 0, 0)
    oled.text("Off Time: %.2fs" % off_time, 0, 10)
    oled.show()

    # 等待熄灭时间
    time.sleep(off_time)

    # 等待间隔时间
    time.sleep(interval)

非常抱歉给您带来的困扰,现在代码的排版问题已经修复。希望这次可以顺利运行!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: micropython 随机数