1° Forum di Astronomia Amatoriale Italiano

Il primo forum di astrofili per astrofili, nato nel 2000!
Oggi è giovedì 28 marzo 2024, 12:41

Menu

* Home
* Iscriviti
* La Bacheca
* F.A.Q.
* Cerca
* Login/Logout 

Login

Nome utente:
Password:

 Ho dimenticato la password

In Linea

Visitano il forum: Nessuno e 17 ospiti

Regolamento

regolamento

Links

*
Astrocafè

Segnala bolide
* Meteoblue.com
* Previsioni seeing
* Il Meteo.it
Help Forum
 

Tutti gli orari sono UTC + 1 ora




Apri un nuovo argomento Rispondi all’argomento  [ 178 messaggi ]  Vai alla pagina Precedente  1 ... 14, 15, 16, 17, 18
Autore Messaggio
 Oggetto del messaggio: Re: AstroFocus 5
MessaggioInviato: martedì 8 febbraio 2022, 18:37 
Moderatore
Avatar utente

Iscritto il: martedì 6 maggio 2008, 11:59
Messaggi: 9268
Località: San Francesco al Campo [TO]
Tipo di Astrofilo: Visualista e Fotografo
Ciao Carlo.
Carlo.Martinelli ha scritto:
pertanto secondo voi sarebbe possibile mettere 5/6 pulsanti che identifichino la posizione approssimativa di fuoco per ogni configurazione?
No.
Carlo.Martinelli ha scritto:
Non ho trovato il sorgente probabilmente Ivaldo non lo ha messo a disposizione
Esatto.
Carlo.Martinelli ha scritto:
Chiedo una cosa strana? Help!
Visto che astrofocus è stato pensato per la gestione di un fuocheggiatore in un osservatorio remoto non è pensato per cambiare setup, in quanto remoto il setup è sempre quello.

Se cerchi in giro ci sono nuovi progetti di fuocheggiatori realizzati con Arduino, RPI o ESP che potrebbero fare al caso tuo.

_________________
Simone Martina
(a.k.a. gaeeb)
- - - - - - - - - - - - - - - - - - - -
Gruppo Astrofili Edward Emerson Barnard
Home Page: www.gaeeb.org
Facebook: facebook.com/gaeeb
Twitter: twitter.com/gaeeb_org

autocostruttite.wordpress.com


Top
  Profilo   WWW  
 
 Oggetto del messaggio: Re: AstroFocus 5
MessaggioInviato: giovedì 10 febbraio 2022, 6:59 
Avatar utente

Iscritto il: domenica 23 aprile 2006, 22:02
Messaggi: 7738
Tipo di Astrofilo: Fotografo
Carlo.Martinelli ha scritto:
Non ho trovato il sorgente probabilmente Ivaldo non lo ha messo a disposizione.


