Bonjour à tous,
Bon premièrement je sais que demander de l'aide sur un forum sans se présenter avant c'est pas forcément génial et j'en suis désolé..Mais c'est surtout parce que je viens ici exceptionnellement pour notre fameux projet si je devais y devenir un membre plus actif je me présenterais avec plaisirs ^^.
Bon alors, comme dit dans le titre je suis en projet de TPE en 1ereS,
notre projet consiste à améliorer un petit bateau rameur électrique, qui ne peut qu'avancer ou reculer.
Seulement pour l'activer il faut déclencher manuellement un levier, ce qui n'est pas pratique du tout.
Nous avons donc voulus faire en sorte qu'il se déclenche par le son.
En gros voilà ce qu'on veut faire :
-Un claquement de mains : le bateau avance
-Deux claquements de mains : le bateau recule
-Trois claquements de mains : le bateau s’arrête
Pour ce faire on dispose d'un processeur, d'un relayeur et d'un détecteur son,
Le problème d'origine viens du code.. mais là en le vérifiant chez moi je me rends compte que le détecteur son ne détecte rien.. on a dût le débrancher pour le monter sur une plaque plexi, je l'ai prit chez moi pour le travailler, mais je croit bien que je n'arrive pas a bien faire les branchements.. ><
Le détecteur a :
1fil jaune connecté a la borne "SIG" que j'ai connecté au "S" de l'entrée analogique A3 de l'arduino
1fil blanc non connecté
1fil rouge "VCC" connecté au "V" de l'arduino enA3
1fil noir "GND" connecté au G de l'arduino aussi en A3
pourtant tout me semble correct et ça marchait bien en classe..
et le code ou je l'appelle :
int valeurSortante = 0;
bool ledsOn = false;
void setup()
{
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
Serial.begin(9600);
}
void loop()
{
valeurSortante = digitalRead(A3);
StopLeds();
if(valeurSortante >= 10 && ledsOn == false)
{
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
ledsOn = true;
}
}
void StopLeds()
{
delay(2000);
if(ledsOn == true)
{
digitalWrite(4, LOW);
digitalWrite(5, LOW);
ledsOn = false;
}
}
merci d'avance!
edit : Sujet résolu, code final :
int valeurSortante = 0;
unsigned long top;
int totaltop = 0;
int filtre = 300;
int totalTip = 0;
int topcount;
void setup()
{
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
Serial.begin(9600);
}
void loop()
{
valeurSortante = analogRead(A0);
// Serial.println(valeurSortante);
if (valeurSortante >= filtre && topcount == 0)
{
top = millis();
topcount = 1;
Serial.println(top);
Serial.println("boucle depart");
}
if(totaltop > 3) totaltop = 0;
if (valeurSortante >= filtre && topcount == 1 && millis() - top < 1000)
{
totaltop++;
top = millis();
Serial.println(totaltop);
Serial.println("boucle deux");
Serial.println(valeurSortante);
}
if (topcount == 1 && totaltop < 4 && millis() - top > 1000)
// if (topcount == 2 && millis() - top > 1000)
{
Serial.println("boucle trois");
Serial.println(totaltop);
//totalTip = totaltop;
switch (totaltop) {
case 1 :
AllumerLesDeuxLeds();
break;
case 2 :
AllumerUneLed();
break;
case 3 :
EteindreLesLeds();
break;
}
totaltop = 0;
topcount = 0;
}
Serial.println(totaltop);
//totaltop = 0;
}
void AllumerLesDeuxLeds()
{
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
Serial.println("1all");
totaltop = 0;
topcount = 0;
delay(5000);
return;
}
void AllumerUneLed()
{
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
Serial.println("2all");
totaltop = 0;
topcount = 0;
delay(5000);
return;
}
void EteindreLesLeds()
{
digitalWrite(4, LOW);
digitalWrite(5, LOW);
Serial.println("3all");
totaltop = 0;
topcount = 0;
delay(5000);
return;
}
pensez à régler la valeur de "filtre" en fonction de l'endroit