Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2014-05-30 08:50:45 variateur de vitesse

fabrice54
membre
Date d'inscription: 2012-06-07
Messages: 242

variateur de vitesse



Bonjour.
Je voudrais faire varier la vitesse du moteur avec la souris dans le programme qui suit;mais je me demande; comme le port est occupé avec le changement de sens du moteur ,si il peut voir le déplacement de la souris?.
Y a t'il un moyen de faire varier la vitesse pendant que le moteur tourne?

Merci.

Code (P5) :

import processing.serial.*;      
import cc.arduino.*;     
Arduino arduino;   
int sens_moteur=2;
int vitesse=3;
int val_vitesse=0;
void setup() {
  size(500,200);
  println(Arduino.list());
    arduino = new Arduino(this, Arduino.list()[0], 57600);
        arduino.pinMode(sens_moteur, Arduino.OUTPUT);
       
}
void draw() {
  background(255);
  //sens marche moteur sur M1;
  // vitesse moteur sur E1;
       fill(0);
rect(20,40,255-20,20);
   
          arduino.digitalWrite(sens_moteur, Arduino.HIGH);
    delay(5000);
    arduino.digitalWrite(sens_moteur, Arduino.LOW);
    delay(5000);
    val_vitesse = constrain(mouseX, 20,255); 
fill(0,255,0);
rect(20, 40, val_vitesse-20, 20);
  arduino.analogWrite(vitesse,val_vitesse);
        
     
   
}

Hors ligne

 

#2 2014-05-30 13:31:00 Re : variateur de vitesse

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: variateur de vitesse



Bonjour,

Un delay est bloquant. Donc si tu souhaites interagir malgré tout il faut mettre un compteur :

import processing.serial.*;        
import cc.arduino.*; 

Arduino arduino;  

int sens_moteur=2;  
int vitesse=3;  
int val_vitesse=0; 
int temps, tempsPrecedent;

boolean etat;

void setup() {  
  size(500, 200);  
  println(Arduino.list());  
  arduino = new Arduino(this, Arduino.list()[0], 57600);  
  arduino.pinMode(sens_moteur, Arduino.OUTPUT);
  tempsPrecedent = millis();
  etat = true;
  arduino.digitalWrite(sens_moteur, Arduino.HIGH);
}  

void draw() {  
  background(255);  
  //sens marche moteur sur M1;  
  // vitesse moteur sur E1;  
  fill(0);  
  rect(20, 40, 255-20, 20);  
  temps  = millis();
  if ((temps > tempsPrecedent + 5000) && !etat) {
    arduino.digitalWrite(sens_moteur, Arduino.HIGH); 
    etat = true;
    tempsPrecedent = temps;
  } 
  if ((temps > tempsPrecedent + 5000) && etat) {
    arduino.digitalWrite(sens_moteur, Arduino.LOW);  
    etat = false;
    tempsPrecedent = temps;
  }
  val_vitesse = constrain(mouseX, 20, 255);   
  fill(0, 255, 0);  
  rect(20, 40, val_vitesse-20, 20);  
  arduino.analogWrite(vitesse, val_vitesse);
}

Hors ligne

 

#3 2014-05-30 15:25:19 Re : variateur de vitesse

fabrice54
membre
Date d'inscription: 2012-06-07
Messages: 242

Re: variateur de vitesse



Je te remercie pour ton programme il marche super bien;je ne sais pas si tu es tombé sur ce cas, mais je me suis aperçu que le moteur tourne toujours;si firmata est chargé dans la carte arduino ;mais il execute les fonctions du programme processing.Pour l’arrêter quant je veux dois-je utiliser une autre patte de la carte aduino qui commande un relais pour couper les fils moteur ou existe t'il une autre solution?.Car en réalité je voudrais commander  5 moteurs ce qui fais 15 pattes de la UNO c'est trop .

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2025