Svelato il terzo segreto di Fatima:
Codice:
/*
 * AstroFocus - Servo fuocheggiatore ASCOM basato su Arduino
 * Progetto di Ivaldo Cervini e Matteo Quadri
 * Da un'idea di Simone Martina
 * Codici di Ivaldo Cervini
 *
 * 23   luglio 2014 - Versione 2.0.0.0
 * 17 novembre 2015 - Versione 2.0.0.1
 * 25 dicembre 2015 - Versione 3.0.0.0
 * 26 dicembre 2015 - Versione 3.0.0.1
 * 27 dicembre 2015 - Versione 3.0.0.2
 *  6  gennaio 2016 - Versione 3.0.0.3
 *  7  gennaio 2016 - Versione 3.0.0.4
 *  7  gennaio 2016 - Versione 3.1.0.0
 *  7  gennaio 2016 - Versione 3.1.0.1
 * 26  gennaio 2017 - Versione 4.0.0.0
 *  9    marzo 2017 - Versione 4.0.1.0
 * 12    marzo 2017 - Versione 5.0.0.0
 *  5 febbraio 2019 - Versione 5.0.1.0
 *
 *
 * Hardware per questa versione:
 * - Arduino Uno
 * - Arduino Motor Shield R3
 * - Bipolar Steper Motor
 * - Adafruit MCP9808 High Accuracy Temperature Sensor
 *
 * Compatibile con il software di controllo:
 * - AstroFocus 5 ASCOM Driver
 
 * Comandi seriali di AstroFocus 5
 * -------------------------------
 *
 * 0,0   Restituisce posizione attuale
 * 0,N   Imposta la posizione attuale
 * 1,N   Va alla posizione assoluta N
 * 2,N   Va alla posizione relativa N ignorando i limiti
 * 3,0   Imposta la posizione attuale come limite inferiore (punto 0)
 * 4,0   Restituisce il limite superiore attuale
 * 4,1   Imposta la posizione attuale come limite superiore
 * 4,N   Imposta il limite superiore a N (>1) (*)
 * 5,0   Restituisce T se è presente il sensore di temperature, altrimenti F
 * 5,1   Restituisce la temperatura attuale
 * 6,0   Restituisce il coefficiente di temperatura
 * 6,N   Imposta il coefficiente di temperatura a N
 * 7,0   Disattiva la compensazione della temperatura
 * 7,1   Attiva la compensazione della temperatura
 * 8,0   Restituisce la dimensione dei passi in 1/100 di micron
 * 8,N   Imposta la dimensione dei passi in 1/100 di micron
 * 9,0   Restituisce la versione del programma
 * 10,0 Restituisce la potenza del motore (1-255)
 * 10,N Imposta la potenza del motore (1-255)
 * 11,0 Restituisce la durata degli impulsi in millisecondi
 * 11,N Imposta la durata degli impulsi in millisecondi
 * 12,0 Restituisce la pausa prima dell'interruzione dell'alimentazione del motore in millisecondi
 * 12,N Imposta la pausa prima dell'interruzione dell'alimentazione del motore in millisecondi
 * 13,0 Restituisce la modalità di spostamento (1: One Phase Full Step, 2: Two Phase Full Step, 3: Half Step)
 * 13,N Imposta la modalità  di spostamento (1: One Phase Full Step, 2: Two Phase Full Step, 3: Half Step)
 */

#include <EEPROM.h>
#include <Wire.h>
#include "Adafruit_MCP9808.h"

// Impostazione dei parametri iniziali
 
Adafruit_MCP9808 tempSensor = Adafruit_MCP9808(); // Sensore di temperatura
const char ver[] = "5.0.1.0";                     // Versione del firmware
const int pwmA = 3;                               // Pin di controllo della potenza A
const int pwmB = 11;                              // Pin di controllo della potenza B
const int dirA = 12;                              // Pin di controllo della polarità A
const int dirB = 13;                              // Pin di controllo della polarità B
const int brkA = 9;                               // Pin di controllo del freno A
const int brkB = 8;                               // Pin di controllo del freno B

// Variabili globali
int motorPosition = 0;                            // Posizione attuale del motore
int motorMax = 0;                                 // Posizione massima del motore (limite superiore)
boolean tempComp = false;                         // Indica se è attiva la compensazione della temperatura
int positionBias = 0;                             // Posizione del fuocheggiatore all'inizio della funzione di compensazione
float temperatureBias = 0;                        // Temperatura all'inizio della funzione di compensazione
boolean tempSensorActive = false;                 // Indica se il sensore della temperatura è presente ed attivo
float temperature = 0;                            // Temperatura attuale in gradi Celsius
int tempCoeff = 0;                                // Coefficiente di dilatazione
int stepSize = 0;                                 // Dimensione dei passi in micron
unsigned long timeOut = 0;                        // Tempo dopo cui eseguire una correzione della posizione a causa della temperatura
int pwr = 0;                                      // Potenza applicata al motore (0-255)
int stepDelay = 0;                                // Pausa tra gli impulsi al motore (millisecondi)
int pwrOffDelay = 0;                              // Pausa prima dell'interruzione dell'alimentazione del motore dopo il movimanto (millisecondi)
int stepMode =0;                                  // Modalità di spostamento del motore

/*
 * Operazioni da eseguire all'avvio
 */
 
