Fermare il servo in una posizione precisa

Ciao ragazzi, ho fatto come mi avete suggerito e sto utilizzando la comunicazione in seriale. Il mio problema è che adesso non riesco più a fermare il servo quando raggiungo i 90°. Penso che lo sketch su Processing continui a leggere la "P" ininterrottamente. Mi date una mano ?

Lo sketch Arduino è questo:

#include <Servo.h> 

const int ledPin = 9; 
const int ledPin1 = 8;
const int ledPin2 = 6;
int incomingByte;
Servo myservo; 
int pos = 0; 

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

  pinMode(ledPin, OUTPUT);
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  myservo.attach(7);  
  myservo.write(0);  
}

 
void loop()
{

    if (Serial.available() > 0)
    {
        incomingByte = Serial.read();
        switch (incomingByte)
        {
        case 'H':
            digitalWrite(ledPin, HIGH);
            digitalWrite(ledPin1, HIGH);
            digitalWrite(ledPin2, HIGH);
            break;

        case 'L':
            digitalWrite(ledPin, LOW);
            digitalWrite(ledPin1, LOW);
            digitalWrite(ledPin2, LOW);
            break;
        
        case 'P':
            for (pos = 0; pos < 90; pos += 1)
            {
              myservo.write(pos);
              delay(60);
            }

            break;

        default:
         break;

        }
    }
}

Devi aver fatto confusione con i copia incolla.
Il secondo non mi pare un codice per Processing.

Il codice per Processing è questo:

import processing.serial.*;
Serial port;
 
 void setup()  {
 
    port = new Serial(this, Serial.list()[0], 9600);  
 
}    
 void draw() {
 
  String onoroff[] = loadStrings("C:/xampp/htdocs/prova/LEDstate.txt"); 
  print(onoroff[0]); 
 
  if (onoroff[0].equals("H") == true) {
    println(" - TELLING ARDUINO TO TURN LED ON");
    port.write('H');
 
  }   
    if  (onoroff[0].equals("L") == true){
    println(" - TELLING ARDUINO TO TURN LED OFF");
    port.write('L');  
 }

  if  (onoroff[0].equals("P") == true){
    println(" - TELLING ARDUINO TO OPEN THE DOOR");
    port.write('P');  
 }
  delay(1000); 
 }

Il codice Arduino è sopra :wink:

Stai facendo un allarme per l'esposizione di Roma fino al 31 agosto?

Magari !!
Sto solo cercando di riprodurre il museo della mia artista preferita :wink:

Nessuno mi dà una dritta per bloccare il servo ?

Sembra che la P venga inviata ogni 1000msec mentre che il movimento duri 60x90=5400msec
comunque può darsi che mi sbagli , non uso processing

Guarda che in Processing la funzione draw() è come la loop() per Arduino.
Viene eseguita di continuo.

Ciao,
come dice nid69ita il codice dentro a draw() viene eseguito di continuo. La soluzione più semplice per eseguirlo una sola volta è di spostare il tutto dentro a setup().

Sono riuscita a risolvere e volevo comunicarvelo, che può sempre servire a qualcuno in futuro :wink:
Ho modificato il codice in questo modo:

case 'P':
        if (flag==0) {
          flag=1; 
            for (pos = 0; pos < 90; pos += 1)
            {
                myservo.write(pos);
                delay(60);
            }
        }
            break;

Così sono riuscita a raggirare il problema.

Devon, ho provato a mettere tutto dentro al setup ma non funzionava più nulla, perché Processing non riesce a leggere i comandi scritti sul file di testo, se quel pezzo di codice non si trova all'interno del draw. Almeno questo è quello che ho riscontrato.
Ho trovato più semplice agire sullo sketch Arduino :wink:

Comunque grazie a tutti per il supporto !!!

Secondo me potevi fare la stessa cosa dentro a Processing.

Per Processing se ti interessa disegnarti una piccola interfaccina GUI potresti usare la libreria G4P che ha anche un tool per disegnare la maschera (e modificarla).
Libreria: Quarks Place
Designer: Quarks Place

Però bisogna dire che velenia è proprio una bella ragazza , e le belle ragazze che trafficano con elettronica e aggeggi vari sono ancora più belle :smiley:

icio:
Però bisogna dire che velenia è proprio una bella ragazza , e le belle ragazze che trafficano con elettronica e aggeggi vari sono ancora più belle :smiley:

Forse intendevi dire: "Però bisogna dire che l'utente con nick Velenia ha scelto una Avatar di una bella ragazza..." :grin:

PaoloP:
Forse intendevi dire: "Però bisogna dire che l'utente con nick Velenia ha scelto una Avatar di una bella ragazza..." :grin:

Paolo, da questo tuo commento deduco che in passato .. hai preso qualche fregatura ... :stuck_out_tongue: XD :stuck_out_tongue: XD :stuck_out_tongue: XD

Guglielmo

Non io... ma qualcuno del forum può essere. :grin: :grin:

E' provato che con una foto di una bella ragazza ricevi il tot% di aiuti in più :stuck_out_tongue:

Io SONO una ragazza e c'è sempre tanta diffidenza quando una ragazza si interessa a questo genere di cose...la riscontro tutti i giorni sul lavoro e a scuola...chissà poi perchè :roll_eyes:
Comunque dopo faccio una foto per voi del forum per dimostrarvi che quella è la mia vera identità XD

Perchè le ragazze in italia rappresentano una % trascurabile sul totale, alla scuola ITIS di mio figlio che ha più di 700 alunni le ragazze sono.....5.
Le ragazze in italia fanno le magistrali, l'artistico, il liceo, il classico, etc... ma non l' ITIS, è una questione di cultura sociale.
Inutile dire che cambierà. E' così da sempre e basta.

Velenia, è un dato di fatto, misurabile anche, che le ragazze che sanno usare un Arduino sono una esigua minoranza. Ad esempio tu quante ne conosci?
Così come è assolutamente vero quanto scritto da icio.

Grazie piuttosto per essere tornata qui a scrivere la soluzione che hai trovato, è una cosa che fanno in pochi indipendentemente dal sesso.

icio, non essere pessimista. E' vero che anche nei forum stranieri le ragazze sono una minoranza ma anni fa erano proprio zero.
E' ora che allarghino i loro orizzonti così come noi uomini.

Pienamente d'accordo con zoomx. Diciamo che è ancora un fatto culturale, anche l'educazione è piuttosto sessista! Comunque la fidanzata del mio collega di scrivania è ingeniere meccatronico!!
@Icio, non essere pessimista, è solo questione di tempo!! :wink:
Però a voler pensar male, per un utente newbie un rapporto post/karma 5:1 è veramente notevole! ]:smiley: Ma questa è colpa di noi maschietti temo... :blush:

tapirinho:
Però a voler pensar male, per un utente newbie un rapporto post/karma 5:1 è veramente notevole! ]:smiley: Ma questa è colpa di noi maschietti temo... :blush:

:grin: ]:smiley: :grin: