
挑战自我:用面包板做一个流光沙漏
流光沙漏效果类似沙漏()的形式,两个LED灯,一个逐渐变暗,另一个逐渐变亮。想一想怎样才能实现实验效果呢?
积木新知
数学运算

“数学运算”积木能够实现两个数的加、减、乘、除、取余和乘方操作,单击该积木中“+”号右侧的小三角,可打开下拉菜单,显示“+”“-”“×”“÷”“%”“^”6种数学运算符。

“数学运算”积木位于“数学”模块中,其具体位置如下。

范例一

设置LED灯亮度值为255(0+255),延时200毫秒;设置LED灯亮度值为0(255-255),延时200毫秒;最终实现LED灯每隔200毫秒闪烁的效果。
范例二

设置LED灯亮度值为255(1×255),延时500毫秒;设置LED灯亮度值为0(0÷255),延时500毫秒;最终实现LED灯每隔500毫秒闪烁的效果。
范例三

“%”为取余运算,设置LED灯亮度值为0(255%255),延时1000毫秒;“^”为乘方运算,设置LED灯亮度值为128(2^7),延时500毫秒;最终实现LED灯每隔1000毫秒闪烁的效果。
硬件连接
将实验箱上的开关拨至“OFF”位置,将1个红色LED灯、1个绿色LED灯和2个1kΩ电阻按下图连接;使用若干公对公杜邦线,将其中两根线的一端插接在面包板上,另一端分别连接至主板的9号和10号管脚。

编程思路

流光沙漏程序流程图
范例程序

流光沙漏程序
在第一个计次循环中,变量“亮度1”的数值每执行一次循环增加1,则连接9号管脚LED灯的亮度随之加1,连接10号管脚LED灯的亮度随之减1。变量值从0依次增加到255,重复执行,直到9号灯达到最亮,10号灯完全熄灭。再开始执行第二个计次循环。在第二个计次循环中,变量“亮度2”的数值每执行一次循环减1,则连接9号管脚LED灯的亮度随之减1,连接10号管脚LED灯的亮度随之加1。这时的变量值从255依次减小到0,直到10号灯达到最亮,9号灯完全熄灭。再开始执行第一个计次循环……