Unire sketch per servomotori


buongiorno, sto lavorando per un progetto con arduino uno, devo creare un braccio meccanico con diversi servomotori da 13 kg. l'idea era quella di realizzare un braccio meccanico che potesse essere comandato in tre diversi modi premendo tre diversi pulsanti, uno per ogni modo(se in tre modi è troppo complicato, almeno due se fattibile), ora mi spiego meglio.
modo 1 : attraverso un comando bluetooth con smartphone
modo 2 : attraverso dei potenziometri
modo 3 : il braccio meccanico esegue sempre lo stesso movimento "all'infinito" (spostare un oggetto).
premetto che tre sketch li ho già, anche tutte le varie parti ecc.... il mio problema è questo dunque: come fare dire ad arduino che se premo un pulsante deve eseguirmi un certo sketch, se ne premo un altro deve eseguire un altro sketch e stesso discorso per il terzo sketch. mi basta una sola scheda di arduino uno? come faccio mettere tutto in un unico sketch? grazie mille in anticipo :)

come già spiegato ogni pulsante deve riprodurre uno sketch, ma non come inserire tre pulsanti per unire tutto il programma. sul web non ce nulla di simile parte soliti led comandati da un pulsante. se mi dareste una mano ne sarei davvero grato.  grazie in anticipo chiunque mi darà una mano. di seguito gli sketch

code: [select]
1° pulsante

#include <servo.h>
 servo mioservo1;
servo mioservo2;
void setup() {
   mioservo1.attach(9);
  mioservo2.attach(10); }
  void loop() {
  mioservo1.write(180);
   delay(1000);
   mioservo2.write(170);
   delay(1000);
   mioservo1.write(150);
   delay(1000);
   mioservo2.write(20);
   delay(1000);
   }



 2° pulsante

#include <softwareserial.h>  
#include <servo.h>
servo mioservo1, mioservo2;
int bluetoothtx = 11;
int bluetoothrx = 12;
softwareserial bluetooth(bluetoothtx, bluetoothrx);
void setup()
{  mioservo1.attach(9);
  mioservo2.attach(10);
   serial.begin(9600);
  bluetooth.begin(9600);  }
void loop()
{  if(bluetooth.available()>= 2 )
  {  unsigned int servopos = bluetooth.read();
    unsigned int servopos1 = bluetooth.read();
    unsigned int realservo = (servopos1 *256) + servopos;
    serial.println(realservo);
  if (realservo >= 1000 && realservo <1180) {
      int servo1 = realservo;
      servo1 = map(servo1, 1000, 1180, 0, 180);
      mioservo1.write(servo1);
      serial.println("servo 1 on");
      delay(10);    }
     if (realservo >= 2000 && realservo <2180) {
      int servo2 = realservo;
      servo2 = map(servo2, 2000, 2180, 0, 180);
      mioservo2.write(servo2);
      serial.println("servo 2 on");

      delay(10);    }    }    }



 3°  pulsante

#include <servo.h>;
 servo mioservo1;
servo mioservo2;
const int pot1 = a0;
const int pot2 = a1;
void setup() {
   mioservo1.attach(9);
    mioservo2.attach(10);
     pinmode(pot1, input);
    pinmode(pot2, input);
    }
 void loop() {
    mioservo1.write( map(analogread(pot1), 0, 1023, 0, 179) );
    mioservo2.write( map(analogread(pot2), 0, 1023, 0, 179) );
}


buona sera,
essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti qui (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione il su citato regolamento ... grazie.

guglielmo

p.s.: qui una serie di link utili, non necessariamente inerenti alla tua domanda:
- serie di schede xxxpighi per collegamenti elettronici vari: abc - arduino basic connections
- pinout delle varie schede xxxpighi: pinout
- link generali utili: link utili


Arduino Forum > International > Italiano > Hardware (Moderator: leo72) > Unire sketch per servomotori


arduino

Comments

Popular posts from this blog

Flip address is out of range arduino uno r3

Arduino Uno not uploading

Indesign and MathType fonts