回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

#高考#【PinPong特色计时器】 简单

头像 gray6666 2021.06.02 1059 1

十年一剑今朝试,鹏飞万里遂我心

项目背景:

高三紧张而漫长,很多同学感到时间有时像流水,不经意间就浪费掉了。合理安排时间是高考取胜的关键,往往很多同学没个头绪,时而紧时而松,很难奏效。而许多高考成绩优异的同学,正是由于合理安排时间,才最终取得了成功,跨进了名校的大门。本次设计作品为《PingPong特色计时器》,希望可以帮助考生们合理安排时间,取得成功。

提前预祝考生们高考胜利!

步骤1 实现功能

1.自主设置及时器的时间

2.LED灯显示当前状态

3.计时开始和结束,OLED屏幕提示语言

4.系统开始,计时结束音乐提醒

project-image

材料清单

  • PinPong板【感谢提供,试用机会】 X1
  • 数据线 X1

步骤2 程序实现

程序运行流程

project-image

一、蜂鸣器播放音乐

music1和music2函数雷同, 实现音乐提示功能

代码

def music1():
     for i in range(3):
          print("freq=",tone.freq()) #读取频率并打印
          tone.on()  #打开蜂鸣器
          time.sleep(1) 
          tone.off() #关闭蜂鸣器
          time.sleep(1)
          tone.freq(tone.freq()+100) #按照设置的频率播放
          i=++i

功能二

time1模块计时

代码
def time1():
    oled.fill(0) #全部填充熄灭,清屏
    oled.text("Go ahead !!!",28,28) #指定位置显示文字
    oled.show() #显示生效
    np[0] = (0, 255 ,0) #设置RGB灯为绿色
    start=time.time()
    while True:
         time.sleep(1)
         end=round(time.time()-start)
         print(end)
         if (end//60)==30:#30为系统预设倒计时时间,可自主更改 
              oled.fill(0) #全部填充熄灭,清屏
              oled.text("time up !!!",28,28) #指定位置显示文字
              oled.show() #显示生效
              print("time up")
              np[0] = (255, 0 ,0) #设置RGB灯为红色
              music2() #播放音乐提示

三、主要控制程序

代码
while True:
       v = btn.value()  #读取按钮模块的引脚电平
       time.sleep(0.5)
       print(v)
       if v==1 :
            print(v)  #终端打印读取的电平状态
            time1()
            time.sleep(1)

四、全部程序

代码
# -*- coding: utf-8 -*-
import time
from pinpong.libs.dfrobot_ssd1306 import SSD1306_I2C #导入ssd1306库
from pinpong.board import Board,Pin,Tone,NeoPixel#导入蜂鸣器

#from pinpong.board import Board,Pin
Board("uno").begin()  #初始化,选择板型


NEOPIXEL_PIN = Pin.D9 #初始化LED灯珠
PIXELS_NUM = 4 #灯数
np = NeoPixel(Pin(NEOPIXEL_PIN), PIXELS_NUM)

btn = Pin(Pin.D8, Pin.IN) #引脚初始化为电平输入
oled=SSD1306_I2C(width=128, height=64) #初始化屏幕,传入屏幕像素点数

tone = Tone(Pin(Pin.D5)) #将Pin传入Tone中实现模拟输出
tone.freq(200) #按照设置的频率播放

def music1():
     for i in range(3):
          print("freq=",tone.freq()) #读取频率并打印
          tone.on()  #打开蜂鸣器
          time.sleep(1) 
          tone.off() #关闭蜂鸣器
          time.sleep(1)
          tone.freq(tone.freq()+100) #按照设置的频率播放
          i=++i

def music2():
     for i in range(3):
          print("freq=",tone.freq()) #读取频率并打印
          tone.on()  #打开蜂鸣器
          time.sleep(1) 
          tone.off() #关闭蜂鸣器
          time.sleep(1)
          tone.freq(tone.freq()+100) #按照设置的频率播放
          i=++i
                    
def time1():
     oled.fill(0) #全部填充熄灭,清屏
     oled.text("Go ahead !!!",28,28) #指定位置显示文字
     oled.show() #显示生效
     np[0] = (0, 255 ,0) #设置RGB灯为绿色
     start=time.time()
     while True:
          time.sleep(1)
          end=round(time.time()-start)
          print(end)
          if (end//60)==30:  #30为系统预设倒计时时间,可自主更改
               oled.fill(0) #全部填充熄灭,清屏
               oled.text("time up !!!",28,28) #指定位置显示文字
               oled.show() #显示生效
               print("time up")
               np[0] = (255, 0 ,0) #设置RGB灯为红色
               music2()
               break

music1()
oled.fill(1) #全部填充显示
oled.show() #显示生效
time.sleep(1)
oled.fill(0) #全部填充熄灭,清屏
oled.show() #显示生效
np[0] = (0, 0 ,255) #初始化提示灯,设置RGB灯为蓝色
while True:
       v = btn.value()  #读取引脚电平
       time.sleep(0.5)
       print(v)
       if v==1 :
            print(v)  #终端打印读取的电平状态
            time1()
            time.sleep(1)

步骤3 测试视频

评论

user-avatar
  • 豆爸

    豆爸2021.09.20

    666

    0