Sida 1 av 2

Behöver lite snabb hjälp!

Postat: 8 januari 2005, 15:34:12
av G4jm0r
Jo jag håller på med min ledsnurreprototyp som kommer ha 30 leds.
Jag har kopplat 8 till porta0-7 8 till portb 0-7 8 till portc 0-7 och 6 till port d 0-5.
Jag skriver ett program som sätter alla pinnar till 5 volt eller i detta fallet 3 volt eftersom jag ska driva hela ledsnurran med 2 batterier.
Men problemet är att porta 0-7 lyser mycket svagare än alla andra leds och portc 2-5 lyser inte alls.
Jag fick samma problem med både atmega16 och atmega32.
Har lödat om hela kortet så jag tror inte det är någon slump att jag råkat löda samma pinar kasst igen om detta nu skulle vara problemet.

liten bit av koden:

.include "m32def.inc"

.def temp = r16

start: ldi temp, 0b11111111
out porta, temp
out portb, temp
out portc, temp
out portd, temp
rjmp start

kanske ska nämna att jag kör med:
http://www.avr-asm-tutorial.net/avr_en/ ... DWARE.html
som programerare, skriver koden i avrstudio4 och skickar in skiten med det senaste ponyprog. Jag har dessutom testat 3 olika versioner av ponyprog.

Postat: 8 januari 2005, 16:06:03
av $tiff
Jag är inte så hemma i AVR, men är alla analoga historier till ingångar avstängda som standard? (Så är det nämligen inte hos PIC).

Har du serieresistorer till lysdioderna?

Postat: 8 januari 2005, 16:13:38
av G4jm0r
kopplade så här:
i/o port -> led -> jord

eftersom jag kör på 3 volt sket jag i motstånd :D

Postat: 8 januari 2005, 16:27:21
av matseng
Och eftersom du sket i motstånden så sket AVR'en i att fungera bra och att lysa lika starkt på alla pinnarna....

Låter det som ett troligt scenario?

Hur länge tror du förresten du kan driva 30 lysdioder vid typ 30 mA styck på två batterier? Plus motor och mikrokontroller?

Postat: 8 januari 2005, 16:32:58
av $tiff
Batterina ska nog bara vara till lysdioderna och µC för att slippa strömöverföringen? Och lysdioderna ska ju bara pulsas med totalt väldigt låg pulskvot, så det kommer nog funka.

Men du skulle väl ha RGB. Vilken färg är det du jobbar med? För om du kopplat olika färger till olika portar är det de olika spänningsfallen i lysdioderna som spökar.

Postat: 8 januari 2005, 16:36:21
av G4jm0r
Jo eftersom jag inte kan etsa kretskort förän jag börjar skolan och får tillgång till laserskrivare gjorde jag allt på ett ekperimentkort, problemet då är att jag inte kan tillverka mina egna släpbanor.
Så jag tänkte köra med batteri, det är ju dessutom bara en prototyp, så jag kommer bara testa programera lite enkla försöksprogram först. Motorn kommer jag driva på 3.3 volt från ett atx nätagg, motorn är föresten en Rc motor med ca 20 000+ varv/min.
Jag använde motstånd innan, men pallade inte löda dit det igen. Kopplade då:
i/o pin -> led-> motstånd -> jord, lät alla använda ett motstånd eftersom jag inte pallade löda av massa motstånd från ett gammalt projekt. men det borde väll funka det med?
Ska testa löda ditdet igen om dett litet tag, jag håller nämligen på att sätta upp persienner(stavning) :D

Postat: 8 januari 2005, 16:37:47
av matseng
Här är ifrån Absolute maximum rating på ATMega16

DC Current per I/O Pin ............................................... 40.0 mA
DC Current VCC and GND Pins................................ 200.0 mA

Mät hur mycket ström du försöker dra igenom VCC-pinnen på kretsen.

Om du har 22 lysdioder kopplade till jord och du får en kortslutningsström på säg 35 mA per diod så bli det 770 mA genom pinnen som max kan hantera 200 mA.

Postat: 8 januari 2005, 16:41:51
av matseng
Nä, det fungerar inte så bra med bara ett mostånd.

Med bara en diod tänd så går rätt ström genom den dioden, tex 30 mA.

Tänder du två dioder som delar på samma motstånd så får dioderna bara 15 mA var eftersom motståndet bara släpper igenom 30 mA.

Tänder du 30 dioder så får dom bara 1 mA var. Och då lyser dom svagt....

Postat: 8 januari 2005, 16:45:16
av cykze
Du måste även sätta DDRA, DDRB. DDRC och DDRD till 0b11111111 för att få dom att vara utgångar. Och kör med motstånd.

Postat: 8 januari 2005, 16:56:23
av G4jm0r
:shock: Major tabbe av mig kan man säga, latmasken i mig fick sin talan :D
Bara att löda om 30 sladdar nu då :x .

Självklart har jag kodraderna som ställer dom till output pins.
ldi temp, 0xFF
out ddra, temp
out ddrb, temp
out ddrc, temp
out ddrd, temp

Tack för all snabb hjälp.

Postat: 8 januari 2005, 17:01:36
av Melker
Port C är som default port för JTAG, men går att fixa från "security and configuration bits" i ponny prog.

Postat: 9 januari 2005, 01:41:55
av Hedis
Vågar du pilla där igen Melker? :)

Postat: 9 januari 2005, 02:25:54
av Melker
Hehe, jodå... Läser man bara databladet så brukar det gå vägen.

Postat: 9 januari 2005, 13:49:25
av G4jm0r
Har kopplat motstånd till varje led men tro fan att inte porta 0-7 lyser lika starkt som alla andra och att port c 2-5 inte lyser alls :S
nu kopplade jag:
i/o -> motstånd 100ohm -> 3mm röd lysdiod från kjell -> jord

förövrigt vill jag påpeka att ca 15-20 st av mina 50 leds från kjell var nästintill trasiga i paketet, de lös så svagt att man knapt kunde se, så de rekomenderas inte av mig.

Postat: 9 januari 2005, 14:38:45
av matseng
Vad händer om du kör på 5 volt? Blir ljusstyrkan mer jämn då?