求助个书中疑问-P141-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3614|回复: 1

求助个书中疑问-P141

[复制链接]
发表于 2016-8-18 09:13 | 显示全部楼层 |阅读模式
/*
  Digital Pot Control

  This example controls an Analog Devices AD5206 digital potentiometer.
  The AD5206 has 6 potentiometer channels. Each channel's pins are labeled
*/

// 引用SPI库
#include <SPI.h>

// 设置10号引脚控制AD5206的SS脚
const int slaveSelectPin = 10;

void setup() {
  // 设置SS为输出
  pinMode (slaveSelectPin, OUTPUT);
  // 初始化SPI
  SPI.begin();
}

void loop() {
  // 分别操作6个通道的数字电位器
  for (int channel = 0; channel < 6; channel++) {
    // 逐渐增大每个通道的阻值
    for (int level = 0; level < 255; level++) {
      digitalPotWrite(channel, level);
      delay(10);
    }
    // 延时一段时间
    delay(100);
    // 逐渐减小每个通道的阻值
    for (int level = 0; level < 255; level++) {
      digitalPotWrite(channel, 255 - level);
      delay(10);
    }
  }
}

int digitalPotWrite(int address, int value) {
  // 将SS输出低电平,选择能这个设备
  digitalWrite(slaveSelectPin,LOW);
  // 向SPI传输地址和对应的配置值
  SPI.transfer(address);
  SPI.transfer(value);
  //将SS输出高电平,取消选择这个设备
  digitalWrite(slaveSelectPin,HIGH);
}


如上面这个例程,在最后 SPI.transfer(address);和SPI.transfer(value);这两行里面的(address)和(value)值应该是多少?我看上面只有定义两个变量是整形。
还有不是说先输出低电平选定这个外设才能使用吗?按照程序从上往下执行的顺序应该是应该先执行digitalWrite(slaveSelectPin,LOW);先选定这个外设才可以,为什么会把它放在最下面?
设置LED对应的电阻值才对。

发表于 2016-8-18 10:43 | 显示全部楼层
digitalPotWrite(channel, level);
这是一个函数调用,如果对函数不太了解,可以百度下相关知识
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 09:32 , Processed in 0.177548 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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