根据光线强度不同,发出声音

预备知识:

  模拟量:连续变化的量。0~1023,10位二进制数

  数字量:0或者1,1位的二进制数

  光敏传感器:能根据光线强弱的变化输出0~1023之间的数据,来代表光线强弱的变化。光线越强,输出的数越小。对控制板来说,是输入设备

  扩展板GPIO之pin0,pin1

  扩展板之扬声器,能根据不同频率输出不同的声调,对控制板来说,是输出设备

  python条件判断:if语句,注意冒号,与缩进。

实现的效果:

今天要向大家分享的是micro:bit模拟量的读取。microbit板子上有三种针脚类型,,有可触碰口(P口),数字口(D口)和模拟口(A口),通过引脚说明图,能看到引脚P0,P1,P2,P3,P4,P10能够模拟读取,也能模拟输出量,我们看下图

 

我们通过pin1读入光敏传感器的模拟量,(0~1023范围内变化),如果小于200,就驱动扩展板的扬声器发声。否则静默不发声。

材料:

  1. 光敏传感器
  2. micro:bit控制板
  3. robot:bit扩展板
  4. 母对母连线

接线:

  光敏传感器信号线接pin1,因为robotbit这块板子上,pin0接了扬声器。

原理:

代码1:

1 import music
2 from microbit import *
3 while True:
4   i = pin1.read_analog()
5   if i < 200:
6     i = i * 5
7     music.pitch(i,110)
8   else :
9     music.pitch(0,0)

代码2:

import music
from microbit import *
#三只老虎乐谱
tiger= ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4", "E4:4", "C4:4","E4:4", "F4:4", "G4:8", "E4:4", "F4:4", "G4:8"]

while True:
    light = pin1.read_analog()
    if light < 200:
        music.play(tiger)
    else:
        display.show(Image.HEART) #心型

 

代码解析:

图形化编程:

小结:

  大家可以思考一下,根据这次课程内容,我们可以来实现什么样的项目?方便我们的生活?

posted @ 2019-11-15 16:06  qywyll  阅读(594)  评论(0)    收藏  举报