1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
| //* Adapté a l'association d'une carte Arduino Nano 33 IOT et la carte palpeur .
//**************************************************************************
//***** La librairie "Adafruit_MCP4728.h" utilisée est celle qui se trouve
// dans le répertoire où se trouve le programme "LectureCommandeWarmPool.ino"
#include "Adafruit_MCP4728.h"
#include <Wire.h>
//***** Déclaration des deux instances de DAC MCP4728 **********************
Adafruit_MCP4728 Dac1;
Adafruit_MCP4728 Dac2;
//***** Déclaration des quatre extensions de bus ********************
#include <MCP23017.h>
// adresse I2C des extensions 16 bits MCP 23017
#define MCP1_23017_I2C_ADDRESS 0x20 // In
#define MCP2_23017_I2C_ADDRESS 0x26 // In
#define MCP3_23017_I2C_ADDRESS 0x27 // In
#define MCP4_23017_I2C_ADDRESS 0x25 // Out
// Name Out Pins add 0x25
// Port A
const uint8_t Electrovanne = 0;
const uint8_t Niv_Orp = 1;
const uint8_t Opt_Dij2 = 2;
const uint8_t Debit = 3;
const uint8_t Sens_Verin = 4;
const uint8_t On_OFF_Verin = 5;
const uint8_t Active_4_mA = 6;
const uint8_t Commut_RS = 7;
// Port B
const uint8_t Opt_Dij1 = 8;
const uint8_t Covert = 9;
const uint8_t Niv_Ph = 10;
const uint8_t Niv_4 = 11;
const uint8_t Niv_3 = 12;
const uint8_t Niv_2 = 13;
const uint8_t Niv_1 = 14;
const uint8_t Com_Niv = 15;
//===============================
// Name In Pins add 0x20
// Port A
const uint8_t NO_3 = 1;
const uint8_t NO_1 = 2;
const uint8_t NO_5 = 3;
const uint8_t NO_7 = 4;
const uint8_t NO_9 = 5;
//-----------------------------
// Name In Pins add 0x26
// Port A
const uint8_t NF_4 = 4;
const uint8_t NO_14 = 5;
const uint8_t NF_2 = 6;
const uint8_t NO_12 = 7;
// Port B
const uint8_t NO_11 = 8;
const uint8_t NF_1 = 9;
const uint8_t NO_13 = 10;
const uint8_t NF_3 = 11;
const uint8_t NO_15 = 12;
const uint8_t NO_17 = 13;
const uint8_t NO_19 = 14;
const uint8_t NF_5 = 15;
//-----------------------------
// Name In Pins add 0x27
// Port A
const uint8_t NF_6 = 0;
const uint8_t NO_20 = 1;
const uint8_t NO_18 = 2;
const uint8_t NO_16 = 3;
const uint8_t NO_10 = 5;
const uint8_t NO_8 = 6;
const uint8_t NO_6 = 7;
// Port B
const uint8_t NO_2 = 8;
const uint8_t NO_4 = 9;
MCP23017 mcp1_23017 = MCP23017(MCP1_23017_I2C_ADDRESS);
MCP23017 mcp2_23017 = MCP23017(MCP2_23017_I2C_ADDRESS);
MCP23017 mcp3_23017 = MCP23017(MCP3_23017_I2C_ADDRESS);
MCP23017 mcp4_23017 = MCP23017(MCP4_23017_I2C_ADDRESS);
void setup()
{
// initialise les MCP 23017
Wire.begin(MCP1_23017_I2C_ADDRESS);
mcp1_23017.init();
Wire.begin(MCP2_23017_I2C_ADDRESS);
mcp2_23017.init();
Wire.begin(MCP3_23017_I2C_ADDRESS);
mcp3_23017.init();
Wire.begin(MCP4_23017_I2C_ADDRESS);
mcp4_23017.init();
// Configure then outputs pins
for (int B=0; B<16; B++)
{
mcp4_23017.pinMode(B,OUTPUT);
}
for (int B=0; B<16; B++)
{
mcp1_23017.pinMode(B,INPUT);
mcp2_23017.pinMode(B,INPUT);
mcp3_23017.pinMode(B,INPUT);
}
}
void loop()
{
digitalWrite(LED_BUILTIN, HIGH);
mcp4_23017.digitalWrite(Electrovanne,HIGH);
delay(200);
mcp4_23017.digitalWrite(Electrovanne,LOW);
delay(200);
mcp4_23017.digitalWrite(Niv_Orp,HIGH);
delay(200);
mcp4_23017.digitalWrite(Niv_Orp,LOW);
delay(200);
mcp4_23017.digitalWrite(Opt_Dij2,HIGH);
delay(200);
mcp4_23017.digitalWrite(Opt_Dij2,LOW);
delay(200);
mcp4_23017.digitalWrite(Debit,HIGH);
delay(200);
mcp4_23017.digitalWrite(Debit,LOW);
delay(200);
mcp4_23017.digitalWrite(Sens_Verin,HIGH);
delay(200);
mcp4_23017.digitalWrite(Sens_Verin,LOW);
delay(200);
mcp4_23017.digitalWrite(On_OFF_Verin,HIGH);
delay(200);
mcp4_23017.digitalWrite(On_OFF_Verin,LOW);
delay(200);
mcp4_23017.digitalWrite(Active_4_mA,HIGH);
delay(200);
mcp4_23017.digitalWrite(Active_4_mA,LOW);
delay(200);
mcp4_23017.digitalWrite(Commut_RS,HIGH);
delay(200);
mcp4_23017.digitalWrite(Commut_RS,LOW);
delay(200);
mcp4_23017.digitalWrite(Opt_Dij1,HIGH);
delay(200);
mcp4_23017.digitalWrite(Opt_Dij1,LOW);
delay(200);
mcp4_23017.digitalWrite(Covert,HIGH);
delay(200);
mcp4_23017.digitalWrite(Covert,LOW);
delay(200);
mcp4_23017.digitalWrite(Niv_Ph,HIGH);
delay(200);
mcp4_23017.digitalWrite(Niv_Ph,LOW);
delay(200);
mcp4_23017.digitalWrite(Niv_4,HIGH);
delay(200);
mcp4_23017.digitalWrite(Niv_4,LOW);
delay(200);
mcp4_23017.digitalWrite(Niv_3,HIGH);
delay(200);
mcp4_23017.digitalWrite(Niv_3,LOW);
delay(200);
mcp4_23017.digitalWrite(Niv_2,HIGH);
delay(200);
mcp4_23017.digitalWrite(Niv_2,LOW);
delay(200);
mcp4_23017.digitalWrite(Niv_1,HIGH);
delay(200);
mcp4_23017.digitalWrite(Niv_1,LOW);
delay(200);
mcp4_23017.digitalWrite(Com_Niv,HIGH);
delay(200);
mcp4_23017.digitalWrite(Com_Niv,LOW);
delay(200);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
} |
Partager