Bonsoir à tous !
Etant sur un nouveau projet et bloquant sur des problèmes de calculs mathématiques dans l'arduino,
je sollicite avec plaisir votre aide !
Tout d'abord voici mon programme:
/*
PPE 2011-2012
Projet Fenêtre
Sous-Programme Double Seuil
Version: 1.0
Auteur: Jean-Baptiste
Test avec la commande d'une lumière à l'aide d'un relais et un capteur de lumiosité
*/
// Installation de la librairie de communication PC <=> Nano
#include <SPI.h>
#include <math.h>
// Configuration des Etats pour les Relais
int HAUT = LOW;
int BAS = HIGH;
// Valeurs des E/S
const int Lumiosite = A4;
const int Commande_Lumiere = 2;
// Valeurs des Etats
double Etat_Lumiosite = 0;
int etat_tempo_lumiere = 0;
// Variables autres
double tension_lumiosite = 0;
unsigned long temps = 0;
unsigned long tempo_lumiere = 0;
void setup() {
// Initialisation connexion PC <=> Nano
Serial.begin(9600);
Serial.println("Demarrage de l'arduino");
// Initialisation des E/S
Serial.println("Initiation des E/S de l'arduino");
pinMode(Lumiosite, INPUT);
digitalWrite(Lumiosite,HIGH);
pinMode(Commande_Lumiere, OUTPUT);
digitalWrite(Commande_Lumiere, BAS);
Serial.println("Initiation de l'arduino ok !");
}
void loop() {
// Stockage du temps
temps = millis();
// Lecture des différentes valeures
tension_lumiosite = analogRead (Lumiosite);
Etat_Lumiosite = 7.5 - 26*log[(-457*tension_lumiosite-1858)/tension_lumiosite];
// <300lux allumage marge de 100 lux
if ( temps - tempo_lumiere >= 10000 && (etat_tempo_lumiere == 1 || etat_tempo_lumiere == 2)){
etat_tempo_lumiere = 2;
}
else if (etat_tempo_lumiere == 0) {
tempo_lumiere = temps;
}
if (Etat_Lumiosite < 300 ) {
etat_tempo_lumiere = 1;
if (etat_tempo_lumiere == 2) {
digitalWrite(Commande_Lumiere, HAUT);
}
}
else if (Etat_Lumiosite > 400) {
etat_tempo_lumiere = 1;
if (etat_tempo_lumiere == 2) {
digitalWrite(Commande_Lumiere, BAS);
}
}
else {
etat_tempo_lumiere = 0;
}
}
Il utilise le principe du double seuil pour les connaisseurs, cependant ce n'est qu'un premier jet.
Mais mon problème ne se situe pas là, c'est dans la compile...
Il n'a pas l'air d'accepter le stockage || le calcul de mes valeurs, soit cette ligne:
Etat_Lumiosite = 7.5 - 26*log[(-457*tension_lumiosite-1858)/tension_lumiosite];
Voici l'erreur retournée:
Sous_Programme_Double_Seuil.cpp: In function 'void loop()':
Sous_Programme_Double_Seuil:57: error: invalid types 'double ()(double)[double]' for array subscript
Une idée d'où provenir ce soucis ?
D'après ce que je vois, il refuse de la stocker et/ou de la calculer ?!
Merci d'avance à tous !
Bonne soirée !