模拟 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. 示例代码

2.7. 示例代码 Maix Bit, Maix Dock, Maix Go

int led1 = 12; // LED_BLUE
int led2 = 13; // LED_GREEN | LED_BUILTIN
int led3 = 14; // LED_RED

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}

void setColor(int red, int green, int blue)
{
  analogWrite(led1, 255-blue);
  analogWrite(led2, 255-green);
  analogWrite(led3, 255-red);
}

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);        
}

2.8. 示例代码 Maixduino

int led1 = 1; // LED_BUILTIN

void setup()
{
  pinMode(led1, OUTPUT);
}

void setColor(int value)
{
  analogWrite(led1, 255-value);
}

void loop()
{
  int i;
  for (i=0; i<256; i++)
  {
    setColor(i);
    delay(4);
  }
  delay(100);        
}

results matching ""

    No results matching ""