void setup() {
  Serial.begin(9600);                                     // Imposta la velocità della porta seriale
  Serial.flush();                                         // Svuota il buffer della porta seriale
  if (tempSensor.begin(0x18)) {tempSensorActive = true;}  // Avvia e verifica il sensore di temperatura
  pinMode(brkA, OUTPUT);                                  // Modalità del pin del freno A
  pinMode(brkB, OUTPUT);                                  // Modalità del pin del freno B
  pinMode(pwmA, OUTPUT);                                  // Modalità del pin della potenza A
  pinMode(pwmB, OUTPUT);                                  // Modalità del pin della potenza B
  pinMode(dirA, OUTPUT);                                  // Modalità del pin della polarità A
  pinMode(dirB, OUTPUT);                                  // Modalità del pin della polarità B
  digitalWrite (brkA, LOW);                               // Rilascia il freno A
  digitalWrite (brkB, LOW);                               // Rilascia il freno B
  motorPosition = recallInteger(0);                       // Richiama la posizione attuale del motore dalla EEPROM
  motorMax = recallInteger(1);                            // Richiama la posizione massima del motore dalla EEPROM
  tempCoeff = recallInteger(2);                           // Richiama il coefficiente di dilatazione
  stepSize = recallInteger(3);                            // Richiama la dimensione dei passi in micron
  pwr = recallInteger(4);                                 // Richiama la potenza applicata al motore
  stepDelay = recallInteger(5);                           // Richiama la pausa tra gli impulsi
  pwrOffDelay = recallInteger(6);                         // Richiama la pausa prima dell'interruzione dell'alimentazione del motore
  stepMode = recallInteger(7);                            // Richiama la modalità di spostamento del motore
 
  // Verifica che il limite superiore sia valido, in caso contrario viene impostato a 32767
  if(motorMax < 1){
    motorMax = 32767;
    storeInteger(1, motorMax);
  }
}

/*
 * Ciclo principale
 */
 
