domanda??

salve a tutti, volevo chiedervi una cosa, e da poco che pratico con arduino uno e il suo linguaggio, ho fatto riferimento all’esempio: http://arduino.cc/en/Tutorial/Knob
ora io ho fatto una piccola modifica, ho cercato di far accendere il led collegato al pin 13 quando il servo arriva a 100 gr ,poi a farlo spegnere se inferiore a 100 gr…tutto sembra andare alla grande, solo che dopo averlo compilato, se ho bisogno di fare qualche modifica sul codice non me lo fa’ compilare piu’, e mi esce un errore di nome: Serial port ‘COM7’ already in use. try quiting any programs that may be using it. Poi sotto mi da altri errori:

Cattura88.PNG

poi quando stacco il cavetto USB e lo inserisco di nuovo me lo compila nuovamente, poi se rivoglio compilarlo aggiungendo qualche modifica nel codice, fa lo stesso errore..........non capisco,,, grazie per l'aiuto.

scusate mi sono scordato di farvi vedere il codice:

#include <Servo.h>

Servo myservo; // create servo object to control a servo

int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
int PWMpin2 = 13;
void setup()
{
pinMode(PWMpin2, OUTPUT);
myservo.attach(9); // attaches the servo on pin 9 to the servo object
delay(2000);
Serial.begin(9600);
}

void loop()
{
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
Serial.print("valore fotoresistenza = ");
Serial.println(val);
int gradi = map(val,0, 1023,0, 179); // scale it to use it with the servo (value between 0 and 180)
myservo.write(gradi);
Serial.print("gradi del servo = ");
Serial.println(gradi);
Serial.println();
delay(250); //short delay for faster response to light.

{

if (val>100)
{
digitalWrite(PWMpin2, HIGH);
}
if (val<100)
{
digitalWrite(PWMpin2, LOW);
}
}
}

non è un problema del codice, ma come il SO gestisce la comunicazione seriale. Quindi versione di arduino IDE utilizzata, sistema operativo, architettura (32 o 64 bit), modello di arduino (UNO, 2009, seriale, etc..)

e come posso fare per non far uscire piu’ questo errore??

ma a voi e capitato?

beh inizia a darmi le informazioni richieste...

architettura PC 32bit , Arduino uno

versione IDE windows

la tua versione di windows?

seven

comunque volevo annotare che se avete fatto riferimento al codice io ho stampato sul monitor i valori del potenziometro e i gradi del servo: void loop() { val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023) Serial.print("valore fotoresistenza = "); Serial.println(val); int gradi = map(val,0, 1023,0, 179); // scale it to use it with the servo (value between 0 and 180) myservo.write(gradi); Serial.print("gradi del servo = "); Serial.println(gradi); Serial.println(); delay(250); //short delay for faster response to light.

{ IL punto e', se io tolgo il filo rigido dal pin PWM 9 (cioe' il segnale servo)e compilo,, quando vado a vedere sul monitor tutto funziona correttamente, anche quando regolo il potenziometro. poi se attacco al pin 9 il segnale servo, ho notato che sul monitor non mi da' nessun valore e blocca lo scorrere dei valori,e rimane acceso il led TX della scheda arduino... e poi mi esce di nuovo quel errore,,,,,,, io credo che sia il servo. cosa ne pensate???

Hai provato di alimentare il servo da un alimentazione esterna collegando il meno del alimentatore con la massa? Ciao Uwe

tu dici che assorbe troppo corrente?

sí, quella era l' idea dietro la mia domanda. Ciao Uwe

Penso che l'intuizione di uwefed sia quella giusta, mi e' capitato gia' lavorando coi motori.

uwefed: sí, quella era l' idea dietro la mia domanda. Ciao Uwe

si in effetti funziona bene, pero' ho alimentato il servo a 5 v esterno, ma sembra impazzito non riesce a mantenere il valore dato dal potenziometro.....xche?

hai messo il meno della batteria in comune con GND?

Domanda stupida, ma spesso poi si rivelano le stupidaggini a fare impazzire la gente (tipo me), quando cerchi di ricompilare tieni chiuso il Serial monitor?

Ciao,

Fabrizio.

si lo tengo chiuso

io lo lascio aperto tanto si chiude da solo. Secondo me se non è il servo a far sfasare qualcosa di strano è un problema di driver.