Go Down

Topic: Problema Upload (Read 1 time) previous topic - next topic

qpixvideo

Buona sera a tutti i presenti, da neofita di arduino ringrazio e pongo una questione.
Ieri ho avuto un problema con il mio Arduino Uno, ho provato a fare un Upload ed all'improvviso mi è comparso questo messaggio di errore:


avrdude: stk500_recv(): programmer is not responding

Qualcuno saprebbe spiegarmi che cosa è successo, e se esiste una eventuale soluzione ??
(Utilizzo Arduino con MAC )

Grazie mille per le eventuali risposte

cece99

La soluzione e' il form Cerca sul forum. E' un argomento trattato diciannovemilacinquecentocinquantanovemilsessantatre volte.
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

qpixvideo

Immagino, ma magari qualcuno poteva essere cosi gentile da fornirmi una spiegazione meno tecnica, o magari in termini piu terra terra !!!

pelletta

Manca un punto e virgola alla riga trentordici

qpixvideo

...La simpatia REGNA !!!!...

pelletta

Finchè non dici che hai fatto, che sketch hai caricato è impossibile darti una risposta sensata

qpixvideo

Non potevi farla suvito la domanda !?

Comunque, grazie per l'interessamento.
Ho ho creato un circuito ( credo si chiami cosi ), per comandare un motore passo passo bipolare, due pulsanti per L ed R, potenziometro per regolarne la velocità, ho utilizzato arduino uno e easydriver 4.4
Ieri ho caricato lo sketch tutto funzionava correttamente. Staccato il cavo usb ieri, oggiricollegaro senza fare alcun tipo di modifica e non andava piu nulla mi dava solo quell'errore

pelletta

Usi la seriale?
I pin digitali 0 e 1 sono collegati a qualcosa?
Puoi mettere schema elettrico e il codice?

Ora hai le domande ;)

qpixvideo

#8
Sep 02, 2013, 11:42 pm Last Edit: Sep 03, 2013, 06:23 am by leo72 Reason: 1
pin 0 e 1 non sono collegati a nulla

Questo il codice:
in allegato anche i collegamenti


Code: [Select]
EasyDriver stepper test sketch



// constants won't change. They're used here to
// set pin numbers:
const byte stepUpPin = 4;     // the number of the step pin
const byte stepDownPin = 5;     // the number of the step pin
const byte stepOut = 2;
const byte directionOut = 3;
const byte ledPin =  12;      // pin # for direction indicator LED
const byte readyPin =  11;      //pin # for LED that comes on when all the steps have been completed
const byte inMotionPin = 10; // pin # for the LED that light up when the stepper is supposed to be still moving
const byte ratePin = 0; // A0 - analog 0 pin on Arduino to control the stepping dealy (i.e. RPMs)
const byte enablePin = 6; // turn EasyDriver off when not turning (saves power but ONLY use when there's no need to hold position)

// Variables will change:
byte ledState = LOW;         // the current state of the output pin
byte lastStepUpButtonState = HIGH;   // the previous reading from the step UP pin
byte lastStepDownButtonState = HIGH;   // the previous reading from the step DOWN pin
byte directionState=HIGH;             // the current direction
byte stepUpState=HIGH;             // the current state of UP button
byte stepDownState=HIGH;             // the current state of DOWN button
int stepsPassed = 10; //how many steps?
int stepsPassedMax = 50; // trying to calculate steps per revolution (remember the microstepping settings 1/8th is default)
// most small and micro steppers, especially those that came from a CD- or DVD-R/RW drives
// have 20 steps per revolution. So 160 mircosteps should make the motor spin 360 degrees once.

long lastStepUpDebounceTime = 0;  // the last time the output pin was toggled
long lastStepDownDebounceTime = 0;  // the last time the output pin was toggled
long debounceDelay = 10;    // the debounce time in ms; increase if the output flickers

long stepDelayBase = 1; // 1ms base rate. Multiply by the reading from the RATE potentiometer for actual step delay
long stepDelay; //
long lastStepTime = 0; // last time the step signal was sent

void setup() {
 pinMode(stepUpPin, INPUT);
 pinMode(stepDownPin, INPUT);
 pinMode(ratePin, INPUT);
 pinMode(stepOut, OUTPUT);  
 pinMode(directionOut, OUTPUT);
 pinMode(ledPin, OUTPUT);
 pinMode(readyPin, OUTPUT);
 pinMode(inMotionPin, OUTPUT);
 pinMode(enablePin, OUTPUT);
 digitalWrite(readyPin, HIGH); // turn OFF all LEDs in the beginning
 digitalWrite(inMotionPin, HIGH);  // turn OFF all LEDs in the beginning
 digitalWrite(ledPin, HIGH); // turn OFF all LEDs in the beginning
}

