模拟 I/O

Maixduino 使用 K210 芯片的 PWM 模块实现模拟输出 analogWrite() 功能。 不能使用模拟输入 analogRead() 功能

Maixduino 可以在 48 个自由引脚中最多选择 12 个设置模拟输出功能。(使用硬件定时器会减少可用引脚。)

1. analogWrite()

1.1. 描述

设置一个模拟值(PWM波)到选定引脚。 可用于点亮不同亮度的LED或改变驱动电机的速度。

1.2. 用法

analogWrite(pin, value)

1.3. 参数

pin: 要设置的引脚。允许的数据类型: intvalue: 占空比,取值 0 - 255 . 允许的数据类型: int

1.4. 返回值

1.5. 注意事项

使用 Ticker 库或者硬件定时器可能会和 PWM 产生冲突。


2. analogWriteResolution()

2.1. 描述

analogWriteResolution() 是 Maixduino 的扩展 API 。

analogWriteResolution() 用于设置 analogWrite() 的精度. 默认为 8 位 (取值范围 0-255)。

通过将精度设置为 12 位, analogWrite() 的取值范围可变为 0 - 4095 。

2.2. 用法

analogWriteResolution(bits)

2.3. 参数

bits: 确定analogWrite()函数中使用的值的分辨率(以位为单位)。该值的范围为1到32。

2.4. 返回值

2.5. 注意事项

通过调整PWM占空比可能不会导致显着的精度变化。

2.6. 示例代码

int led1 = 12;
int led2 = 13;
int led3 = 14;

void setup()
{
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
}
void setColor(int red,int green,int blue)
{
  analogWrite(led1,255-red);
  analogWrite(led2,255-green);
  analogWrite(led3,255-blue);
}
void loop()
{
  int i,j;
  for(i=0,j=255;i<256;i++)
  {
    setColor(i,j,0);
    delay(4);
    j--;
  }
  delay(100);           
  for(i=0,j=255;i<256;i++)
  {
    setColor(j,0,i);
    delay(4);
    j--;
  }
  delay(100);           
  for(i=0,j=255;i<256;i++)
  {
    setColor(0,i,j);
    delay(4);
    j--;
  }
  delay(100);        
}

results matching ""

    No results matching ""