Bonjour a tous
j'ai une question sur l'arduino Opta; est ce qu'un script créé au départ pour un UNO peut fonctionner avec l'OPTA. (en changeant bien entendu les noms des entrées et des sorties) ?
car j'ai essayé mon script qui fonctionne sur UNO sur l'OPTA et rien ne se passe...
j'ai utilisé l'IDE ARDUINO 2.3.2
unsigned long tempsDebut; // passage précédent de l'aimant
int etatPrecedent; // lors de du dernier passage dans le loop,
// l'aimant était là, ou pas?
const int rel_0 = D0;
const int rel_1 = D1;
const int rel_2 = D2;
const int rel_3 = D3;
// niveau du seuil de vitesse (km/h) pour le déclenchement de la sortie output 7
const int seuil2 = 1300;
const int seuil3 = 1500;
const int seuil4 = 1800;
const int seuil5 = 3000;
void setup() {
pinMode(A0, INPUT);
pinMode(rel_0, OUTPUT);
pinMode(rel_1, OUTPUT);
pinMode(rel_2, OUTPUT);
pinMode(rel_3, OUTPUT);
pinMode(LED_D0, OUTPUT);
pinMode(LED_D1, OUTPUT);
pinMode(LED_D2, OUTPUT);
pinMode(LED_D3, OUTPUT);
pinMode(LED_USER, OUTPUT);
pinMode(BTN_USER, INPUT);
Serial.begin(9600); // moniteur série
etatPrecedent = digitalRead(A0); // on vérifie si l'aimant est là ou pas
}
void loop() {
int etat, delai;
unsigned long tempsFin;
int valeurCapteur = digitalRead(A0);
etat = digitalRead(A0); // on vérifie si l'aimant est là ou pas
digitalWrite(LED_USER, etat);
if ((etat) && (!etatPrecedent)) { // l'aimant vient d'arriver
if (tempsDebut > 0) { // nous connaissons le moment du début de ce tour
tempsFin = millis(); // quelle heure est-il?
delai = tempsFin - tempsDebut; // durée du tour qui vient de se terminer
if (delai <= seuil5) // 2 secondes
{
digitalWrite(rel_0, HIGH);
digitalWrite(LED_D0,HIGH);
} else {
digitalWrite(rel_0, LOW);
digitalWrite(LED_D0,LOW);
}
if (delai <= seuil4) // 1,8 secondes
{
digitalWrite(rel_1, HIGH);
digitalWrite(LED_D1,HIGH);
} else {
digitalWrite(rel_1, LOW);
digitalWrite(LED_D1,LOW);
}
if (delai <= seuil3) // 1,5 secondes
{
digitalWrite(rel_2, HIGH);
digitalWrite(LED_D2,HIGH);
} else {
digitalWrite(rel_2, LOW);
digitalWrite(LED_D2,LOW);
}
if (delai <= seuil2) // 1,3 secondes
{
digitalWrite(rel_3, HIGH);
digitalWrite(LED_D3,HIGH);
} else {
digitalWrite(rel_3, LOW);
digitalWrite(LED_D3,LOW);
}
}
tempsDebut = tempsFin; // mise à jour de la variable
}
etatPrecedent = etat; // mise à jour de la variable
}