Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme pour faire tourner le ServoMoteur

Vibration du servomoteur

    19 avril 2018 à 9:21:29

    Bonjour à tous,

    J'ai un problème avec un programme qui me permet l'ouverture à distance et via un bouton.

    Quand j'appuie sur le bouton de mon téléphone avec le logiciel Blynk, Le servomoteur commence à vibrer mais ne tournes pas et je ne vois pas d'ou provient le problème.

    Voici le programme que j'ai utilisé

    #!/usr/bin/env node
    
    //*** SMARTPHONE DOORLOCK ***//
    
    // ************* PARAMETERS *************** //
    // 
    // Parameters: unlockedState and lockedState
    // These parameters are in microseconds.
    // The servo pulse determines the degree 
    // at which the horn is positioned. In our
    // case, we get about 100 degrees of rotation
    // from 1ms-2.2ms pulse width. You will need
    // to play with these settings to get it to
    // work properly with your door lock
    //
    // Parameters: motorPin
    // The GPIO pin the signal wire on your servo
    // is connected to
    //
    // Parameters: buttonPin
    // The GPIO pin the signal wire on your button
    // is connected to. It is okay to have no button connected
    //
    // Parameters: ledPin
    // The GPIO pin the signal wire on your led
    // is connected to. It is okay to have no ledconnected
    //
    // Parameter: blynkToken
    // The token which was generated for your blynk
    // project
    //
    // **************************************** //
    var unlockedState = 1000;
    var lockedState = 2200;
    
    var motorPin = 14;
    var buttonPin = 4
    var ledPin = 17
    
    var blynkToken = 'blynk_token_here';
    
    // *** Start code *** //
    
    var locked = true
    
    //Setup servo
    var Gpio = require('pigpio').Gpio,
      motor = new Gpio(motorPin, {mode: Gpio.OUTPUT}),
      button = new Gpio(buttonPin, {
        mode: Gpio.INPUT,
        pullUpDown: Gpio.PUD_DOWN,
        edge: Gpio.FALLING_EDGE
      }),
      led = new Gpio(ledPin, {mode: Gpio.OUTPUT});
    
    //Setup blynk
    var Blynk = require('blynk-library');
    var blynk = new Blynk.Blynk(blynkToken);
    var v0 = new blynk.VirtualPin(0);
    
    console.log("locking door")
    lockDoor()
    
    button.on('interrupt', function (level) {
    	console.log("level: " + level + " locked: " + locked)
    	if (level == 0) {
    		if (locked) {
    			unlockDoor()
    		} else {
    			lockDoor()
    		}
    	}
    });
    
    v0.on('write', function(param) {
    	console.log('V0:', param);
      	if (param[0] === '0') { //unlocked
      		unlockDoor()
      	} else if (param[0] === '1') { //locked
      		lockDoor()
      	} else {
      		blynk.notify("Door lock button was pressed with unknown parameter");
      	}
    });
    
    blynk.on('connect', function() { console.log("Blynk ready."); });
    blynk.on('disconnect', function() { console.log("DISCONNECT"); });
    
    function lockDoor() {
    	motor.servoWrite(lockedState);
    	led.digitalWrite(1);
    	locked = true
    
    	//notify
      	blynk.notify("Door has been locked!");
      	
      	//After 1.5 seconds, the door lock servo turns off to avoid stall current
      	setTimeout(function(){motor.servoWrite(0)}, 1500)
    }
    
    function unlockDoor() {
    	motor.servoWrite(unlockedState);
    	led.digitalWrite(0);
    	locked = false
    
    	//notify
      	blynk.notify("Door has been unlocked!"); 
    
      	//After 1.5 seconds, the door lock servo turns off to avoid stall current
      	setTimeout(function(){motor.servoWrite(0)}, 1500)
    }


    Merci d'avance pour vos réponses :)

    • Partager sur Facebook
    • Partager sur Twitter

    Probleme pour faire tourner le ServoMoteur

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown