Auto-tack-blinkers

Berätta om dina pågående projekt.
JannoL
Inlägg: 13
Blev medlem: 13 april 2004, 18:10:23
Kontakt:

Inlägg av JannoL »

Kul grej, kan nån sparka mig åt rätt håll, var ska jag börja för att kunna lära mig o bygga en sån blink-tack-grej. Verkar vara lagom enkel o börja med för o lära sig.

Jag har iof bara programmerat i php/perl men man ska kunna assembler va?

...hoppas att idén hålls vid liv o utvecklas.
Användarvisningsbild
lgrfbs
Inlägg: 7298
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

Tror att C skulle passa dig efter som det ligger nära Perl, men även pascal finns till MCU kretsarna.

* välj MCU
* kolla efter lämplig programmerare
* välj programspråk ASM/C/Pascal
* Val av komponenter
Baloo
Inlägg: 82
Blev medlem: 21 september 2005, 18:22:03
Ort: Eskilstuna 59 (N59°21'28" E16°29'49")

Inlägg av Baloo »

Hej hopp. Nu är kortet klar och ny bil införskaffad så jag tänkte jag skulle sätta igång med det här gamla projektet igen.
Testade ju det här på testbräda förut med förväntat resultat. Nu när jag monterat kortet och sätter i den programmerade kretsen blir resultatet minst sagt förbryllande!

Har kopplat in sex lysdioder på testbräda för att se att det blinkar rätt, men får TOTALT slumpvisa blinkningar! VARFÖR!?

Kan programmet vara fel, det funkade ju förut. Eller kan komponenternas värden göra att PICen reagerar på något konstigt sätt?

Har gjort ett litet testprogram som egentligen ser likadant ut som det riktiga, bara det att till och med det här lilla programmet gör att dioderna bara blinkar slumpvis!



radix DEC
__config 3FF9h


;RAM-adresser för att lägga in variabler

cblock 0Ch
endc

org 0x00
goto Main

org 0x04 ;Interrupt vektor
retfie ;Det finns inga interrupt instruktioner

Main ;Här börjar programmet

;Sätt portarnas riktningar

bsf 3,5 ;Gå till bank1
clrf 6 ;Sätt PORTB till utgångar
movlw b'00001000' ;RA3 blir inport, resten ut
movwf 5 ;Utför
bcf 1,7 ;Ändra Pull-up på PORTB
bcf 3,5


Start


Steg1
movlw 0
movwf 6
btfsc 5,3
goto Steg1

movlw b'111111'
movwf 6

Stop
goto Steg1


end



Kopplingen på kortet är som följer:


Bild


Hoppas någon kan se något fel för jag börjar bli rätt villrådig...

/Björn

Red:
Efter Jimmys vänliga rättelse av storlek, vilket jag totalt missat, så förtydligar jag att resistorerna mellan PIC och BC547 är på 180k och resistorer mellan BC547 och BD680 är på 2.7k
Senast redigerad av Baloo 17 oktober 2006, 16:23:58, redigerad totalt 1 gång.
Användarvisningsbild
JimmyAndersson
Inlägg: 26544
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Ett fel är att bilden är 1166x762 trots att det klart och tydligt står såhär:

Bild

:wink:
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

180k som basmotstånd till BC547 är på tok för stort om du vill få transistorn att bottna ordentligt.

Sätt dit 2,7k även som basmotstånd, då kan du vara säker på att transistorn bottnar.

Sedan skulle jag även ha satt pullup-motstånd till 12V på BC547s kollektorer.
Baloo
Inlägg: 82
Blev medlem: 21 september 2005, 18:22:03
Ort: Eskilstuna 59 (N59°21'28" E16°29'49")

Inlägg av Baloo »

Är inte helt säker på hur pull-up och pull-down funkar och hur man dimensionerar det. Har Du kikat på det jag räknat på på föregående sidor. Skulle Du kunna utveckla lite mer hur Du kom fram till att värdena var fel på basmotstånden till BC547? Vore mycket tacksam. Hade nästan antagit att motstånden var för små, då jag från början räknade med att dom skulle vara på 220k.
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

I din koppling vill du ju att BC547 bottnar (öppnar maximalt).
När transistorn bottnar (saturation) blir Hfe mycket mindre än vad den är i det normala arbetsområdet.

Databladet anger en VCEsat vid en viss kollektor- och basström. VCEsat är det spänningsfall som kommer att ligga över transistorn när den är helt bottnad.

Exempel: BC547C har VCEsat = 90mV vid Ib= 0,5mA och Ic=10mA. Hfe blir alltså i detta fall endast 20ggr! Jag brukar för enkelhetens skull alltid räkna med en Hfe på 10ggr när jag dimensionerar småsignaltransistorer som strömbrytare.

I ditt fall vid bottning av BC547:
Ic = (VCC - VBEon(BD680) - VCEsat(BC547))/2,7k

--> Ic = (12 - 2,5 - 0,09)/2700 = 3,5mA

Med en Hfe på 10ggr vill vi alltså ha en basström in på BC547 på ungefär 0,35mA.

Detta ger:

Spänning över basmotstånd = 5 - VBEsat(BC547) = 5 - 0,7 = 4,3V

Värdet på basmotståndet blir då:

Rb = 4,3/0,00035 = ~12kOhm

Eftersom du redan använder 2,7k-motstånd så kan du lika gärna använda dem (detta ger en basström på 1,6mA).

Angående pullup-motstånd på BC547s kollektorer:

Det är aldrig bra att låta basen på BD680 "hänga i luften" (som den ju gör när utsignalen från din PIC är låg). Därför är det bra att se till att den lyfts upp m.h.a ett (stort) motstånd till +12V.

Värdet på motståndet spelar ingen större roll, jag hade nog valt det i spannet 50k-100k.
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Ovanstående inlägg var bara en allmän kommentar, jag tror att din koppling borde fungera hyfsatäven med dina originalkomponentvärden. :wink:

Jag tror att dina problem beror på andra orsaker, troligtvis glappkontakt, dåliga lödningar eller liknande. Jag skulle också har fixat bättre filtrering/skydd på spänningsmatningen, bilar har ju en ganska störd elmiljö...
Baloo
Inlägg: 82
Blev medlem: 21 september 2005, 18:22:03
Ort: Eskilstuna 59 (N59°21'28" E16°29'49")

Inlägg av Baloo »

Hej igen.

Skulle skriva och tacka Dig för informationen, men så fick jag en fatal hårddiskkrasch. Men nu är jag up and running igen. Så jag gör det nu i stället! Tack så hemskt mycket för informationen om att räkna på transistorer som switch. Beräkningarna jag gjort på föregående sidor är det jag gjort enligt förstärkarprincip, dvs helt annat!

Får ta och koppla upp kedjan på testbräda och se när det funkar som det ska. Dock är jag inte helt på det klara med vad pull-up och pull-down innebär. Har sökt men inte hittat det här inne. Vet att det är ett motstånd men vet inte helt när den ska användas och hur den ska beräknas.

Trevlig helg!
Eddi
Inlägg: 80
Blev medlem: 1 oktober 2005, 22:54:46
Ort: Korsholm, Finland

Inlägg av Eddi »

Google brukar veta lite om allt. Första träffen förklarar ganska bra.
http://www.google.fi/search?hl=sv&q=pul ... 3%B6k&meta
Skriv svar