18.2 IDE Arduino
18.2.1 Single Core
Le programme positionne le potentiomètre 0 au minimum et le potentiomètre 1 au maximum. Il fait
ensuite varier les valeurs de min vers max puis inversement (l'inverse pour le potentiomètre 1).
#include <SPI.h>
const uint8_t
SPI_MISO
const uint8_t
SPI_CS
const uint8_t
SPI_SCK
const uint8_t
SPI_MOSI
int
compteur
= 0;
bool
sens
= true;
void
setup() {
delay(10000);
Serial.begin(9600);
Serial.println("Setup
pinMode(A0,INPUT);
pinMode(A1,INPUT);
analogReadResolution(12);
Serial.println("Init analogique
bool
spiOK
= SPI.setRX(SPI_MISO);
spiOK
&= SPI.setTX(SPI_MOSI);
spiOK
&= SPI.setSCK(SPI_SCK);
spiOK
&= SPI.setCS(SPI_CS);
if
(spiOK) {
SPI.begin(true);
Serial.println("Init SPI
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
// Potentiomètre 0 à min
SPI.transfer16(0b0000000000000000);
SPI.end();
SPI.begin(true);
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
// Potentiomètre 1 à max
SPI.transfer16(0b0001000100000000);
SPI.end();
}
else
{
Serial.println("Init SPI
}
Serial.println("Setup
}
void
loop() {
Serial.print("Valeur broche A0:
Serial.print(analogRead(A0));
Serial.print(" - Valeur broche A1:
Serial.println(analogRead(A1));
delay(1);
if(sens) {
// Incrémente pot 0
SPI.begin(true);
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
SPI.transfer(0b00000100);
SPI.end();
// Décrémente pot 1
SPI.begin(true);
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
SPI.transfer(0b00011000);
SPI.end();
}
else
{
// Décrémente pot 0
SPI.begin(true);
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
SPI.transfer(0b00001000);
SPI.end();
// Incrémente pot 1
SPI.begin(true);
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
SPI.transfer(0b00010100);
= 16;
= 17;
= 18;
= 19;
Début");
OK");
OK");
KO");
Fin");
");
");