Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PIC] PWM autoblazer

Pagina: 1
Acties:

  • Jetro2
  • Registratie: Maart 2005
  • Laatst online: 08-10 22:06
Als mijn componenten aangekomen zijn ga ik een poging wagen om met PICs te werken.
Als opvolger van de standaard 'Blink a LED' schakeling had ik het volgende in gedachten:

Aangezien de ventilator van de verwarming van mijn auto het begeven heeft, wou ik hiervoor een pwm maken. Na enkele uurtjes prutsen ben ik er zeker van dat de motor zelf niet stuk is. Het probleem is dus waarschijnlijk een uitgebrande schakelaar (heb ik nogal voor gehad). Met de originele schakelaar maakt men de keuze tussen een grote, kleine of helemaal geen voorschakelweerstand. Dit zijn de 3 standen.
Ik heb de max. stroom niet kunnen meten, maar bij mijn vorige auto was dit 12A. Laat ons stellen dat de schakeling 15A moet afkunnen.

Vereisten:
2 knopjes voor sneller en trager
5 standen ofzo
eventueel LEDs om de stand aan te geven
aangezien de voeding van de 12v stuurspanning komt, valt deze altijd weg, de laatste stand zou dus onthouden moeten worden.
na een tijd of door het indrukken van de 2 knoppen tegelijk een 'Knight Rider'-like animatie :9

Materialen
PIC 16F628A
JALcc
Transistor?FET? (heb nog een zware 2N3055 liggen met metale behuizing)

Vragen
1.Welke frequentie is het best voor de PWM? Ik heb gelezen dat frequenties boven de gehoorgrens beter zijn, maar is een motor geen spoel en blokkeert deze de spanning dan niet?
2. Vermogen, De transistor kan 15A af, maar moet hij dan mega gekoeld worden? De koeling zou zo klein mogelijk moeten zijn. Misschien kan ik voor de grootste stand een relais gebruiken, dan heb ik ook geen verlies van VCE
3. Is het best om de motor altijd op maximum snelheid op te starten en dan naar de gewenste stand te gaan?

I'm not a geek! I'm a lvl 12 Paladin!


  • -DarkShadow-
  • Registratie: December 2001
  • Niet online
2. Ik zou een FET gebruiken. Als je die openknalt is het te vergelijken met een erg kleine weerstand en er valt dus weinig spanning over. Die moet dan nog wel aan een aardig koelblok. Probeer hem in een frisse luchtstroming te hangen, dat scheelt _veel_.
3. Je motor heeft waarschijnlijk een minimum startspanning nodig. Dit is prima softwarematig uit te voeren. Dit kan gewoon met een timer, maar er is ook een moeilijke manier: De motorstroom verandert als de motor gaat draaien. Meet de stroom door de motor met een serieweerstand en de ingebouwde ADC, verwerk dit in je software.

Ik zou dit project trouwens gewoon in ASM uitvoeren. Waarschijnlijk ben je net zo bang voor assembly als ik vroegah was. Maar asm voor 8 bit microcontrollers is gemakkelijker dan goed C programmeren. In principe draait het om minder dan 20 instructies en het opzoeken van registers in een datasheet.

Specialist in:
Soldeerstations
Oscilloscoop


  • AcouSE
  • Registratie: Oktober 2000
  • Laatst online: 19-11 15:54

AcouSE

Swedish Chef

Het vermogen dat verstookt wordt in de Fet is de het vermogen in de weerstand van de fet maal de dutycycle plus het vermogen dat wordt opgenomen in de flanken tijdens het schakelen.

(I2*Rds,on*D) + ((Trise+Tfall)*f*U*I)

Als je een goeie fet kunt vinden is dat eerste geen probleem. Maar het tweede gedeelte is voor het aansturen van een grote motor wel een probleem. Afhankelijk van waar je ventilator zit zul je hem waarschijnlijk horen. Als je dat niet wilt moet je een frequentie van >20kHz moeten kiezen en dan heb je ineens een enorm verlies in je fet.

Je hoeft zo'n fan niet op 100% te starten, meestal is 25-30% PWM meer dan genoeg.

Formule onder voorbehoud, het is nog vroeg ;)

Verwijderd

Modbreak:Lees "Welkom in Casemodding & Elektronica (Policy)" nog eens door. Jou reply is niet ontopic of nuttig. Het is hier de HK niet...

[ Voor 90% gewijzigd door AcouSE op 21-09-2005 08:51 ]


  • Jetro2
  • Registratie: Maart 2005
  • Laatst online: 08-10 22:06
ASM schrikt me maar een beetje meer af als JAL ;) . Ik zal zekers eerst in ASM proberen.
Ik weet niet hoeveel geluid de PWM gaat maken, maar ik veronderstel dat mijn diesel en het geluid van de ventilator harder gaan klinken.(ventilator staan onder de motorkap) Daarom dacht ik aan 1000Hz bv.
Verder heb ik volgend schema bedacht :
Afbeeldingslocatie: http://users.pandora.be/jetro/PWM.JPG
De +/- logica van een FET ben ik al lang vergeten, maar ik denk wel dat ik hier een P kannaal nodig heb. Ik moet via de plus sturen omdat de motor de min rechtstreeks van het chassis neemt.

Kan het geluid niet ontstoord worden met een condensator ofzo? (Bemerk net dat er waarschijnlijk een vrijloopdiode over de motor moet ook)

Kwestie van koeling had ik gehoopt dat een alu plaatje genoeg ging zijn, zodat ik alles makkelijk kon inbouwen.

I'm not a geek! I'm a lvl 12 Paladin!


  • AcouSE
  • Registratie: Oktober 2000
  • Laatst online: 19-11 15:54

AcouSE

Swedish Chef

Een vrijloopdiode heb je absoluut nodig. Vergeet niet dat die net zoveel stroom moet aankunnen als je fet, en dat het vermogen in de diode zo hoog is dat je die ook moet koelen. Probeer een of Schottky te vinden, dat scheelt 20% warmte. Neem je er twee dan kun je waarschijnlijk wat gemakkelijker koelen.

Als je een condensator voor de ontstoring wilt gebruiken moet je een elco met extreem lage ESR gebruiken. Hier geld namelijk hetzelfde als bij de diode: er lopen flinke stromen en de warmte is gelijk aan I2R

  • Jetro2
  • Registratie: Maart 2005
  • Laatst online: 08-10 22:06
Ben dus aan het expirementeren met men pics.
Om de PWM te testen had ik volgende code bedacht:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
include 16f628_20
include jdelay

pin_b3_direction  = output


assembler
         bcf      03,5
         movlw    0x0b
         movwf    17      ;CCP1CON
         movlw    0x04
         movwf    12      ;T2CON
         bsf      03,5
         movlw    0x3f
         movwf    92      ;PR2
         bcf      03,5
end assembler
forever loop
        asm     movlw    0x09
        asm     movwf    15     ;CCPR1L
        delay_1s
        asm     movlw    0x0f
        asm     movwf    15
        delay_1s
        asm     movlw    0x50
        asm     movwf    15
        delay_1s
        asm     movlw    0xd0
        asm     movwf    15
        delay_1s
        asm     movlw    0xff
        asm     movwf    15
        delay_1s
end loop

De (voorlopige) LED blijft branden.(1 = aan, 0 = uit)
Dit is wat ik eruit kreeg na het uitpluizen van de datascheet. Ik ga nog wel verder zoeken, maar wil eerst weten dat er geen simpele (domme) fout inzit. Andere tips of voorbeeld code mag ook, zolang ik het maar begrijp.

ps zie dat ik asm durf te probeen ;)

I'm not a geek! I'm a lvl 12 Paladin!


  • AcouSE
  • Registratie: Oktober 2000
  • Laatst online: 19-11 15:54

AcouSE

Swedish Chef

Ik ben niet zo'n assembler held... welke frequentie heeft jouw pwm signaal? Want als je een frequentie van >100Hz hebt zie je hem niet knipperen. Maar je zou dan wel een verschil in helderheid moeten zien. (vergeleken met constant aan).

  • Jetro2
  • Registratie: Maart 2005
  • Laatst online: 08-10 22:06
78KHz
Zien knipperen was dus niet de bedoeling ;) , maar een verschil in helderheid in 5 stapen.

Ik heb voor asm gekozen omdat ik niet zou weten hoe ik anders de speciale functie registers moet aansturen.Het voorbeeld dat ik gezien had, werkte met de namen van he registers zelf, maar dit komt uit een custom lib denk ik.

Ik heb de wisp 628 progger, kan ik dan normaal niet 'connecteren' met de pic en zien wat er inwendig gebeurt?

I'm not a geek! I'm a lvl 12 Paladin!

Pagina: 1