Buongiorno a tutti, scusatemi se non mi ero presentata.. sinceramente non avevo letto il regolamento! ![]()
per quanto riguarda il fatto della sezione inglese, quando ho postato non sapevo che esistesse anche una sezione del forum italiano!! Altrimenti avrei scritto subito qui invece di scervellarmi a trovare la forma migliore in inglese... Comunque, l'argomento era del tutto diverso perchè ero ad un'altra fase del mio progetto..
per la descrizione del problema rimando al post precedente..
Spero vogliate darmi una mano.. =(
Grazie..
#include <AccelStepper.h>
// Definizione dei pin usati
#define pinStep 5
#define pinDirection 6
#define led0 0
#define led1 1
#define led2 2
#define led3 3
#define led4 4
#define led5 7
#define led6 8
#define led7 9
#define led8 10
AccelStepper stepper(1,pinStep,pinDirection);
long VelMax;
int prec_intervallo=-1;
void setup()
{
stepper.setMaxSpeed(3500);
stepper.setSpeed(950); //imposto la velocità
Serial.begin (9600);
pinMode(led0, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
}
void loop()
{
int val = analogRead(A0);
int intervallo= floor( val / 113.67);
switch (intervallo){
case 0:// vale da 0 a 113
VelMax=650;//in step/sec
digitalWrite(led0, HIGH);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
case 1:// vale da 114 a 227
VelMax=950;//in step/sec
digitalWrite(led0, LOW);
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
case 2://vale da 228 a 341
VelMax=1270;//in step/sec
digitalWrite(led0, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
case 3://vale da 342 a 454
VelMax=1595;//in step/sec
digitalWrite(led0, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
case 4://vale da 455 a 568
VelMax=1920;//in step/sec
digitalWrite(led0, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
case 5://vale da 569 a 682
VelMax=2240;//in step/sec
digitalWrite(led0, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
case 6://vale da 683 a 795
VelMax=2555;//in step/sec
digitalWrite(led0, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, HIGH);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
case 7://vale da 796 a 909
VelMax=2870;//in step/sec
digitalWrite(led0, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, HIGH);
digitalWrite(led8, LOW);
break;
case 8://vale da 910 a 1023
VelMax=3205;//in step/sec
digitalWrite(led0, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, HIGH);
break;
}
stepper.runSpeed();//provo a mettere run perchè runspeed non implementa accelerazioni
stepper.setSpeed(VelMax);
if (intervallo!=prec_intervallo)
{
Serial.print ("Valore potenziometro: ");
Serial.println (val);
Serial.print (" - Velocità motore in step/sec: ");
Serial.println (VelMax);
Serial.println (" ");
}
prec_intervallo=intervallo;
}