source: rtos_arduino/trunk/arduino_lib/hardware/arduino/samd/libraries/SPI/examples/DigitalPotControl/DigitalPotControl.ino@ 136

Last change on this file since 136 was 136, checked in by ertl-honda, 8 years ago

ライブラリとOS及びベーシックなサンプルの追加.

File size: 1.9 KB
Line 
1/*
2 Digital Pot Control
3
4 This example controls an Analog Devices AD5206 digital potentiometer.
5 The AD5206 has 6 potentiometer channels. Each channel's pins are labeled
6 A - connect this to voltage
7 W - this is the pot's wiper, which changes when you set it
8 B - connect this to ground.
9
10 The AD5206 is SPI-compatible,and to command it, you send two bytes,
11 one with the channel number (0 - 5) and one with the resistance value for the
12 channel (0 - 255).
13
14 The circuit:
15 * All A pins of AD5206 connected to +5V
16 * All B pins of AD5206 connected to ground
17 * An LED and a 220-ohm resisor in series connected from each W pin to ground
18 * CS - to digital pin 10 (SS pin)
19 * SDI - to digital pin 11 (MOSI pin)
20 * CLK - to digital pin 13 (SCK pin)
21
22 created 10 Aug 2010
23 by Tom Igoe
24
25 Thanks to Heather Dewey-Hagborg for the original tutorial, 2005
26
27*/
28
29
30// inslude the SPI library:
31#include <SPI.h>
32
33
34// set pin 10 as the slave select for the digital pot:
35const int slaveSelectPin = 10;
36
37void setup() {
38 // set the slaveSelectPin as an output:
39 pinMode (slaveSelectPin, OUTPUT);
40 // initialize SPI:
41 SPI.begin();
42}
43
44void loop() {
45 // go through the six channels of the digital pot:
46 for (int channel = 0; channel < 6; channel++) {
47 // change the resistance on this channel from min to max:
48 for (int level = 0; level < 255; level++) {
49 digitalPotWrite(channel, level);
50 delay(10);
51 }
52 // wait a second at the top:
53 delay(100);
54 // change the resistance on this channel from max to min:
55 for (int level = 0; level < 255; level++) {
56 digitalPotWrite(channel, 255 - level);
57 delay(10);
58 }
59 }
60
61}
62
63void digitalPotWrite(int address, int value) {
64 // take the SS pin low to select the chip:
65 digitalWrite(slaveSelectPin, LOW);
66 // send in the address and value via SPI:
67 SPI.transfer(address);
68 SPI.transfer(value);
69 // take the SS pin high to de-select the chip:
70 digitalWrite(slaveSelectPin, HIGH);
71}
Note: See TracBrowser for help on using the repository browser.