void loop() {

  // Sposta il fuocheggiatore in funzione della temperatura
  if(tempComp) {
    if(timeOut < millis()){
      timeOut = millis() + 1000;
      temperature = tempSensor.readTempC();
      float floatTempCompPosition = temperature - temperatureBias;
      floatTempCompPosition = floatTempCompPosition * float(tempCoeff);
      int tempCompPosition = int(floatTempCompPosition) + positionBias;
      if (tempCompPosition < 0) {tempCompPosition = 0;}
      if (tempCompPosition > motorMax) {tempCompPosition = motorMax;}
      if(tempCompPosition != motorPosition){
        motorMove(tempCompPosition - motorPosition);
        storeInteger(0, motorPosition);
      }   
    }
  }
 
  // Gestione dei comandi seriali
  while (Serial.available() > 0) {                // Controlla la porta seriale
    int cmdOne = Serial.parseInt();               // Leggi il primo parametro dalla porta seriale
    int cmdTwo = Serial.parseInt();               // Leggi il secondo parametro dalla porta seriale
    if (Serial.read() == '\n') {                  // Quando si riceve un numero seguito da LF
      switch(cmdOne) {
        case 0:
          if(cmdTwo == 0){
            // Restituisci la posizione attuale
            Serial.println(motorPosition);
          }
          else{
            // Imposta la posizione attuale al valore indicato
            motorPosition = cmdTwo;
            storeInteger(0, motorPosition);
            Serial.println("OK");
          }
          break;
         
        case 1:
          // Vai alla posizione assoluta passata come parametro
          if (cmdTwo < 0) {cmdTwo = 0;}
          if (cmdTwo > motorMax) {cmdTwo = motorMax;}
          if(tempComp){
            Serial.println("Error");
          }
          else{         
            // Vai alla posizione assoluta
            if (cmdTwo != motorPosition){
              motorMove(cmdTwo - motorPosition);
              motorPosition = cmdTwo;
              storeInteger(0, motorPosition);
            }
          Serial.println("OK");
          }
          break;
         
        case 2:
          // Sposta il motore in modo relativo e ignorando i limiti
          if(tempComp){
            Serial.println("Error");
          }
          else{
            if(cmdTwo != 0){
              motorMove(cmdTwo);
              // motorPosition = motorPosition + cmdTwo;
              storeInteger(0, motorPosition);
            }
            Serial.println("OK");
          }
          break;
         
        case 3:
          // Imposta il limite inferiore alla posizione attuale
          if(tempComp){
            Serial.println("Error");
          }
          else{
            motorPosition = 0;
            storeInteger(0, 0);
            Serial.println("OK");
          }
          break;
         
        case 4:
          // Limite superiore
          if(tempComp){
            Serial.println("Error");
          }
          else{
            if(cmdTwo == 0){
              // Restituisci il limite superiore
              Serial.println(motorMax);
            }
            if(cmdTwo == 1){
              // Imposta il limite superiore alla posizione attuale
              if(motorPosition > 0){
                motorMax = motorPosition;
                storeInteger(1, motorMax);
                Serial.println("OK");
              }
            }
            else{
              if(motorPosition > 0){
              // Imposta il limite superiore in una posizione arbitraria
              if (motorPosition <= cmdTwo){
                motorMax = cmdTwo;
                storeInteger(1, motorMax);
                Serial.println("OK");
              }
            }
          }
          break;
 
        case 5:
          // Restituisci la temperatura attuale
          if (cmdTwo == 0){
            if(tempSensorActive){Serial.println("T");}
            else{Serial.println("F");}
          }
          else{
            temperature = tempSensor.readTempC();
            Serial.println(temperature);
          }
          break;
         
        case 6:
          // Coefficiente di temperatura
          if(cmdTwo == 0){
            Serial.println(tempCoeff);
          }
          else{
            tempCoeff = cmdTwo;
            storeInteger(2, tempCoeff);
            Serial.println("OK");
          }         
          break;
         
        case 7:
          // Compensazione delle variazioni di temperatura
          switch(cmdTwo){
            case 0:
              tempComp = false;
              Serial.println("OK");
              break;
            case 1:
              if(tempSensorActive){
                positionBias = motorPosition;
                temperatureBias = tempSensor.readTempC();
                tempComp = true;
                Serial.println("OK");
              }
              else{Serial.println("Error");}
              break;
              case 2:
                if(tempComp){Serial.println("T");}
                else{Serial.println("F");}
              break;
          }
          break;

        case 8:
          // Dimensione dei passi (micron)
          if(cmdTwo == 0){
            Serial.println(stepSize);
          }
          else{
            stepSize = cmdTwo;
            storeInteger(3, stepSize);
            Serial.println("OK");
          }
          break;
         
        case 9:
          // Restituisci la versione del programma
          Serial.println(ver);
          break;   
        case 10:
          // Potenza del motore
          if(cmdTwo == 0){
            Serial.println(pwr);
            break;
          }
          else{
            pwr = cmdTwo;
            storeInteger(4, pwr);
            Serial.println("OK");
            break;
          }     
        case 11:
          // Durata degli impulsi
          if(cmdTwo == 0){
            Serial.println(stepDelay);
            break;
          }
          else{
            stepDelay = cmdTwo;
            storeInteger(5, stepDelay);
            Serial.println("OK");
            break;
          }     
        case 12:
          // Pausa prima dell'interruzione dell'alimentazione del motore
          if(cmdTwo == 0){
            Serial.println(pwrOffDelay);
            break;
          }
          else{
            pwrOffDelay = cmdTwo;
            storeInteger(6, pwrOffDelay);
            Serial.println("OK");
            break;
          }     
        case 13:
          // Modalità di spostamento del motore
          if(cmdTwo == 0){
            Serial.println(stepMode);
            break;
          }
          else{
            stepMode = cmdTwo;
            storeInteger(7, stepMode);
            Serial.println("OK");
            break;
          }     
        }
      }
    }
  }
}

void motorMove(int motorSteps) {
  // Imposta la velocità del motore a seconda del numero di passi da eseguire
  motorOnePhaseFullStep();
  delay(stepDelay);
  if (motorSteps < 0) {
    for (int n = 0; n < abs(motorSteps); n++){
      motorPosition--;
      switch (stepMode) {
        case 1:
          motorOnePhaseFullStep();
          break;
        case 2:
          motorTwoPhaseFullStep();
          break;
        case 3:
          motorHalfStep();
          break;
      }
      delay(stepDelay);
    }   
  }
  else {
    for (int n = 0; n < motorSteps; n++){
      motorPosition++;
      switch (stepMode) {
        case 1:
          motorOnePhaseFullStep();
          break;
        case 2:
          motorTwoPhaseFullStep();
          break;
        case 3:
          motorHalfStep();
          break;
      }
      delay(stepDelay);
    }
  }
  motorPowerOff();
}

