Pages: [1]   Go Down
Author Topic: Arduino serial emission et reception  (Read 383 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous

Voila j'ai ce petit bout de code qui fait fonctionner ma base roulante. Tout fonctionne correctement mais dès que j'essaye d'envoyer et recevoir des données en mm tps, cela fonctionne trés mal. Ma base roulante réponds avec bcp de retard.

J'aimerais avoir votre avis sur ce code pour que je puisse envoyer correctement une variable de mon arduino vers mon programme coté pc (processing)

En gros j'arrive à envoyer du pc vers l'arduino et de l'arduino vers le pc mais pas les deux en mm tps.

Par exemple si j'envois une simple variable qui s'incremente vers mon programme je n'arrive plus a guider ma base roulante correctement temps de reaction trés long ...

Code:
// Moteur A
int dir1PinA = 13;
int dir2PinA = 12;
 
// Moteur B
int dir1PinB = 11;
int dir2PinB = 8;
 
// Vitesse Moteur
int speedPinA = 10;
int speedPinB = 9;
 
int speed = 0;
char incomingByte;
 
 
void setup() {
  Serial.begin(57600);
 
  pinMode(dir1PinA, OUTPUT);
  pinMode(dir2PinA, OUTPUT);
  pinMode(speedPinA, OUTPUT);
  pinMode(dir1PinB, OUTPUT);
  pinMode(dir2PinB, OUTPUT);
  pinMode(speedPinB, OUTPUT);
 
  speed = 100;
   
}
 
 
 
void loop() 
{
 
  while (Serial.available()>0)   
  {
   
  incomingByte = Serial.read();
  //Serial.println(incomingByte, DEC);
  analogWrite(speedPinA, speed);
  analogWrite(speedPinB, speed);
  switch (incomingByte)
    {
    case 'A':
       
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      digitalWrite(dir1PinB, HIGH);
      digitalWrite(dir2PinB, LOW);
      break;
    case 'B':
       
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, LOW);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, LOW);
      break;
    case 'C':
       
      digitalWrite(dir1PinA, HIGH);
      digitalWrite(dir2PinA, LOW);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      break;
    case 'D':
     
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      break;
    case 'G':
       
      digitalWrite(dir1PinA, HIGH);
      digitalWrite(dir2PinA, LOW);
      digitalWrite(dir1PinB, HIGH);
      digitalWrite(dir2PinB, LOW);
      break;
    default:
      Serial.print("commande : ");
      Serial.print(incomingByte);
      Serial.println(" non reconnue.");
      break;
     
      }   
 
 
 }
     
}


Avez vous des idées ? je pense que je devrais utiliser une fonction pour envoyer et recevoir sur mon arduino mais mes compétences s'arretent la ...
Est ce que qq'un as deja fait ceci ?

Cordialement,
bypbop
Logged

Pages: [1]   Go Up
Jump to: