Ciao a tutti , mi scuso vista la mimina presenza su questo forum ma il tempo a disposizione incomincia a mancare già ora
L'oggetto in questione è un programma che fa fare uno scan ad un braccio e poi si va a posizionare a "metà" dell oggetto ...in ogni caso il programma è questo , vi ringrazio in anticipo
A me escono 2554 byte
#include <Servo.h>
Servo polso;
int sens=3;
int contatoresens;
boolean abilitazione;
int posbraccio;
int posfinale;
int val;
void setup() {
pinMode(sens,INPUT);
int i;
for (i=0;i<130;i++){
arrayled[i]=0;}
}
void loop() {
azzeramento(); //azzero
//parto con la scannerizzata
for(val=0;val<130;val++){ //se arriva a 130 non fa nulla ovviamente ed esce dal loop
if(sens=0){ //sensore non interrotto
if (abilitazione=1) //se c'è stata l abilitazione vuol dire che ha sorpassato l'oggetto una volta e può posizionarsi
posizionamento(); //chiama
polso.write(val); //fintanto che il sensore non si è interrotto si muove
delay(40);
}
if (sens=1){ //sensore interrotto
if(abilitazione=0){ //fintanto che abbiamo azzerato i valori registriamo la prima posizione dove viene interrotto il sens
posbraccio=polso.read();//registriamo la posizione
abilitazione=1;} //diciamo che abbiamo incontrato un ostacolo
polso.write(val); //si muove fintanto che il sensore è interrotto dal ciclo if
contatoresens++; //contiamo i passi che fa prima di interrompersi
delay(40);}
}
}
//-----------------------------------------------POSIZIONAMENTO----------------------------------------------------
void posizionamento() {
posfinale=posbraccio+(contatoresens/2);
for(val=polso.read();val<posfinale;val--){//verificare i menomeno(del val-- e il segno < o >) sarà sempre prima della posattuale)
polso.write(val);
delay(40);}
}
//-----------------------------------------------AZZERAMENTO------------------------------------------------------------
void azzeramento() {
for(val=polso.read();val>0;val--){
polso.write(val);
delay(40);}
abilitazione=0;
contatoresens=0;}