void motorOnePhaseFullStep() {
// Muovi in modalità One Phase Full Step
  int motorPhase = motorPosition % 4;
  if(motorPhase < 0) {motorPhase = motorPhase + 4;}
  switch (motorPhase) {
    case 0:
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, LOW);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, 0);
      break;
    case 1:
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, LOW);
      analogWrite(pwmA, 0);
      analogWrite(pwmB, pwr);
      break;
    case 2:
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, HIGH);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, 0);
      break;
    case 3:
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, HIGH);
      analogWrite(pwmA, 0);
      analogWrite(pwmB, pwr);
      break;
  }
}

void motorTwoPhaseFullStep() {
// Muovi in modalità Two Phase Full Step
  int motorPhase = motorPosition % 4;
  if(motorPhase < 0) {motorPhase = motorPhase + 4;}
  switch (motorPhase) {
    case 0:
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, LOW);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, pwr);
      break;
    case 1:
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, LOW);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, pwr);
      break;
    case 2:
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, HIGH);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, pwr);
      break;
    case 3:
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, HIGH);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, pwr);
      break;
  }
}

void motorHalfStep() {
// Muovi in modalità Half Step
  int motorPhase = motorPosition % 8;
  if(motorPhase < 0) {motorPhase = motorPhase + 8;}
  switch (motorPhase) {
    case 0:
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, LOW);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, 0);
      break;
    case 1:
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, LOW);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, pwr);
      break;
    case 2:
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, LOW);
      analogWrite(pwmA, 0);
      analogWrite(pwmB, pwr);
      break;
    case 3:
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, LOW);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, pwr);
      break;
    case 4:
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, HIGH);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, 0);
      break;
    case 5:
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, HIGH);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, pwr);
      break;
    case 6:
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, HIGH);
      analogWrite(pwmA, 0);
      analogWrite(pwmB, pwr);
      break;
    case 7:
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, HIGH);
      analogWrite(pwmA, pwr);
      analogWrite(pwmB, pwr);
      break;
  }
}

void motorPowerOff(){
  // Togli corrente dal motore
  delay(pwrOffDelay);
  analogWrite(pwmA, 0);
  analogWrite(pwmB, 0); 
}

void storeInteger(int storePosition, int storeValue) {
  // Memorizza l'intero passato come parametro in due celle EEPROM adiacenti
  long longValue = long(storeValue) + 32768;
  EEPROM.write(storePosition * 2, longValue / 256);
  EEPROM.write(storePosition * 2 + 1, longValue % 256); 
}

int recallInteger(int storePosition) {
  // Recupera un intero da due celle EEPROM adiacenti
  int highValue = EEPROM.read(storePosition * 2);
  int lowValue = EEPROM.read(storePosition * 2 + 1);
  long longValue = long(highValue) * 256 + long(lowValue);
  longValue= longValue - 32768;
  return int(longValue);
}


Top
  Profilo   WWW  
 
 Oggetto del messaggio: Re: AstroFocus 5
MessaggioInviato: giovedì 10 febbraio 2022, 8:38 
Avatar utente

Iscritto il: giovedì 12 ottobre 2006, 9:32
Messaggi: 4293
Località: Veneto
Tipo di Astrofilo: Fotografo
Grazie Ivaldo, ...

...Questo è il file .ino per Arduino presente anche sul tuo sito, io intendevo invece la parte Windows, probabilmente VisualStudio dove si trova il programma di controllo ed il relativo Ascom da modificare, comunque grazie lo stesso, ho adottato una soluzione diversa per ovviare al problema.

Carlo

_________________
Carlo Martinelli - IW3GIK

Osservatorio: StarNavigator Astronomical Observatory (Masi-PD)
Montatura GM2000 QCI 10 Micron Comec Tec.;
Telescopi: Meade LXD55 S/N 1016/254 Schmidt/Newton F4; Takahashi FS102 820/102 F8 612/F6; Takahashi FS60C 355/60/ f5.9 - 264/F4.4; TS 60/228 F3.8; Celestron C11 Carbon 2800/F10 1764/F6.3; OTA MTO 1000/100 F10 SkyQualityMeter: SQM-L / SQM-LE Wheather: AAG-CloudWatcher LaCross WS55 SkyCam: AllSkyCam-MoonGlow Tec. Observatory Automation System :Voyager / Viking


