DigitalPotControl

Bu eğitimde, Seri Çevresel Arabirimi (SPI) kullanarak AD5206 dijital potansiyometrenin nasıl kontrol edileceğini öğreneceksiniz. SPI'nin açıklaması için SPI Kütüphanesi referansına bakın .

Dijital potansiyometreler, bir devredeki direnci elle değil elektronik olarak değiştirmeniz gerektiğinde yararlıdır. Örnek uygulamalar arasında LED karartma, ses sinyali koşullandırma ve ton üretimi yer alır. Bu örnekte altı LED'in parlaklığını kontrol etmek için altı kanallı bir dijital potansiyometre kullanacağız. SPI iletişimini uygulamak için ele alacağımız adımlar diğer çoğu SPI cihazıyla kullanım için değiştirilebilir.

Gerekli Donanım

  • Arduino veya Genuino kartı
  • AD5206 Dijital Potansiyometre
  • 6 LED
  • 6 220 ohm direnç
  • bağlantı telleri
  • breadboard

AD5206 Dijital Potansiyometreye Giriş

AD5206 datasheeti için tıklayınız.

AD5206 , 6 kanallı bir dijital potansiyometredir. Bu, bireysel elektronik kontrol için yerleşik altı değişken dirence (potansiyometre) sahip olduğu anlamına gelir. Altı dahili değişken direncin her biri için çip üzerinde üç pim vardır ve bunlar, mekanik bir potansiyometre kullandığınız gibi arayüzle bağlanabilir. Bireysel değişken direnç pimleri Ax, Bx ve Wx olarak etiketlenmiştir, yani. A1, B1 ve W1. Örneğin, bu derste, her bir değişken direnci bir yan pimi (pim B) yüksek çekerek, başka bir yan pimi (pim A) aşağı çekerek ve merkez pimin (Silecek) değişken voltaj çıkışını alarak bir voltaj bölücü olarak kullanacağız. . Bu durumda, AD5206 255 adımda verilen maksimum 255k direnç sağlar (255 maksimum, 0 en düşüktür ).

Devre

Fritzing kullanılarak geliştirilen görüntü. Daha fazla devre örneği için Fritzing proje sayfasına bakın

Şematik

Kod

/*
  Digital Pot Control

  This example controls an Analog Devices AD5206 digital potentiometer.
  The AD5206 has 6 potentiometer channels. Each channel's pins are labeled
  A - connect this to voltage
  W - this is the pot's wiper, which changes when you set it
  B - connect this to ground.

 The AD5206 is SPI-compatible,and to command it, you send two bytes,
 one with the channel number (0 - 5) and one with the resistance value for the
 channel (0 - 255).

 The circuit:
  * All A pins  of AD5206 connected to +5V
  * All B pins of AD5206 connected to ground
  * An LED and a 220-ohm resisor in series connected from each W pin to ground
  * CS - to digital pin 10  (SS pin)
  * SDI - to digital pin 11 (MOSI pin)
  * CLK - to digital pin 13 (SCK pin)

 created 10 Aug 2010
 by Tom Igoe

 Thanks to Heather Dewey-Hagborg for the original tutorial, 2005

*/



// inslude the SPI library:
#include <SPI.h>


// set pin 10 as the slave select for the digital pot:
const int slaveSelectPin = 10;

void setup() {
  // set the slaveSelectPin as an output:
  pinMode(slaveSelectPin, OUTPUT);
  // initialize SPI:
  SPI.begin();
}

void loop() {
  // go through the six channels of the digital pot:
  for (int channel = 0; channel < 6; channel++) {
    // change the resistance on this channel from min to max:
    for (int level = 0; level < 255; level++) {
      digitalPotWrite(channel, level);
      delay(10);
    }
    // wait a second at the top:
    delay(100);
    // change the resistance on this channel from max to min:
    for (int level = 0; level < 255; level++) {
      digitalPotWrite(channel, 255 - level);
      delay(10);
    }
  }

}

void digitalPotWrite(int address, int value) {
  // take the SS pin low to select the chip:
  digitalWrite(slaveSelectPin, LOW);
  delay(100);
  //  send in the address and value via SPI:
  SPI.transfer(address);
  SPI.transfer(value);
  delay(100);
  // take the SS pin high to de-select the chip:
  digitalWrite(slaveSelectPin, HIGH);
}
[Kodu Al]

Heather Dewey-Hagborg'un orijinal öğreticisi, Tom Igoe ve Christian Cerrito'nun güncellemesi

See Also