Forum: Mikrocontroller und Digitale Elektronik ATTINY simple Schaltung aber Led leuchtet nur ganz kurz


von lolman (Gast)


Lesenswert?

Hallo,

ich habe eine ganz simple Grundschaltung mit einem attiny25 aufgebaut.
Diese scheint zu funktionieren - jedenfall kann ich den µC ohne Fehler 
mit meinem Programm bespielen.
Was mache ich falsch wenn die LED nur ganz minimal angeht und danach 
sofort wieder erlischt?
Ich betreibe die Schaltung mit 5V DC.
Meine Schaltung richtet sich nach dieser: 
http://www.rn-wissen.de/index.php/Bild:Avrtutorial_grundschaltung_mitled.gif
Muss ich beim attiny25 andere widerstände bzw kondensatoren nutzen?

Hier mein Programm:
1
#include <avr/io.h>
2
#include <avr/delay.h>
3
4
int main(void)
5
{
6
  DDRB |= (1<<PB4);          // set LED pin PB4 to output
7
  while(1)
8
  {
9
    PORTB |= (1<<PB4);      // drive PB4 high
10
    _delay_ms(1);
11
  }
12
}

von lolman (Gast)


Lesenswert?

Also sobald ich meine Schaltung mit Strom versorge geht die LED an und 
sofort wieder aus und bleibt auch aus.
wenn ich wieder die Spannung abklemme und wieder anschließe - das selbe 
von vorn

von Spess53 (Gast)


Lesenswert?

Hi

>Also sobald ich meine Schaltung mit Strom versorge geht die LED an und
>sofort wieder aus und bleibt auch aus.
>wenn ich wieder die Spannung abklemme und wieder anschließe - das selbe
>von vorn

Und was hättest du erwartet?

MfG Spess

von No (Gast)


Lesenswert?

An welchem Port hängt denn die LED?
Leuchtet deine LED bei high oder low?

von Helferlein (Gast)


Lesenswert?

Hilfe zur Selbsthilfe: Wenn Du die LED (mit Vorwiderstand) zwischen 
Prozessor-Pin und Pluspol der Versorgungsspannung eingebaut hast und 
dann den Pin auf "H" legst, welche Spannung steht dann an der LED...?

von Karl H. (kbuchegg)


Lesenswert?

lolman schrieb:

>
1
#include <avr/io.h>
2
> #include <avr/delay.h>
3
> 
4
> int main(void)
5
> {
6
>   DDRB |= (1<<PB4);          // set LED pin PB4 to output
7
>   while(1)
8
>   {
9
>     PORTB |= (1<<PB4);      // drive PB4 high
10
>     _delay_ms(1);
11
>   }
12
> }

Ich würde sagen:
Bei dem Programm und der Schaltung ist genau das, was zu erwarten ist.

Also: Alles in Ordnung. Genau das hast du programmiert.
Das du überhaupt was siehst, ist eher verwunderlich. Sobald du den Pin 
auf Ausgang schaltest, ist der Pin gezielt auf 0 - die LED leuchtet. In 
dem Moment, in dem du innerhalb der Schleife den Pin auf 1 schaltest, 
geht sie wieder aus.

Brenn mal das hier rein
1
#include <avr/io.h>
2
#include <avr/delay.h>
3
 
4
int main(void)
5
{
6
  DDRB |= (1<<PB4);          // set LED pin PB4 to output
7
8
  while(1)
9
  {
10
    PORTB |= (1<<PB4);      // drive PB4 high
11
    _delay_ms(500);
12
    PORTB &= ~(1<<PB4);      // drive PB4 low
13
    _delay_ms(500);
14
  }
15
}

von lolman (Gast)


Lesenswert?

Danke für die schnellen Antworten :)
Das hat mir natürlich super weiter geholfen!
Jetzt habe ich das auch kapiert ^^
Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.