void loop() {

 // read the state of the switch into a local variable:
 int readingStepUp = digitalRead(stepUpPin);
 int readingStepDown = digitalRead(stepDownPin);
 stepDelay = analogRead(ratePin) * stepDelayBase/50;
 if(stepDelay < 1) stepDelay = 1; // reality check - a pot can read 0 and then it would mean infinite RMP - not possible

 if(readingStepUp == LOW || readingStepDown == LOW) { // only read buttons if either one of them is LOW

     // If the switch changed, due to noise or pressing:
   if (readingStepUp != lastStepUpButtonState) {
     // reset the debouncing timer
     lastStepUpDebounceTime = millis();
     lastStepUpButtonState = readingStepUp;
   }

   if ((millis() - lastStepUpDebounceTime) > debounceDelay) {
     // whatever the reading is at, it's been there for longer
     // than the debounce delay, so take it as the actual current state:
     lastStepUpButtonState = readingStepUp;
     lastStepUpDebounceTime = millis();
     stepUpState = readingStepUp;
   }



   // If the switch changed, due to noise or pressing:
   if (readingStepDown != lastStepDownButtonState) {
     // reset the debouncing timer
     lastStepDownDebounceTime = millis();
     lastStepDownButtonState = readingStepDown;
   }

   if ((millis() - lastStepDownDebounceTime) > debounceDelay) {
     // whatever the reading is at, it's been there for longer
     // than the debounce delay, so take it as the actual current state:
     lastStepDownButtonState = readingStepDown;
     lastStepDownDebounceTime = millis();    
     stepDownState = readingStepDown;

   }


 }
 else{
   stepUpState = HIGH;
   stepDownState = HIGH;

 } // end of if block that reads button states

 if(stepsPassed == 0 ) { // if the previous command has completed, make the direction decision
   if(stepUpState == LOW || stepDownState == LOW) {
     if(stepUpState == LOW && stepDownState == LOW) {
       directionState = LOW;
     } // why are you holding both UP and DOWN buttons?
     if(stepUpState == LOW && stepDownState == HIGH) {
       directionState = HIGH;
     } // go up
     if(stepUpState == HIGH && stepDownState == LOW) {
       directionState = LOW;
     } // go down
     stepsPassed = stepsPassedMax+1;
   }
 }


 if(stepsPassed > 0 ) // send step signals now
 {
   digitalWrite(enablePin, LOW); // wake up
   digitalWrite(ledPin, directionState); // set proper direction
   digitalWrite(directionOut, directionState);
   if((millis() - lastStepTime) > stepDelay) // delay expired, send another step
   {
     digitalWrite(stepOut, HIGH);
     stepsPassed--;
     lastStepTime = millis();
   }
   else
   {
     // time for one step not yet expired, hold the STEP signal low
     digitalWrite(stepOut, LOW);
   }
 }
 else{
   digitalWrite(enablePin, HIGH); // go to sleep

 }

 if(stepsPassed == 0) {
   digitalWrite(readyPin, LOW);
   digitalWrite(inMotionPin, HIGH);

 }
 else{
   digitalWrite(readyPin, HIGH);
   digitalWrite(inMotionPin, LOW);
 }

}

qpixvideo

dimenticavo, queste in allegato sono le uniche porte che mi da

Brunello

hai alimentato i motori con i 5V di Arduino ?

qpixvideo

Mmmmmm direi di si !!!  :smiley-eek: :(

Ho sbagliato ?

Brunello

beh, bene non gli fa'...

1) si accende qualcosa collegando la scheda al PC ?
2) Hai provato a collegare un alimentatore esterno ?
3) Hai provato a cambiare la porta USB ?

qpixvideo

Mmm ok, allora quando collego l' usb si accende il led verde ON su arduino e quello rosso su easydriver, provato alimentatore esterno, ma non cambia nulla, cambiato usb nulla anche li.

Il motore è un nema 47 se non ricordo male

leo72

@qpixvideo
esite un regolamento sull'uso di questo forum.
Ti chiedo di leggerlo e rispettarlo, grazie.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy