mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SOS-Schlüsselanhänger blinkt nur bei Tastendruck


Autor: Lukas S. (mogfox)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich bin gerade dabei einen Schlüsselanhänger zu bauen, der SOS blinken 
soll. Gesteuert wird er durch einen Attiny13. Ziel ist es, dass die LED 
"SOS" blinkt sobalt der Knopf einmal kurz gedrückt wird. Die LED blinkt 
aber leider nur wenn  der Knopf gedrückt bleibt, sonst geht sie sofort 
aus.Lötstellen sind alle kontrolliert!!!

Hier ein paar infos:
Ich programmiere den Attiny13 mit Bascom AVR
Mein Programmer ist ein: "mySmartUSB light"
Zum flashen verwende ich: "myAVR Programm Tool V 1.39"
Ich bin erst 13 also bitte verständnis für kleine Fehler haben :-)

Hier der code:
$regfile = "attiny13.dat"
$crystal = 1000000
$hwstack = 10
$swstack = 20
$framesize = 30

Config Portb.2 = Output
Config Pinb.1 = Input

Portb.2 = 0

   Do
      If Pinb.1 = 0 Then
         Portb.2 = 1                                        'An kurz
         Waitms 200
         Portb.2 = 0
         Waitms 200                                         'Aus  kurz
         Portb.2 = 1                                        'An   kurz
         Waitms 200
         Portb.2 = 0
         Waitms 200                                         'Aus  kurz
         Portb.2 = 1                                        'An  kurz
         Waitms 200
         Portb.2 = 0
         Waitms 200                                         'Aus  kurz
         Portb.2 = 1                                        'An lang
         Waitms 500
         Portb.2 = 0
         Waitms 500                                         'Aus lang
         Portb.2 = 1                                        'An  land
         Waitms 500
         Portb.2 = 0
         Waitms 500                                         'Aus lang
         Portb.2 = 1                                        'An  lang
         Waitms 500
         Portb.2 = 0
         Waitms 500                                         'Aus lang
         Portb.2 = 1                                        'An kurz
         Waitms 200
         Portb.2 = 0
         Waitms 200                                         'Aus  kurz
         Portb.2 = 1                                        'An   kurz
         Waitms 200
         Portb.2 = 0
         Waitms 200                                         'Aus  kurz
         Portb.2 = 1                                        'An  kurz
         Waitms 200
         Portb.2 = 0                                        'Aus kurz
         Waitms 1500
      Else
         Portb.2 = 0

      End If
   Loop
End

PS: ja ich weiß der sockel ist zu groß

Autor: Bastian W. (jackfrost)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Naja dein Programm ist ja so geschrieben das es nur blinkt wenn der Pin 
low ist.

Du musst damit ein Flag toggeln und darüber steuerst du ob es blinkt 
oder nicht. Zudem musst du die Taste entprellen.

Gruß JackFrost

Autor: c.m. (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
pseudocode…

boolean blinke = false;

loop
 If Pinb.1 = 0
 then
  blinke != blinke;
 end fi

 if blinke
 then
  ...
 end if
end loop;

das problem ist, das Pinb.1 (eingabepin) nicht entprellt ist, und das 
der tastendruck zum ausschalten durch deine delay-verstopfte loop erst 
erkannt wird, wenn die blinksequenz beendet wurde, und der abfragecode 
wieder ausgeführt wird.

das wäre der grund (eigentlich: die gründe) für dich, dir mal 
interrupts anzuschauen :)

Autor: Mario M. (thelonging)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Das Programm entspricht zwar nicht der "reinen Lehre", aber es würde 
funktionieren. Doch wo hast Du denn den Schaltplan her? ATTiny mit 9V 
betreiben und einen 1kOhm Widerstand in der Masseleitung? Das kann nicht 
funktionieren! Also Widerstand durch Brücke ersetzen und einen 
Spannungsregler vorschalten oder besser gleich mit einer 3V 
Lithium-Knopfzelle betreiben.

Autor: Marc D. (gierig) Benutzerseite
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Dein Schaltplan ist etwas seltsam.

Wirklich 9 Volt ? Da "Operating Voltage: 1.8 – 5.5V" beim tiny13
Was sollen Widerstand und der 100µF Elko bezwecken ?

Schätze fast wenn das so beschaltet ist hast du Glück das
die der tiny noch nicht abgeraucht ist.

Autor: Peter D. (peda)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Der Fachmann staunt nur, daß der MC überhaupt was macht und daß er 
überhaupt noch lebt.

Autor: Retter (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Na, unter den Umständen wäre doch klar warum der uC SOS blinkt, oder?

Autor: Lukas S. (mogfox)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,
für die schnellen Antworten!!!

Jetzt funktioniert es super. Leider habe ich gerade keinene 
Spannungsregler Zuhause aber werde mir einen kaufen.Jetzt kann ich es 
halt nur mit meinem Netztgerät betreiben. :-)

Autor: Paul B. (paul_baumann)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Die hohe Betriebsspannunng hat den Kontroller ziemlich in die Breite 
gezogen, wie man sehen kann. Wenn das die einzige Auswirkung ist, geht's 
ja noch.
:)
https://www.mikrocontroller.net/attachment/preview...

Lukas S. schrieb:
> Ich bin erst 13 also bitte verständnis für kleine Fehler haben :-)

Achso, daher auch ein Attiny13. Ich glaube, ich werde mir bal ein paar 
Attiny85 beschaffen müssen...
:)
MfG Paul

Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul, nimm lieber Mega128, passend zum Alter Deiner Witze.

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Witze sind sind gut! Daran gibt es nichts zu meckern. Die meisten 
könnten sogar von mir sein :)

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AxelR. schrieb:
> Die Witze sind sind gut!

Ja, das sind ne Menge:
- 9V an einen 5V-MC
- IO-Pin negativer als GND
- LED ohne Vorwiderstand

Autor: SOSinator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, aber darf ich fragen was der bringen soll?
Oder handelt es sich nur um ein Spaß Projekt?

Autor: Lukas S. (mogfox)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es handelt sich nur um ein spaß-Projekt und  ein lernprojekt weil ich 
jetzt erst anfange Mikrocontroller zu Programmeieren! Übrigens ist der 
Schaltplan nicht von mir sondern von einem Freund um das Mal zu klären 
:-)

Mfg Lukas

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lukas S. schrieb:
> Übrigens ist der
> Schaltplan nicht von mir

Er ist trotzdem tödlich für den MC, wenn der 9V-Block frisch ist.

Autor: Lukas S. (mogfox)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im nachhinein weiß mann halt alles besser, aber zum glück war der 9V 
Akku nicht frisch aufgeladen. Und sonst hätte ich noch genug µC zuhause. 
;-)

Autor: PeterZ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> - 9V an einen 5V-MC

Er hat doch einen 1k Richtung Masse. Der 13er ist nicht direkt an 9V ;)

Autor: Dieter F. (jim_quakenbush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PeterZ schrieb:
> Er hat doch einen 1k Richtung Masse.

Als Geruchsfilter :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.