Bonjour, j'ai acheter une carte Arduino dans le but d'automatisé la création d'un mélange d'eau pour aquarium. J'ai une formation d'automaticien des années 2000 mais la programmation de ce type je ne connais pas. J'ai appris a déclarer mes entrées et mes sortie mais je suis incapable de lancé une programmation en séquence. A chaque fois que je lance un auto je me perd alors que je souhaite une chose simple :
- j'appuie sur le bouton DCY, l'osmoseur se met en route jusqu'au niveau Nosm, ensuite le robinet se met en route jusqu'au niveau Nrob. Je ferais par la suite si je souhaite rajouté des étapes. Mais déjà la ça ne marche pas... j'arrive même pas a compilé. Quelqu'un aurait un exemple de programme séquentiel simple?
( actuellement mon erreur est : /Users/yvanernestine/Documents/Arduino/cr_ation_m_lange_eau/cr_ation_m_lange_eau.ino: In function 'void GRAFCET_01_Bool(int, boolean*)':
cr_ation_m_lange_eau:33:1: error: expected '}' at end of input
}
^
cr_ation_m_lange_eau:33:1: error: expected '}' at end of input
exit status 1
expected '}' at end of input
// On déclare les variables
const int Nosm = 2; // la broche 2 devient niveau eau osmosée
const int Nrob = 3; // la broche 3 devient niveau eau robinet
const int Nsec = 4; // la broche 4 devient niveau sécurité
const int Dcy = 5; // la broche 5 devient depart cycle
const int OSM = 8; // la broche 3 devient niveau sécurité
const int ROB = 9; // la broche 3 devient niveau sécurité
void setup()
{
pinMode(Nosm, INPUT); // Initialise la broche 2 comme entrée
pinMode(Nrob, INPUT); // Initialise la broche 3 comme entrée
pinMode(Nsec, INPUT); // Initialise la broche 4 comme entrée
pinMode(Dcy, INPUT); // Initialise la broche 5 comme entrée
pinMode(OSM, OUTPUT); // Initialise la broche 8 comme sortie
pinMode(ROB, OUTPUT); // Initialise la broche 9 comme sortie
Serial.begin(9600); // Ouvre le port série à 9600 bauds
}
void GRAFCET_01_Bool(int fSerie_Lu, boolean *pGRAFCET_Bool)
{
//Gestion des étapes du GRAFCET
pGRAFCET_Bool[0] = (((pGRAFCET_Bool[2] && fSerie_Lu == 3) || pGRAFCET_Bool[0]) && !pGRAFCET_Bool[1]);
pGRAFCET_Bool[1] = (((pGRAFCET_Bool[0] && fSerie_Lu == 1) || pGRAFCET_Bool[1]) && !pGRAFCET_Bool[2]);
pGRAFCET_Bool[2] = (((pGRAFCET_Bool[1] && fSerie_Lu == 2) || pGRAFCET_Bool[2]) && !pGRAFCET_Bool[0]);
//Gestion des actions dans les étapes du GRAFCET
if (pGRAFCET_Bool[1]){digitalWrite(OSM, HIGH);
if (pGRAFCET_Bool[2]){digitalWrite(ROB, HIGH);
}