variac motorizzato

Schemi di elettronica analogica di segnale e potenza
Rispondi
RoccoCostruzioni
Messaggi: 51
Iscritto il: mer 9 set 2020, 21:16

variac motorizzato

Messaggio da RoccoCostruzioni »

Allora vorrei creare per il mio laboratorio un trasformatore di isolamento per ovviamente isolarmi dalla rete e accoppiarci un variac per variarne la tensione, ora fin qui niente di strano, il problema che voglio dotare il variac di un motore, e quindi regolare la tensione con un potenziometro meglio due per la regolazione grossa e fine e di un feedback per ottenere in uscita una tensione stabilizzata, girando in rete non ho trovato nulla tranne che su questo sito, https://www.testelectronics.com/TE/racp.php, dove c'è uno schema ma non si legge nulla, ora chiedo a voi, potreste consigliarmi uno schema che faccia quello che voglio io?
Grazie a tutti.
Avatar utente
Pier Aisa
Amministratore
Messaggi: 2540
Iscritto il: ven 16 mar 2018, 9:43
Località: Bologna
Contatta:

Re: variac motorizzato

Messaggio da Pier Aisa »

Tema interessante. Per realizzarlo si potrebbe immaginare una strada più digitale, con ad esempio utilizzo di Arduino, motorino in DC e lettura di corrente con sensaore Hall. Oppure una strada più classica analogica, con cun comparatore che regola la polarizzazione sempre di un piccolo motore. Io comincerei dal movimento meccanico del variac e quindi con la selezione del motorino
Avatar utente
Maxvarese
Messaggi: 1958
Iscritto il: mar 9 apr 2019, 23:53

Re: variac motorizzato

Messaggio da Maxvarese »

Per vedere esempi del" metodo analogico " cerca schemi dei vecchi rotori d'antenna,che sfruttavano il bilanciamento di un ponte resistivo per regolare la posizione..
RoccoCostruzioni
Messaggi: 51
Iscritto il: mer 9 set 2020, 21:16

Re: variac motorizzato

Messaggio da RoccoCostruzioni »

allora io ho gia realizzato con arduino, encoder rotativo per la regolazione, L298N per il comando, 2 finecorsa e motore DC motoridotto, il comando del variac e anche se il listato ha qualche imprecisione essendo il motore DC motoridotto non influenza sul funzionamento, anzi lo posto così mi date dei consigli su come modificarlo se riscontrate qualche imprecisione, ma ovviamente non ha una retroazione per la stabilizzazione. Provate a dargli un'occhiata. Metto anche una foto del lavoro di elettrificazione del variac. La parte cerchiata in rosso è, ovviamente, il motore con gli ingranaggi e la parte cerchiata in giallo sono i finecorsa. Non tenete conto dei delay(20000); in realtà bloccano il programma per 500mS cioè emette un lampeggio solo se il finecorsa è premuto e se giro l'encoder altrimenti non è bloccante.

#define pwmPin 11
#define fccw 7
#define fcccw 8
#define IN1 5
#define IN2 6
#define encoderPin1 2
#define encoderPin2 3
#define ledPin5 9
#define ledPin6 10
#define buttonPin3 4

int ledState5 = HIGH;
int ledState6 = LOW;
int buttonState3;
int lastButtonState3 = HIGH;

long lastDebounceTime3 = 2;
long debounceDelay3 = 50;

volatile int lastEncoded = 0;
volatile long encoderValue = 0;

long lastencoderValue = 0;

int lastMSB = 0;
int lastLSB = 0;

void setup() {

pinMode (pwmPin, OUTPUT);
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (fccw, INPUT_PULLUP);
pinMode (fcccw, INPUT_PULLUP);

pinMode (buttonPin3, INPUT);
pinMode (ledPin5, OUTPUT);
pinMode (ledPin6, OUTPUT);

Serial.begin (9600);

pinMode (encoderPin1, INPUT);
pinMode (encoderPin2, INPUT);

attachInterrupt (digitalPinToInterrupt(2), updateEncoder, CHANGE);
attachInterrupt (digitalPinToInterrupt(3), updateEncoder, CHANGE);

digitalWrite (IN1, HIGH);
digitalWrite (IN2, HIGH);

digitalWrite (ledPin5, ledState5);
digitalWrite (ledPin6, ledState6);
}

void loop() {

int reading3 = digitalRead(buttonPin3);
if (reading3 != lastButtonState3) {
lastDebounceTime3 = millis();
}
if ((millis() - lastDebounceTime3) > debounceDelay3) {
if (reading3 != buttonState3) {
buttonState3 = reading3;
if (buttonState3 == HIGH) {
ledState5 = !ledState5;
ledState6 = !ledState6;
if (ledState5 == HIGH) {
analogWrite(pwmPin, 150);
}
if (ledState6 == HIGH) {
analogWrite(pwmPin, 255);
}
}
}
}
digitalWrite(ledPin5, ledState5);
digitalWrite(ledPin6, ledState6);
lastButtonState3 = reading3;

Serial.println (encoderValue);
}

