“第三课——多个LED花样闪烁”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
软件调试
结果
第57行: 第57行:
 
{
 
{
 
   for(_ABVAR_1_i = 2;  
 
   for(_ABVAR_1_i = 2;  
2<=10?_ABVAR_1_i <= 10:_ABVAR_1_i >= 10;  
+
2<=9?_ABVAR_1_i <= 9:_ABVAR_1_i >= 9;  
2<=10?_ABVAR_1_i = _ABVAR_1_i + 1:_ABVAR_1_i = _ABVAR_1_i - 1)
+
2<=9?_ABVAR_1_i = _ABVAR_1_i + 1:_ABVAR_1_i = _ABVAR_1_i - 1)
 
   {
 
   {
 
     __ardublockDigitalWrite(_ABVAR_1_i, HIGH);
 
     __ardublockDigitalWrite(_ABVAR_1_i, HIGH);
第64行: 第64行:
 
   }
 
   }
 
   for(_ABVAR_1_i = 2;  
 
   for(_ABVAR_1_i = 2;  
2<=10?_ABVAR_1_i <= 10:_ABVAR_1_i >= 10;  
+
2<=9?_ABVAR_1_i <= 9:_ABVAR_1_i >= 9;  
2<=10?_ABVAR_1_i = _ABVAR_1_i + 1:_ABVAR_1_i = _ABVAR_1_i - 1)
+
2<=9?_ABVAR_1_i = _ABVAR_1_i + 1:_ABVAR_1_i = _ABVAR_1_i - 1)
 
   {
 
   {
 
     __ardublockDigitalWrite(_ABVAR_1_i, LOW);
 
     __ardublockDigitalWrite(_ABVAR_1_i, LOW);
 +
    delay( 500 );
 
   }
 
   }
 
   for(_ABVAR_1_i = 2;  
 
   for(_ABVAR_1_i = 2;  
2<=10?_ABVAR_1_i <= 10:_ABVAR_1_i >= 10;  
+
2<=9?_ABVAR_1_i <= 9:_ABVAR_1_i >= 9;  
2<=10?_ABVAR_1_i = _ABVAR_1_i + 1:_ABVAR_1_i = _ABVAR_1_i - 1)
+
2<=9?_ABVAR_1_i = _ABVAR_1_i + 1:_ABVAR_1_i = _ABVAR_1_i - 1)
 
   {
 
   {
 
     __ardublockDigitalWrite(_ABVAR_1_i, HIGH);
 
     __ardublockDigitalWrite(_ABVAR_1_i, HIGH);
 
     delay( 500 );
 
     delay( 500 );
 
     __ardublockDigitalWrite(_ABVAR_1_i, LOW);
 
     __ardublockDigitalWrite(_ABVAR_1_i, LOW);
 +
    delay( 500 );
 
   }
 
   }
 
}
 
}
 
</source>
 
</source>
 
|}
 
|}

2015年3月14日 (六) 13:21的版本

目的

已经实验了点亮一个led的方法,接下来稍微扩展下,控制多个led依次闪烁。

原理

可以采用重复执行(repeat between),依次让引脚输出高或低的电平信号来控制LED灯亮灭。

设备

搭建硬件

led的阴极接Microduino的GND,阳极接Microduino数据控制口D2~D9。

按原理图搭建好电路。

软件调试

  • 打开Arduino IDE, 根据你使用的核心板在Tools里面选择好Board(Microduino Core 328P@16M 5V),选择Serial Port,如果未能选择串口,可能是USB线接触不好或损坏,或者没安装USBTTL驱动。
  • 在Tools里打开ArduBlock,开始编程。
  • 在Control里使用“repeat between”控件,在某个范围内重复让D2-D9引脚输出电平信号。
  • 依次点亮
  • 依次熄灭
  • 依次闪烁

在loop循环里面重复执行就好。

结果

实验有三种花样效果:依次点亮;依次熄灭、依次闪烁。用户可根据自己喜好,设置更多好玩的效果。 可以看到编译后的程序代码是如何实现的。

int _ABVAR_1_i = 0 ;
void __ardublockDigitalWrite(int pinNumber, boolean status)
{
  pinMode(pinNumber, OUTPUT);
  digitalWrite(pinNumber, status);
}


void setup()
{
}

void loop()
{
  for(_ABVAR_1_i = 2; 
2<=9?_ABVAR_1_i <= 9:_ABVAR_1_i >= 9; 
2<=9?_ABVAR_1_i = _ABVAR_1_i + 1:_ABVAR_1_i = _ABVAR_1_i - 1)
  {
    __ardublockDigitalWrite(_ABVAR_1_i, HIGH);
    delay( 500 );
  }
  for(_ABVAR_1_i = 2; 
2<=9?_ABVAR_1_i <= 9:_ABVAR_1_i >= 9; 
2<=9?_ABVAR_1_i = _ABVAR_1_i + 1:_ABVAR_1_i = _ABVAR_1_i - 1)
  {
    __ardublockDigitalWrite(_ABVAR_1_i, LOW);
    delay( 500 );
  }
  for(_ABVAR_1_i = 2; 
2<=9?_ABVAR_1_i <= 9:_ABVAR_1_i >= 9; 
2<=9?_ABVAR_1_i = _ABVAR_1_i + 1:_ABVAR_1_i = _ABVAR_1_i - 1)
  {
    __ardublockDigitalWrite(_ABVAR_1_i, HIGH);
    delay( 500 );
    __ardublockDigitalWrite(_ABVAR_1_i, LOW);
    delay( 500 );
  }
}