Pages: 1 [2]   Go Down
Author Topic: Chronomètre avec enregistrement des tours (1 de 3)  (Read 6134 times)
0 Members and 1 Guest are viewing this topic.
Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Madkart (devine a quoi me sert le chrono)

Pour des courses d'enclumes.... :smiley
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je vais commencer par voir a assigner des nouvelles pins avec le softwareSerial en premier et si ca marcher pas bien .. jvais continuer a consulter les liens.

(aussi prenez note que les commentaires dans mes codes plus haut sont erronés, je vais les retaper plus tard pour bien expliquer chaque ligne.

mon premier post de code est un timer
mon second post de code est un chronomètre relié a un sensor de pression lu dans analog 2... )
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai réussi a tout faire fonctioner:

Voici le principe que j'utilise

arduino1 -transmitter, peut envoyer un signal mais en recoit pas, stand alone - branché sur batterie 9 volt. tout ce qu'il fait c'est capter avec un force sensor et transmet le chiffre 2 au arduino reciever si qqn a écrasé son sensor.

arduino2- reviever. est branché par usb a un ordinateur, recoit du signal et c'est lui qu a le chronomètre intégré.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

// ********** setup du arduino 1 - le transmitter par Sylvain Castel
// antenne apc 220 avec un cable qui relie la pin RX au tx1 du arduino ,le rest de l'antenne est connecté au ground et 5 volts
// un sensor de pression relié au analog2 ( et il y a une résistance de 10kohm entre le ground et le sensor)
// une led relié a la pin digital 13

int  signalGo = 2;// juste un chiffre que j'ai choisi pour dire que qqn a passé sur le sensor du arduino transmitter
int forcePin = 2; // select the input pin for the force sensor
int val = 0; // variable pour définir la valeur qui vien du force sensor - variable to store the value coming in from the sensor
int led5=13; // je definit le terme led5 au chiffre 13 - defines "led5" as the number 13

void setup() //run one time when the Arduino first powers up
{Serial.begin(9600); //starts serial communication, only used for debgugging
pinMode(led5, OUTPUT); // j'assigne la led5 comme un output pour y envoyer ou pas l'électricité a ma led - setting the led5, as usable
}


void loop() // boucle continue - This next bit of code runs continuously
{
  
  val = analogRead(forcePin); // lecture de la valeur qui vient du sensor de pression - read the value from the sensor
  if (val>500){ // si la valeur lue est plus que 500, alors exécute le code ci dessous entre{ } - if the value is maxed out or greater than 500
  
  digitalWrite(led5,HIGH); // allume ma led car le sensor est écrasé- turns on LED 13 sensor is pressed
Serial.println(signalGo);// on envoie un signal(le chiffre 2) a l'autre arduino (arduino2 - reciever) - send a rf signal (value 2) to the second arduino (arduino2 receiver)
 delay(1000); //attend une seconde, ce qui fait qu'on peut pas écraser 2 fois rapidement le sensor - wait for a second, so that you can't press super fast the sensor 2 times in a row
 }
 else{
   digitalWrite(led5,LOW); // éteint la led du arduino 1 - turn off  led 13 on transmitter
}
}
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

// ********** setup du arduino 2 - le reciever par Sylvain Castel
// antenne apc 220 avec un cable qui relie la pin TX au RX0 du arduino ,le rest de l'antenne est connecté au ground et 5 volts
// un sensor de pression relié au analog2 ( et il y a une résistance de 10kohm entre le ground et le sensor)
// une led relié a la pin digital 13


// section pour définir la communication rf
int incomingByte = 0; // valeur recu par l'antenne rf - value recieved by rf transmission


// section de définitions pour le chronomètre - defenitions for the chronometer
unsigned long  tempsPrecedent = 0, tempsActuel = 0,tempsTotal = 0; // mes variables de temps
unsigned long centitot1 = 0;            // centieme to display
unsigned long secotot1 =0;              // seconds  to display
unsigned long minutot1 =0;                  // minutes to display



// définitons pour composantes hardware
int led5=13; //  je definit le terme led5 au chiffre 13 - defines "led5" as the number 13select the input pin for the force sensor
int forcePin = 2; // pin analogue relie au force sensor - select the input pin for the force sensor
int val = 0; // variable représentant la valeur du force sensor -variable to store the value coming in from the sensor


void setup() {
      Serial.begin(9600);      // opens serial port, sets data rate to 9600 bps
pinMode(led5, OUTPUT); // j'assigne la led5 comme un output pour y envoyer ou pas l'électricité a ma led - setting the led5, as usable
}