void updateEncoder() {

int MSB = digitalRead (encoderPin1);
int LSB = digitalRead (encoderPin2);
int encoded = (MSB << 1) | LSB;
int sum = (lastEncoded << 2) | encoded;

if (sum == 0b1101){
if (!digitalRead(fccw)) {}
else {
encoderValue ++;
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
delay(500);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
delay(500);
}
if (!digitalRead (fccw) && ledState6 == HIGH) {
digitalWrite(ledPin6, HIGH);
delay(20000);
digitalWrite(ledPin6, LOW);
delay(20000);
}
if (!digitalRead (fccw) && ledState5 == HIGH) {
digitalWrite(ledPin5, HIGH);
delay(20000);
digitalWrite(ledPin5, LOW);
delay(20000);
}

}
if (sum == 0b1110){
if (!digitalRead(fcccw)) {}
else {
encoderValue --;
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
delay(500);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
delay(500);
}
if (!digitalRead (fcccw) && ledState6 == HIGH) {
digitalWrite(ledPin6, HIGH);
delay(20000);
digitalWrite(ledPin6, LOW);
delay(20000);
}
if (!digitalRead (fcccw) && ledState5 == HIGH) {
digitalWrite(ledPin5, HIGH);
delay(20000);
digitalWrite(ledPin5, LOW);
delay(20000);
}

}
lastEncoded = encoded;
}
RoccoCostruzioni
Messaggi: 51
Iscritto il: mer 9 set 2020, 21:16

Re: variac motorizzato

Messaggio da RoccoCostruzioni »

come mai la foto non me l'ha postata? eppure ho ridotto le dimensioni affichè me l'accettasse!!
RoccoCostruzioni
Messaggi: 51
Iscritto il: mer 9 set 2020, 21:16

Re: variac motorizzato

Messaggio da RoccoCostruzioni »

ecco ci sono riuscito
scusate il cablaggio ma si tratta di prove
IMG_8145.jpg
IMG_8145.jpg (186.57 KiB) Visto 3195 volte
RoccoCostruzioni
Messaggi: 51
Iscritto il: mer 9 set 2020, 21:16

Re: variac motorizzato

Messaggio da RoccoCostruzioni »

ho visto su internet schemi per rotori d'antenna, ma la maggior parte hanno interruttori, relè e comunque nessuno soddisfa quello che vorrei fare io, certo che se qualcuno riesce a capire questo schema https://www.testelectronics.com/TE/racp.php serebbe il top, almeno credo da quello che sommariamente si capisce.
TheOrdinarySuperhero
Messaggi: 1032
Iscritto il: mar 2 ott 2018, 15:16

Re: variac motorizzato

Messaggio da TheOrdinarySuperhero »

RoccoCostruzioni ha scritto: mar 15 set 2020, 20:46 ho visto su internet schemi per rotori d'antenna, ma la maggior parte hanno interruttori, relè e comunque nessuno soddisfa quello che vorrei fare io, certo che se qualcuno riesce a capire questo schema https://www.testelectronics.com/TE/racp.php serebbe il top, almeno credo da quello che sommariamente si capisce.
Lo schema si legge ( a parte i valori dei componenti) la cosa che non capisco e a cosa serva il secondo motore M1

Comunque credo sia piu facile se usi un motore passo passo o meglio ancora un servomotore.
Visto che la tensione é propozionale all'angolo di rotazione puoi semplicmente usare una formula che indica di quanti passi o gradi il motore deve spostarsi per ogni V.
Un sistema che regola automaticamente l'usicta necessita un controllo PID altrimenti si rischia di spaccare tutto
RoccoCostruzioni
Messaggi: 51
Iscritto il: mer 9 set 2020, 21:16

Re: variac motorizzato

Messaggio da RoccoCostruzioni »

Allora l’unico motore è quello in basso a destra cerchiato, l’altro M1 dovrebbe essere il voltmetro lcd.
Ma eventualmente sfruttare il mio sketch che ho messo nei post precedenti ovviamente modificandolo, come verrebbe cambiato?
TheOrdinarySuperhero
Messaggi: 1032
Iscritto il: mar 2 ott 2018, 15:16

Re: variac motorizzato

Messaggio da TheOrdinarySuperhero »

RoccoCostruzioni ha scritto: dom 20 set 2020, 16:41 Allora l’unico motore è quello in basso a destra cerchiato, l’altro M1 dovrebbe essere il voltmetro lcd.
Ma eventualmente sfruttare il mio sketch che ho messo nei post precedenti ovviamente modificandolo, come verrebbe cambiato?
Subarduino esiste la libreria pid che puoi implementare nel tuo codice (prima vatti a vedere cosa è il pid e come regolarlo)
Altrimenti se vuoi farlo tutto analogico e usare il tuo motore dc esiste un circuito che ha una funzione simile il Trigger di Schmitt che ti crea una banda intorno alla tensione impostata dentro la quale il motore non va ad essere azionato.
Rispondi