Top
  Profilo    
 
 Oggetto del messaggio: Re: AstroFocus 5
MessaggioInviato: giovedì 10 febbraio 2022, 11:23 
Avatar utente

Iscritto il: domenica 23 aprile 2006, 22:02
Messaggi: 7738
Tipo di Astrofilo: Fotografo
Sul lato Windows non hai necessità di modificare nulla. Un driver ASCOM riceve i comandi da un client e li fa eseguire all'hardware, in questo caso al fuocheggiatore mosso da AstroFocus. Se vuoi dei pulsanti software sullo schermo (e non dei pulsanti fisici come mi era parso dal tuo messaggio) che spostino il fuocheggiatore a posizioni da te predefinite devi fare un programma client di ASCOM che invochi il metodo MOVE(posizione). Puoi usare VB o qualunque linguaggio ti aggradi e funzionerà con qualunque fuocheggiatore ASCOM (quindi non solo con AstroFocus).


Top
  Profilo   WWW  
 
 Oggetto del messaggio: Re: AstroFocus 5
MessaggioInviato: lunedì 7 marzo 2022, 11:02 

Iscritto il: giovedì 24 giugno 2021, 18:20
Messaggi: 33
Tipo di Astrofilo: Visualista e Fotografo
Mi chiedevo se l'Astrofocus abilita il mantenimento di coppia del motore passo-passo quando fermo (o forse questa è una caratteristica intrisinca di questi motori...non so...). Questo perchè non mi sembra ci sia apprezzabile differenza nel ruotare il motore a mano, da spento o quando è alimentato. Grazie.


Top
  Profilo    
 
 Oggetto del messaggio: Re: AstroFocus 5
MessaggioInviato: lunedì 25 aprile 2022, 21:40 

Iscritto il: giovedì 24 giugno 2021, 18:20
Messaggi: 33
Tipo di Astrofilo: Visualista e Fotografo
Salve, volevo sapere se esistono driver indi per astrofocus.
Grazie.


Top
  Profilo    
 
 Oggetto del messaggio: Re: AstroFocus 5
MessaggioInviato: martedì 26 aprile 2022, 16:55 
Moderatore
Avatar utente

Iscritto il: martedì 6 maggio 2008, 11:59
Messaggi: 9268
Località: San Francesco al Campo [TO]
Tipo di Astrofilo: Visualista e Fotografo
ale.crl ha scritto:
Salve, volevo sapere se esistono driver indi per astrofocus.
No, solo per ASCOM, ma visto che il codice di Arduino è condiviso, puoi provare a scriverne uno tu per INDI server.

_________________
Simone Martina
(a.k.a. gaeeb)
- - - - - - - - - - - - - - - - - - - -
Gruppo Astrofili Edward Emerson Barnard
Home Page: www.gaeeb.org
Facebook: facebook.com/gaeeb
Twitter: twitter.com/gaeeb_org

autocostruttite.wordpress.com


Top
  Profilo   WWW  
 
 Oggetto del messaggio: Re: AstroFocus 5
MessaggioInviato: giovedì 28 aprile 2022, 13:33 
Avatar utente

Iscritto il: domenica 23 aprile 2006, 22:02
Messaggi: 7738
Tipo di Astrofilo: Fotografo
ale.crl ha scritto:
Mi chiedevo se l'Astrofocus abilita il mantenimento di coppia del motore passo-passo quando fermo (o forse questa è una caratteristica intrisinca di questi motori...non so...). Questo perchè non mi sembra ci sia apprezzabile differenza nel ruotare il motore a mano, da spento o quando è alimentato. Grazie.
No, non lo fa. Il motore scaldava e consumava corrente inutilmente, a mio parere.


Top
  Profilo   WWW  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 178 messaggi ]  Vai alla pagina Precedente  1 ... 14, 15, 16, 17, 18

Tutti gli orari sono UTC + 1 ora


Chi c’è in linea

Visitano il forum: Nessuno e 17 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzione Italiana phpBBItalia.net basata su phpBB.it 2010