void loop() {
val = analogRead(forcePin);  // lecture de la valeur qui vient du sensor de pression - read the value from the sensor

//début de section chronomètre relié au sensor analog2 -section start for chonometer with force sensor arduino2
if (val>500){ // si la valeur lue est plus que 500, alors exécute le code ci dessous entre{ } - if the value is maxed out or greater than 500
digitalWrite(led5,HIGH); // allume ma led car le sensor est écrasé- turns on LED 13 sensor is pressed


tempsTotal=tempsActuel - tempsPrecedent;
Serial.print("temps precedent: "); // here we print some text
  Serial.println(tempsPrecedent);// here we print the preceding time
  Serial.print("temps actuel: ");// here we print some text
  Serial.println(tempsActuel);// here we print the actual time when the sensor was pressed
  Serial.print("temps total: ");// here we print some text
  Serial.println(tempsTotal);// here we print the total time in millis(tempsTotal=tempsActuel - tempsPrecedent;)
        
centitot1 = (tempsTotal%1000)/10 ;       //centieme to display
secotot1 = (tempsTotal/1000)%60 ;        // second to display
minutot1 = (tempsTotal/1000)/60 ;        // minute to display    

 Serial.print("Votre temps: ");// here we print some text
  Serial.print(minutot1);// we display minutes
   Serial.print(":");// we sepate the minutes with :
    Serial.print(secotot1);// we display seconds
     Serial.print(":"); //we sepate the seconds with :
      Serial.println(centitot1);// we display hundreds seconds
      
tempsPrecedent = tempsActuel; // ici on update la valeur de la variable temps précédent pour la prochain fois qu'on rentre dans le void loop -once we get our timing done, we update the value of the present time for the next time we go thru the void loop
delay(1000); //on attend une seconde pour éliminer les erreurs de double pression sur le sensor
}
else{ // si on a pas écrasé le sensor de pression
digitalWrite(led5,LOW); //éteint ma led - turn off  led 13
tempsActuel = millis();// je defini la variable temps actuel a la fin

}


// fin section chronomèetre relié au sensor analog2 -  end of chronometer lind to the sensor


      
      if (Serial.available() > 0) {// ici on set pour recevoir de l'info - here we set up to recieve rf data
            
            incomingByte = Serial.read();// definit une variable pour dire qu'on lit - variable to say we read or recieve data
if (incomingByte == 50){ // ici le chiffre 50 définit la valeur décimale du ''2'' envoyé en signal rf par la transmitter (aruidno1)
 
  
  //debut du chronomèetre relié a la reception du signal - start of chrnometer with using the rf data as en event starter for chrono

digitalWrite(led5,HIGH);

tempsTotal=tempsActuel - tempsPrecedent;
Serial.print("temps precedent: ");
  Serial.println(tempsPrecedent);
  Serial.print("temps actuel: ");
  Serial.println(tempsActuel);
  Serial.print("temps total: ");
  Serial.println(tempsTotal);
        
centitot1 = (tempsTotal%1000)/10 ;       //centieme to display
secotot1 = (tempsTotal/1000)%60 ;        // second to display
minutot1 = (tempsTotal/1000)/60 ;        // minute to display    

 Serial.print("Votre temps: ");
  Serial.print(minutot1);
   Serial.print(":");
    Serial.print(secotot1);
     Serial.print(":");
      Serial.println(centitot1);
      
tempsPrecedent = tempsActuel;
delay(500); // small pause so we dont hit twice in a row the sensor by mistake
}
else{
digitalWrite(led5,LOW); // on éteint la led 13 -turn off  led 13
tempsActuel = millis();

  
  // fin de section chronomètre relié a la reception d'un signal rf provenant du transmitter
  }
// ici on a une section qui permet de debug les valeurs qui nous sont envoyées par les antennes rf            
//  here is a section where you can debug, and print the values recieved by your rf antenna

// say what rf antennas recieved:
            //Serial.print("I received: ");
            //example withSerial.println(incomingByte);
                //Serial.println(tempsPrecedent, DEC);
      }
}
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

VOICI LA VIDÉO !!!!!!!!!!


Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bravo.... smiley
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

merci! c'est mon premier projet arduino! c trop le top! hehe

comment on fait pour poster du code et qui soit colorié comme dans le logiciel arduino??
« Last Edit: May 08, 2010, 01:02:30 pm by Castels » Logged

Montreal
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bravo
C'est le fun ton truc. Pour poster il y a dans le compilateur une fonction exporter pour forum. J'ai hate de voir le detail.

Madkart
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

g trouvé qu'a 9600 bps le signal se rend a environ 400-500 metres, en descendant a 2400 bps, le signal se rend a une distance incroyable.

- je vais faire des boitiers ajd, et bientot je vais poster des video du chronometre avec  des descendes de longboard smiley

aussi c quoi des courses d'enlumes??
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
aussi c quoi des courses d'enlumes??

Enclumes pas enlumes...  ;D

Voici une photo d'une magnifique enclume de compétition :

« Last Edit: May 09, 2010, 10:15:00 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Pages: 1 [2]   Go Up
Jump to: