LinkNode 初试-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2831|回复: 0

LinkNode 初试

[复制链接]
发表于 2016-4-20 23:57 | 显示全部楼层 |阅读模式
翻看完官方 wiki,大概了解了一下 mbed 的开发,然后做了 blink 和 pwm 的测试,发现 mbed 和熟悉的 arduino 极像,并且功能更强大的样子,在线 IDE 用起来倒是方便,库的引用也是随用随引,就是网络对操作响应速度上有一些影响,体验上会略差一点,真要经常用的时候,还是比较倾向于本地的 IDE 更顺手。

那么闲话不多说,试一下官方 wiki 上的 blink 吧,程序略过,视频奉上(呃,这个版块竟然不能放视频啊,奈何偏心啊):


然后升级一下 blink,既然有两个颜色,红和蓝,不如 blink 成警车灯一样的效果吧,顺带测试串口:
[mw_shl_code=cpp,true]// 像警车灯一样红蓝闪烁的 blink 实验
#include <mbed.h>

DigitalOut LED_R(P0_20);
DigitalOut LED_B(P0_19);
Serial pc(P0_23, P0_25);

int main()
{
    while (true)
    {
         LED_R=1;
         LED_B=0;
         wait(0.5);
         LED_R=0;
         LED_B=1;
         wait(0.5);
         
         pc.printf("Blink!\n");
    }   
}[/mw_shl_code]
视频:


然后就是 PWM 呼吸灯,直接来双色渐变呼吸效果吧:
[mw_shl_code=cpp,true]// pwm 两个 LED 测试

#include <mbed.h>

Serial pc(P0_23, P0_25);
PwmOut LED_R(P0_20);
PwmOut LED_B(P0_19);

float delta  = 0.05;
float deltaR = delta;
float deltaB = 0;

int main()
{
    LED_R.write(0);
    LED_B.write(0);
   
    while (true)
    {
        LED_R = LED_R + deltaR;
        LED_B = LED_B + deltaB;
        
        wait(0.02);
        if (LED_R.read() >= 0.999)
        {
            deltaR = -deltaR;
        }
        else if (LED_R.read() <= 0.001)
        {
            deltaR = 0;
            deltaB = delta;
            LED_R  = 0.002;
        }
        
        if (LED_B.read() >= 0.999)
        {
            deltaB = -deltaB;
        }
        else if (LED_B.read() <= 0.001)
        {
            deltaB = 0;
            deltaR = delta;
            LED_B  = 0.002;
        }
        
        pc.printf("LED_R: %f, delta: %f, LED_B: %f, delta: %f\n", float(LED_R), deltaR, float(LED_B), deltaB);
    }
}[/mw_shl_code]
视频:


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:50 , Processed in 0.070031 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表