Pages: 1 [2]   Go Down
Author Topic: far muovere un servo un grado alla volta ad ogni pressione  (Read 1535 times)
0 Members and 1 Guest are viewing this topic.
0
Online Online
Shannon Member
****
Karma: 132
Posts: 10508
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

cambierei in
Code:
if( ps2x.ButtonPressed(PSB_BLUE) pos <=180){
       pos = pos + 1;

e

Code:
if( ps2x.ButtonPressed(PSB_PINK) && pos>=0){
       pos = pos - 1;

così se per qualch assurdo caso pos diventa un valore invalido, giochicchiare con i tasti prima o poi lo risporta ad un valore valido smiley
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Messina (Italy)
Offline Offline
Sr. Member
****
Karma: 5
Posts: 324
Ciao a tutti!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

cambierei in
Code:
if( ps2x.ButtonPressed(PSB_BLUE) pos <=180){
       pos = pos + 1;

e

Code:
if( ps2x.ButtonPressed(PSB_PINK) && pos>=0){
       pos = pos - 1;

così se per qualch assurdo caso pos diventa un valore invalido, giochicchiare con i tasti prima o poi lo risporta ad un valore valido smiley

si così è ancora meglio! smiley
Logged

Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7224
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Potresti aggiungere il valore iniziale di pos in
Code:
int pos = 90;
e nel setup dopo l'attachinterrupt inserire
Code:
myservo.write(pos);
delay(1000);

In questo modo all'accensione il servo si mette a 90°.  smiley-eek
Poi con i pulsanti lo muovi da una parte o dall'altra.

Se all'accensione non si muove, l'errore è nei collegamenti.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grandissimi è venuto!!! Grazie mille!!! Siete dei grandi!!!posto il programma corretto.

Code:
#include <PS2X_lib.h>  //for v1.6
#include <Servo.h>
PS2X ps2x; // create PS2 Controller Class

Servo myservo;
Servo myservo2;
int error = 0;
int pos = 90;


void setup(){
 Serial.begin(57600);

 //CHANGES for v1.6 HERE!!! **************PAY ATTENTION*************
  
  error = ps2x.config_gamepad(6,10,9,11, true, true);   //setup pins and settings:  GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error
  myservo.attach(3);
  
}
 void loop() {
  
   ps2x.read_gamepad();
      
     if( ps2x.Button(PSB_BLUE) && pos <= 180){
       pos = pos + 10;
   myservo.write(pos);
   delay(100);
     }
       if( ps2x.Button(PSB_PINK) && pos >= 0){
       pos = pos - 10;
   myservo.write(pos);
   delay(100);
       }
       delay(15);
 }

Bisognava dare un valore iniziale a pos per poter fare l'operazione iniziale  smiley-grin .
« Last Edit: February 07, 2013, 03:03:56 pm by Ferro » Logged

Pages: 1 [2]   Go Up
Jump to: