collapse

* Posts Recentes

Alguém arranja motores? por almamater
[Ontem às 16:07]


Sistema a LASER que será também capaz de matar moscas por jm_araujo
[Ontem às 12:35]


Nevadent - Não carrega por almamater
[22 de Novembro de 2024, 21:36]


Classmate Leap T304 não liga por almamater
[19 de Novembro de 2024, 07:13]


+ LASERs por dropes
[18 de Novembro de 2024, 21:50]


Dúvida com fonte de alimentação comutada por filjoa
[28 de Outubro de 2024, 21:57]


Motoserra Stihl 120C por dropes
[26 de Outubro de 2024, 19:01]


Shelly em jeito de watchdog por SerraCabo
[24 de Outubro de 2024, 19:24]


Meu novo robô por josecarlos
[06 de Outubro de 2024, 13:33]


Sirene NOVA maluca por dropes
[01 de Outubro de 2024, 18:26]

Autor Tópico: Symmetrical soft-start  (Lida 6288 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline dropes

  • Mini Robot
  • *
  • Mensagens: 2.250
Symmetrical soft-start
« em: 08 de Janeiro de 2023, 16:46 »
Olá Pessoal :)

Embora tenha criado um soft-start para meu pequeno projecto do LASER Show há base de relés, algo não estava a funcionar correctamente.
Uma pilha é responsável para gerar 15V positivos, e a outra 15V negativos.
Em caso algum estas pilhas perdem carga simultaneamente, e aí algo corre mal.

Procurei no google por "symmetrical soft start", não existe, e o que pretendia era algo demasiado especifico, que monitoriza-se também a tensão.

Então resultou neste esquema:

As resistências ás gates (R1 e R3) devem ser baixas para reduzir o tempo dos transístores desligarem-se, em contrapartida, a dissipação também aumenta e resulta num consumo desnecessário.

A rampa é providenciada via PWM em ambas as polaridades.

Código: [Seleccione]
'fuses: e-FF h-DF l-E2
$regfile = "ATtiny25.dat"
$crystal = 8000000

Speaker Alias Portb.2
Ddrb = Bits(ddb2 , Ddb1 , Ddb0)
Portb = Bits(ddb1)                                          'Portb.1 é invertido

Config Adc = Single , Prescaler = 4 , Reference = Internal_2.56_nocap
Enable Adc
Start Adc

Dim Cnt , Cnt2 As Byte
Dim Value As Byte
Dim Esp As Word
Dim Val_pos , Val_neg As Word
Const Adc_pos = 2
Const Adc_neg = 3

Tccr0a = Bits(com0a1 , Com0a0 , Com0b1 , Com0b0 , Wgm01 , Wgm00)
Tccr0b = Bits(cs00)

Ocr0a = 255
Ocr0b = 0

Declare Sub Get_adc
Declare Sub Beep

'Sinal de inicio
Call Beep
Waitms 100
Call Beep

'Soft Start
Value = 0
For Value = 0 To 255
    Ocr0a = 255 - Value
    Ocr0b = Value
    Esp = 255 - Value
    Shift Esp , Left , 8
    Waitus Esp
Next Value

'Sinal de 100%
Call Beep

Stop Timer0
'Liberta a porta
Tccr0a = 0
Tccr0b = 0
Portb = Bits(ddb0)

Do
    Call Get_adc
    If Val_pos < 512 Or Val_neg < 512 Then
        Portb = Bits(ddb1)
        Waitms 500
        For Cnt2 = 1 To 4
            Call Beep
            Waitms 100
        Next Cnt2
         'No power
        Do
        Loop
    End If
    Waitms 100
Loop


Sub Get_adc
    Dim Adc_sum As Word
    Adc_sum = 0
    For Cnt2 = 0 To 63
        Adc_sum = Adc_sum + Getadc(adc_pos)
    Next Cnt2
    Shift Adc_sum , Right , 6
    Val_pos = Adc_sum

    Adc_sum = 0
    For Cnt2 = 0 To 63
        Adc_sum = Adc_sum + Getadc(adc_neg)
    Next Cnt2
    Shift Adc_sum , Right , 6
    Val_neg = 1023 - Adc_sum
End Sub

Sub Beep
    For Cnt = 0 To 10
        Speaker = 1
        Waitus 500
        Speaker = 0
        Waitus 500
    Next Cnt
End Sub
sim, está em basic...

Após algumas alterações, apresento a placa (face simples) em questão:



O funcionamento é simples, depois da placa alimentada, as saídas passam rapidamente para 0V, envia um sinal sonoro de inicio; então o sinal PWM vai incrementando aos poucos o duty cycle, após chegar a 100%, o timer responsável pelo PWM é desligado e a porta passa ao estado normal, colocando as saídas das tensões estáveis, sem ruídos. No final é transmitido outro sinal sonoro a avisar desse estado.

As tensões +-15 são monitorizadas em tempo real via ADC, caso alguma desça abaixo de 10V aproximadamente, ambas são desligadas e é enviado novo sinal sonoro a avisar.

obs: todo o projecto foi realizado e testado a 1.5A neste fds, é provável que tenha alguns erros, entretanto tem estado a funcionar bem.

Abr. P.
« Última modificação: 08 de Janeiro de 2023, 19:12 por dropes »