www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Neues Projekt Hilfe!


Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ihr kennt doch diese H0 1:87 Dinger? Ich hab mir ein Modellauto in 1:87 
umgebaut so das jetzt vorne zwei Weis leuchtende SMD LEDs 0603, zwei 
Gelbe 0603 und hinten zwei Rote 0603, zwei Gelbe 0603 eingebaut sind.

Meine Idee ist das ich die jeweils vorn und hinteren LEDs ( Gelb ) so 
ansteuern will das sie entweder rechts Blinken oder Links Blinken. 
Ebenso auch Warnblinklicht alle Vier Blinken.

Ich wollte das so machen das wenn ich auf den Taster drücke, 3 sec warte 
zeit - die rechen ( vorn und hinten ) LEDs Gelb blinken oder Taster 2 
Links blinken. Genau so auch mit Warnblinklicht: Taster drücken und dann 
3 sec warten - Blinken. PS: nach den 3 sec Warten soll es für ca: 10 sec 
blinken und dann wieder aus gehen.

Meine frage: kann ich das auch ohne IC Steuerung basteln oder geht das 
am besten nur mit IC Ansteuerung.

Mein Problem ist das ich in C - C++ oder anderem, noch keine Erfahrung 
habe zu Programmieren.


Ich hoffe ich hab alles und deutlich erklärt.

Gruß
Dominik

PS: ich habe noch gar keine Ahnung wie ich überhaupt eine Schaltplan 
zusammen bekomme damit es dann so Funktioniert.


Bitte : wer keine gescheiten Beitrag dazu leisten kann, ( also nur 
scheiße labert oder runter macht ) soll nichts schreiben und andere 
Beiträge voll Spammen. Danke

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar kannst du das mit ohne ICs aufbauen.
Halt mit Transistoren. Ist dann alles etwas
größer vom Aufbau. ICs müßen auch nicht Programmiert
werden. µC werden nur Programmiert.

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut danke. und wie fange ich da an? Hab eigentlich noch nie eine 
komplette Schaltung selber aufgebaut. Sondern nur immer aus dem Netz 
geholt und nach gebaut.

Mit Transistoren zu arbeiten ist kein Problem aber vielleicht könnte mir 
da einer eine Schaltung Programmieren, wenn es keine zu große Sache ( 
Aufwand ist ). IC Board zum Brennen habe ich da. also Bräuchte ich nur 
die Hex Datei.

Schaltung soll in SMD Bauweise sein, da ich mich darin gerade sehr 
beschäftige.



Damit nicht wider einer mit der Frage kommt: ob ich Erfahrung habe in 
Elektronik. Mittlerweile habe ich schon mehr Erfahrung als vorher.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für ein µC kannst du brennen ?
Willste es nicht mal selber probieren, und
dies programmieren ?
Ist eigentlich für einen Anfänger ganz gut
zu machen. Müßtest du eigentlich hin
bekommen.

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ganze diskret mit Transistoren und/oder Ne555 aufbauen wird 
wahrscheinlich größer als das Auto. Deswegen wäre ein µC die schönere 
Lösung. Anfangen kann man mit dem Tutorial auf dieser Seite. Wird ein 
bisserl dauern, aber jeder hat klein angefangen. Und du kannst darauf 
aufbauen und weitere Modellbausachen bauen.

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast schrieb:
> Was für ein µC kannst du brennen ?
> Willste es nicht mal selber probieren, und
> dies programmieren ?
> Ist eigentlich für einen Anfänger ganz gut
> zu machen. Müßtest du eigentlich hin
> bekommen.

Ich hab das Pollin Board 2.01 damit kann ich so gut wie alle Atmegas 
Brennen. Ich hab leider kein Geld für ein Buch ( Thema habe ich schon 
mal geöffnet ). Ebenso komme ich mit dem Tutorial hier im Forum leider 
nicht klar ( Thema wurde auch schon mal besprochen ). Gibt es nicht 
irgendwie ein anderes Tutorial wo ich Programmieren lernen kann?


Ich hab noch ein Problem: Das Projekt soll ein Geschenk für wehmand 
werde, Und brauch es schon in ca: 2-3 Wochen.

So schnell werde ich es nicht lernen.

Kann mir da nicht einer die Schaltung zusammen Basteln und den µC 
Programmieren?
Bis zum nächsten mal kann ich ja dann Lernen aber jetzt ist es halt 
schon knapp.

Ich Hoffe einer währe so nett und hilft mir dabei.

Autor: Andreas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Beispiel zum Aufbau der Schaltung mit einem ATTiny12; R1-3 ca 100k. 
R7-R10 sind abhängig von deinen LED's, eventuell müssen bei hohem 
LED-Strom die Widerstände R4-R6 noch verkleinert werden. Was für eine 
Versorgungsspannung hast du? Warscheinlich 2 Knopfzellen parallel = 3V?

Ich Programmiere eigentlich ausschließlich nur PIC's in Assembler, 
wesshalb ich dir nur nen "allgemeinen Grundaufbau" des Programmes geben 
kann, also vom Prinzip der Programmstruktur -
-----wobei ich mir jetzt weder die Mühe mache mir die Befehle 
rauszusuchen, noch dir die ganze Arbeit vorwegnehmen möchte ;) ---.

Interner Takt des ATTiny's wird verwendet;

Zum Programmablauf selber:

PB0,1 und 2 müssen als Eingänge definiert werden, PB3-5 als Ausgänge.

Dann eine Main-Schleife in der nur die Eingänge nacheinander abgefragt 
werden:

Z.b.

main
PB0 = high? ja-> call blinkenlinks ;nein -> weiter in main-loop
PB1 = high? ja-> call blinkenrechts ;nein -> weiter in main-loop
PB2 = High? ja-> call licht ;nein -> weiter in main-loop
goto main

blinkenlinks
3 sekunden warten
PB3=1
0,5 sekunden warten
// (nop-Befehls-Schleife aufrufen - gibt's bestimmt schon irgendwo im 
Netz)
PB3=0
0,5 sek warten
PB3=1
0,5 sek warten
usw. (bis 10 sek lang geblinkt wurde)
return

blinkenrechts
//ähnlich wie blinkenlinks
return

licht
// - wenn du möchtest könntest du z.b. auch noch ein Pin für die gesamte 
//Beleuchtung benutzen, einfach PB5 dann invertieren (on / off) - am 
besten
//noch ein kleine Tastenentprellung über Software einbauen.
Return


Wenn du dir jetzt die Befehle des AVR-Assemblers raussuchst (gibts ja in 
einigen Tutorials, auch hier auf der Seite) und das einmal so in 
Assembler umsetzt ist das nicht ganz so Wild.

Und wenn du das dann hinbekommst- denke ich mal wirst du das nächste 
Modellauto auch relativ schnell zusammengebastelt haben ;).

Autor: Dominik.H super_flummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank erst mal Andreas,

Ich dacht mir ich mach eine Betriebsspannung von 12 V

Die LEDs die ich verwende haben unterschiedliche Spannungen: Weiß ( 
Vorne ) haben 3,2V. Rot ( Hinten ) haben 2,0 V. Orange ( Hinten+Vorne ) 
haben 2,0V.

Ich hab mir das so vorgestellt das sobald Spannung auf dem IC ist die 
Weißen und Roten LEDs Leuchten, und die Rechts Blinken, Link Blinken, 
Warnblinklicht dann auf Taster druck laufen.


Verstehe ich das richtig?

PB3 ( ist der Ausgang )

=1  ( heißt wie in der Computersprache: an )
=0  ( heißt  "                     "  : aus )

Du hast mir jetzt schon 3 mal 0,5 sek eingebaut, um auf 10 sek zu kommen 
muss ich das Programm nur so weiter Schreiben oder?

PB3=0
0,5 sek warten
PB3=1
0,5 sek warten
PB3=0
0,5 sek warten

So hätte ich mit deine 3 mal 0,5 sek schon 3 Sek Gesamt, und muss es so 
weiter machen bis ich 10 sek hab.

Mit rechts Blinken ist es gleich nur das ich dann anstatt PB3 dann PB4 
brauche.Also so dann?

blinkenrechts
3 sekunden warten
PB4=1
0,5 sek warten
PB4=0
0,5 sek warten
PB4=1
0,5 sek warten

( usw genau wie oben bis ich 10 sek Gesamt habe)


Für die Warnblinklicht Funktion kann ich ja dann den PB5 Ausgang 
benutzen oder?

Programmablauf:

warnblinklicht
3 sekunden warten
PB5=1
0,5 sek warten
PB5=0
0,5 sek warten
PB5=1
0,5 sek warten

( usw bis ich auch bei 10 sek z.B. bin ) oder.


Ich kann das Programm ja in AVR Studio schreiben oder ? und dann als Hex 
Datei Konvertieren damit ich es auf den IC brennen kann?

Autor: Dominik.H super_flummy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
nop-Befehls-Schleife aufrufen - gibt's bestimmt schon irgendwo im
Netz)

Ist das der Befehl damit es nach dem Ablauf abgebrochen werden soll

Code ( DECFSZ )

Hab ich aus dem PSnop-Befehls-Schleife aufrufen - gibt's bestimmt schon 
irgendwo im
Netz)


Hab ich aus dem PDF im Anhang gefunden. Seite 6

Autor: Dominik.H super_flummy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
nop-Befehls-Schleife aufrufen - gibt's bestimmt schon irgendwo im
Netz)

Ist das der Befehl damit es nach dem Ablauf abgebrochen werden soll

Code ( DECFSZ )

Hab ich aus dem PDF im Anhang gefunden. Seite 6

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Öhm deine PDF ist irgendeine Dokumentation für ein Projekt das auf einem 
PIC µ-Controller geschrieben wurde.

Schau mal nach diesem Programm:

http://www.home.unix-ag.org/tjabo/avr/AVRdelayloop.html

Downloaden, Einstellungen eingeben wie z.b. Takt, Zeitverzögerung (in 
deinem fall die blinkfrequenz - etwa 0,5 - 1 sek?) - Dann wird eine 
komplette Programmschleife im Assembler-Code auf der rechten Seite 
angezeigt.

z.B. eine Sekunde:

; =============================
;    delay loop generator
;     1000000 cycles:
; -----------------------------
; delaying 999999 cycles:
WARTEN:
          ldi  R17, $09
WGLOOP0:  ldi  R18, $BC
WGLOOP1:  ldi  R19, $C4
WGLOOP2:  dec  R19
          brne WGLOOP2
          dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0
; -----------------------------
; delaying 1 cycle:
          nop
          ret
; =============================

Diese Funktion kannst du dir als Unterprogramm in dein Programm 
einfügen;
Wenn du jetzt eine Zeitverzögerung von 1 sek im Programm haben möchtest 
wie z.b. zwischen dem Ein und Aus-Schalten eines Pins so musst du dieses 
Aufrufen.
In AVR Assembler werden Unterprogramme durch:

rcall unterprogramm

aufgerufen.

In deinem Fall wird die Zeitschleife mit

rcall WARTEN

aufgerufen.

mehr dazu auf:
http://www.mikrocontroller.net/articles/AVR_Assemb...
Bitverknüpfungen sind auf:
http://www.mikrocontroller.net/articles/AVR-Tutori...
erklärt.


z.b. dein Unterprogramm "blinkerlinks" würde wie folgt aussehen:

blinkerlinks:
             rcall WARTEN  // 1. Sekunde vorbei
             rcall WARTEN  // 2. Sekunde vorbei
             rcall WARTEN  // 3. Sekunde vorbei
             sbi PORTB,3  // setzt PB3 auf 1 - also "high"
             rcall WARTEN // ruft Unterroutine "warten" auf, wartet 1 
sek
             cbi PORTB,3  // setzt PB3 auf 0 - also "low"
             rcall WARTEN // usw.
             .....
             ret


Dieses Assembler-Programm wird direkt im AVR Studio geschrieben, dann 
einfach in einer HEX-Datei umwandeln (passend zum µ-controller) und dann 
kannst du es mittels Ponnyprog o.ä. direkt auf den µ-Controller 
schreiben.

Wenn du die Schaltung an 12 Volt betreiben möchtest, so bräuchtest du 
noch einen Festspannungsregler 7805, der dir die 5V-Betriebsspannung für 
den µ-Controller gibt.

Autor: Dominik H. (super_flummy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
wie geht das jetzt mit dem nop Befehls schleife?

Hab das Programm so geschrieben wie in dem Anhang. Muss ich da jetzt den 
nop rein machen oder erst weiter schreiben bis ich meine 10 sek zusammen 
habe und dann den nop eingeben.


Ist das der richtige nop für 0,5 sek Timer .Taktrate 1,0000 MHz

; =============================
;   Warteschleifen-Generator
;     500000 Zyklen:
; -----------------------------
; warte 499995 Zyklen:
          ldi  R17, $0F
WGLOOP0:  ldi  R18, $37
WGLOOP1:  ldi  R19, $C9
WGLOOP2:  dec  R19
          brne WGLOOP2
          dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0
; -----------------------------
; warte 3 Zyklen:
          ldi  R17, $01
WGLOOP3:  dec  R17
          brne WGLOOP3
; -----------------------------
; warte 2 Zyklen:
          nop
          nop
; =============================

Autor: Leeroybäm Oha- (andreas86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
öhm moment, du hast PN - du hast da was falsch verstanden. Du gibst 
deinen CODE in C ein? Args, habs eigentlich für Assembler geschrieben. 
Mach mal copy und paste und vervollständige noch die 2 Programmroutinen 
blinkerrechts und warnblinker - dann kannst du es kompilieren (aber 
nicht den C-Compiler benutzen, sondern in AVR-Studio den normalen 
Assembler-Compiler verwenden!)  (falls noch irgendwo ein fehler drin ist 
- bitte berichtigen, habe für Atmel's noch keine Programme geschrieben.)

hier nochmal:

.include "tn12def.inc"


init:
          ldi r15, 0b00111000          ;
          out DDRB, r15                ; PORTB 0,1,2 = input, 
3,4,5=output


main:
          sbic PORTB,0
          rcall blinkerlinks
          sbic PORTB,1
          rcall blinkerrechts
          sbic PORTB,2
          call warnblinker
          rjmp main


blinkerlinks:
          rcall WARTEN ; 1. Sekunde vorbei
          rcall WARTEN ; 2. Sekunde vorbei
          rcall WARTEN ; 3. Sekunde vorbei
          sbi PORTB,3  ; setzt PB3 auf 1 - also "high"
          rcall WARTEN ; 1 sekunde warten
          cbi PORTB,3  ; setzt PB3 auf 0 - also "low"
          rcall WARTEN ; usw.
          sbi PORTB,3  ; 10 sek blinken= 5x an, 5x aus
          rcall WARTEN ;
          cbi PORTB,3  ; Normalerweise wird dies hier in einer
          rcall WARTEN ; Schleife gemacht, irgendeine Variable
          sbi PORTB,3  ; wird vor der Schleife auf den wert dezimal 5
          rcall WARTEN ; gesetzt und dann wird pro Schleifendurchlauf
          cbi PORTB,3  ; der Wert der Variable um 1 verringert. Als
          rcall WARTEN ; Abschaltkriterium gilt dann: Varibla=0
          sbi PORTB,3  ; Da kannst du dir ja selber Gedanken bezüglich
          rcall WARTEN ; dieser Schleife machen ;)
          cbi PORTB,3
          rcall WARTEN
          sbi PORTB,3
          rcall WARTEN
          cbi PORTB,3
          ret

blinkerrechts:
                       ; EXAKT wie blinkerlinks nur das hier
                       ; PORTB,4 anstatt PORTB,3 geschalten wird
          rcall WARTEN ; 1. Sekunde vorbei
          rcall WARTEN ; 2. Sekunde vorbei
          rcall WARTEN ; 3. Sekunde vorbei
          sbi PORTB,4  ; setzt PB4 auf 1 - also "high"
          rcall WARTEN ; 1 sekunde warten
          cbi PORTB,4  ; setzt PB4 auf 0 - also "low"
          rcall WARTEN ; usw.
          ret

warnblinker:
          rcall WARTEN ; 1. Sekunde vorbei
          rcall WARTEN ; 2. Sekunde vorbei
          rcall WARTEN ; 3. Sekunde vorbei
          sbi PORTB,3  ; setzt PB3 auf 1 - also "high"
          sbi PORTB,4  ; setzt PB4 auf 1
          rcall WARTEN ; 1 sekunde warten
          cbi PORTB,3  ; setzt PB3 auf 0 - also "low"
          cbi PORTB,3
          rcall WARTEN ; Ähnlich den Blinkerroutinen, nur das hier
                       ; PORTB,3 und PORTB,4 geschalten werden.
          ..........
          ret

WARTEN:
          ldi  R17, $09
WGLOOP0:  ldi  R18, $BC
WGLOOP1:  ldi  R19, $C4
WGLOOP2:  dec  R19
          brne WGLOOP2
          dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0
          nop
          ret

Autor: Leeroybäm Oha- (andreas86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
init:
          ldi r15, 0b00111000          ;
          out DDRB, r15                ; PORTB 0,1,2 = input,
3,4,5=output

3,4,5=output ist nur ein Kommentar - hat es nur durch die Formatierung 
des Forums verschoben - mach ein Semikolon davor, dann passts!

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas H. schrieb:
>
>
> warnblinker:
>           rcall WARTEN ; 1. Sekunde vorbei
>           rcall WARTEN ; 2. Sekunde vorbei
>           rcall WARTEN ; 3. Sekunde vorbei
>           sbi PORTB,3  ; setzt PB3 auf 1 - also "high"
>           sbi PORTB,4  ; setzt PB4 auf 1
>           rcall WARTEN ; 1 sekunde warten
>           cbi PORTB,3  ; setzt PB3 auf 0 - also "low"
>           cbi PORTB,3
>           rcall WARTEN ; Ähnlich den Blinkerroutinen, nur das hier
>                        ; PORTB,3 und PORTB,4 geschalten werden.
>           ..........
>           ret
>
> WARTEN:
>           ldi  R17, $09
> WGLOOP0:  ldi  R18, $BC
> WGLOOP1:  ldi  R19, $C4
> WGLOOP2:  dec  R19
>           brne WGLOOP2
>           dec  R18
>           brne WGLOOP1
>           dec  R17
>           brne WGLOOP0
>           nop
>           ret


Bei cbi PORTB,3 setzt PB3 auf 0 - also "high"


und dann das zweite: da muss doch dann das stehen oder?

cbi PORTB,4 setzt PB4 auf 0
    "    "        " "
( und nicht 3 )  ( da auch ) oder?

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Datei muss ich anhängen in dem Forum damit du dir das Programm ( 
das ich verfollständigt habe ) ansehen kannst? Als bild kann ich es 
nicht mehr einfügen da sonst der untere teil fehlt.

Autor: Leeroybäm Oha- (andreas86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie wärs direkt mit der .asm datei?

Autor: Dominik H. (super_flummy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
mit welchen Butten mach ich jetzt noch gleich das kompilieren?

Englisch ist nicht mein ding, hab es in der Schule nicht gehabt.

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast die falsche Datei angehängt... "Kompilieren" unter Build -> 
Build (Hotkey: F7).

Aber ohne dir auf den Schlips treten zu wollen: Du hast sowas von 
überhaupt garkeine Ahnung, dass dieses Projekt leider vielvielviel zu 
groß für dich ist. Außerdem ist auch das Programm was du hier bekommen 
hast ein sehr schlechter Stil (-> Warteschleifen). Klar reicht es dafür 
aus, aber eben auch nur dafür.

Das Tutorial auf dieser Seite kann dir eigentlich kaum zu schwer sein - 
das fängt bei 0 an und geht langsam vor. Hast du dch schonmal damit 
befasst? Warum meldest du dich dann nicht einmal mit einer konkreten 
Problemfragestellung? Beispiel: Tutorial Kapitel 1, Seite so und so, 
Thema das und das: Ich verstehe nicht, warum das und das so sein muss.

Matthias

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dan war ich ja vorher doch schon richtig.

Ich hab mich schon mal mit dem Tutorial befasst. aber ich konn da schon 
am Anfang nicht mit wie die das jetzt mit dem Befehl meinen.

Zudem habe ich als ich es im Forum schon mal an sprach das falsche 
Tutorial bekommen weil sonst hättest du mich nicht gefragt ob ich in C 
schreibe.

Von dem Tutorial habe ich nämlich den Befehl.

So hab jetzt auf F7 gedrückt aber im unteren Fenster bekomme ich die 
Fehlermeldung:

FATAL ERROR: Cannot open output file D:\Dokumente und 
Einstellungen\Kr³mel\Eigene Dateien\Blinklicht.hex: No such file or 
directory

Autor: Dominik H. (super_flummy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Da ist es die ?

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dominik H. schrieb:

> FATAL ERROR: Cannot open output file D:\Dokumente und
> Einstellungen\Kr³mel\Eigene Dateien\Blinklicht.hex: No such file or
> directory

Wird wohl an den Sonderzeichen/Umlauten im Pfad liegen.

Olli

Autor: Leeroybäm Oha- (andreas86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dominik H. schrieb:
> Bei cbi PORTB,3 setzt PB3 auf 0 - also "high"
>
>
> und dann das zweite: da muss doch dann das stehen oder?
>
> cbi PORTB,4 setzt PB4 auf 0
>     "    "        " "
> ( und nicht 3 )  ( da auch ) oder?


#  Mit cbi ("clear bit") wird das angegebene Bit auf 0 gesetzt.
#  sbi ("set bit") bewirkt das Gegenteil.

In der Digitaltechnik gibts grundsätzlich 2 Zustände:
LOW und HIGH.
Also erst einmal etwas grundsätzliches:
Falls du nun eine Betriebsspannung von 5Volt hast, so werden deine 
definierten Logic-Pegel:  Low=GND=0V und High=VCC=5V betragen.

Falls du jetzt etwas mit dem AVR-Tutorial falsch in Verbindung bringst:

Im AVR-Tutorial werden die Leuchtdioden direkt vom pin des µ-Controllers 
aus angeschlossen, und zwar gegen +VPP ( weil manche 
Treiber//Schaltausgänge des Mikrocontrollers mehr Strom bei einem 
LOW-Pegel liefern können als bei einem HIGH-Pegel.

D.H. in diesem fall wird die Masse der Leuchtdiode geschaltet, es muss 
also eine negative spannungheraus kommen damit die Leuchtdiode 
leuchtet. Dies bedeutet wiederrum -> Portb Pin x = high : LED liegt 
zwischen Vcc und Vcc - und es wird kein Strom fließen. Wird nun aber der 
Portb Pin x auf low geschaltet so liegt die LED zwischen VCC und GND - 
und fängt an zu leuchten.

In der Schaltung, die ich dir Heute vormittag gezeichnet hatte sind 3 
NPN Transistoren. Diese werden zwischen Emitter und Kolektor leitend, 
sobald durch deren Basis-Anschluss eine positive Spannung in Richtung 
Emitter fließt. Sobald diese nun leitend sind wird durch die 
Leuchtdioden ein Strom  fließen, d.h. diese fangen an zu leuchten.

Das bedeutet für unsere Schaltung: Es muss ein positives Signal = High 
oder Logisch 1 herauskommen damit eine Leuchtdiode Leuchtet.

Und öhm zu deiner eigentlichen frage: Ja, dort müsste PORTB,4 stehen ;)

Autor: Dominik H. (super_flummy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Da noch mal. Der hat mir bei der warnblink einen scheiß rein gemacht.

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olli R. schrieb:
> Dominik H. schrieb:
>
>> FATAL ERROR: Cannot open output file D:\Dokumente und
>> Einstellungen\Kr³mel\Eigene Dateien\Blinklicht.hex: No such file or
>> directory
>
> Wird wohl an den Sonderzeichen/Umlauten im Pfad liegen.

Nochmal: es ist keine gute Idee, Umlaute & Sonderzeichen bei 
Benutzernamen und Pfaden zu verwenden. Hier ist Dir das gerade um die 
Ohren geflogen.

Autor: Leeroybäm Oha- (andreas86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olli R. schrieb:
> Dominik H. schrieb:
>
>> FATAL ERROR: Cannot open output file D:\Dokumente und
>> Einstellungen\Kr³mel\Eigene Dateien\Blinklicht.hex: No such file or
>> directory
>
> Wird wohl an den Sonderzeichen/Umlauten im Pfad liegen.
>
> Olli

und vieleicht auch an der Pfadlänge - kenne das zumindest vom PIC das 
dort manchmal der Compilor motzt!

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Aufklärung. Wo ich den das Assembler Tutorial. Das was ich 
hatte was ja C

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dominik H. schrieb:
> Ich hab mich schon mal mit dem Tutorial befasst. aber ich konn da schon
> am Anfang nicht mit wie die das jetzt mit dem Befehl meinen.


Ich würd gern dieses "Problem" nochmal aufgreifen:

Zuerst vorweg: Wie alt bist du?


Dann: Das AVR-Assembler Tutorial auf dieser Seite. Kapitel 1 und 2 
kannst du überspringen, mit dem Pollin Board hast du ja die Hardware 
schon. Dennoch könnte nachlesen nicht schaden.

Spannend wirds ab hier:
http://www.mikrocontroller.net/articles/AVR-Tutori...

Die Schaltung brauchst du nichtmal zusammenstecken, die bietet dein 
Pollinboard schon von Haus aus. Ich weiß allerdings nicht, wie das mit 
den Pin/Port Belegungen ist. (Kenne das Board nicht).


Du kannst jetzt also mit dieser Seite des Tutorials ein wenig 
herumspielen, alles ausprobieren, ein wenig ändern, testen, lernen.

Treten dabei Probleme auf? Verstehst du was nicht? Klappt was absolut 
garnicht was da steht?

Dann wende dich bitte mit einer EXAKTEN Problembeschreibung an das 
Forum. Poste ein wenig Quellcode, beschreib genau was du wie 
angeschlossen hast (Schaltplan), zitiere eventuell sogar den Absatz aus 
dem Tutorial an dem es hängt (oder beschreibe genau).

Ungenaue Problembeschreibung und Fragestellung führt nur zu ewig langen 
Diskussionen mit ner Ergebnischance nahe 0 (oder nach 10000 Beiträgen). 
Sicherlich ist es etwas Aufwand, seine Frage geschickt, ausführlich und 
dennoch einigermaßen Knapp zu formulieren, aber am Ende ist dir damit 
geholfen.

Matthias

Edit:
Ganz wichtig wäre auch, dass du für jedes unabhängige Problem einen 
neuen Thread aufmachst. So bleibt es übersichtlich. Ein Titel wie dieser 
hier ("Neues Projekt, Hilfe!") ist zudem nicht aussagekräftig und nicht 
gern gesehen.

Autor: Leeroybäm Oha- (andreas86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei der Warnblinkfunktion hast du 3x hintereinander beide pins auf Low - 
Copy&Paste fehler!

warnblinker:
          rcall WARTEN ; 1. Sekunde vorbei
          rcall WARTEN ; 2. Sekunde vorbei
          rcall WARTEN ; 3. Sekunde vorbei
          sbi PORTB,3  ; setzt PB3 auf 1 - also "high"
          sbi PORTB,4  ; setzt PB4 auf 1
          rcall WARTEN ; 1 sekunde warten
 ->         cbi PORTB,3  ; setzt PB3 auf 0 - also "low"
 ->         cbi PORTB,4  ; setzt PB4 auf 0
          rcall WARTEN ; 1 Sekunde warten
 ->         cbi PORTB,3  ; setzt PB3 auf 1 - also "high"
 ->         cbi PORTB,4  ; setzt PB4 auf 1
          rcall WARTEN ; 1 Sekunde warten
 ->         cbi PORTB,3  ; setzt PB3 auf 0 - also "low"
 ->         cbi PORTB,4  ; setzt PB4 auf 0

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas H. schrieb:
> Olli R. schrieb:
>> Dominik H. schrieb:
>>
>>> FATAL ERROR: Cannot open output file D:\Dokumente und
>>> Einstellungen\Kr³mel\Eigene Dateien\Blinklicht.hex: No such file or
>>> directory
>>
>> Wird wohl an den Sonderzeichen/Umlauten im Pfad liegen.
>>
>> Olli
>
> und vieleicht auch an der Pfadlänge - kenne das zumindest vom PIC das
> dort manchmal der Compilor motzt!

Also Speichere ich solche Dateien in eine Ordner der keine Umlaute drin 
hat.

So dann D:\Dokumente und Einstellungen\Eigene Dateien\Blinklicht.hex:

Dann ist der Pard nicht so lang und hat auch keine Umlaute drin.

Autor: Dominik H. (super_flummy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich übersehen

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dominik H. schrieb:

> So dann D:\Dokumente und Einstellungen\Eigene Dateien\Blinklicht.hex:
> Dann ist der Pard nicht so lang und hat auch keine Umlaute drin.

Auch keine so gute Idee, \Dokumente und Einstellungen\ ist eigentlich 
dem Betriebssystem vorbehalten, dort liegen die Benutzerprofile (in 
Deinem Fall wohl "Krümel").

Die Tatsache, dass Du (unterhalb davon) dort Schreibrechte hast, deutet 
daraufhin, dass Du mit Administratorrechten arbeitest, das muss auch 
nicht sein, aber was red ich ;-)

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab meinen Rechner beim Software aufspielen so eingestellt da eh nur 
ich dran bin, und es dann egal ist. Ob Admin oder nicht.


Anstatt das Programm so zu schreiben.

warnblink
          rcall WARTEN ; 1. Sekunde vorbei
          rcall WARTEN ; 2. Sekunde vorbei
          rcall WARTEN ; 3. Sekunde vorbei
          sbi PORTB,3  ; setzt PB3 auf 1 - also "high"
          sbi PORTB,4  ; setzt PB4 auf 1
          rcall WARTEN ; 1 sekunde warten
          cbi PORTB,3  ; setzt PB3 auf 0 - also "low"
          cbi PORTB,4  ; setzt PB4 auf 0
          rcall WARTEN ; 1 Sekunde warten
          sbi PORTB,3  ; setzt PB3 auf 1 - also "high"
          sbi PORTB,4  ; setzt PB4 auf 1
          rcall WARTEN ; 1 Sekunde warten
          cbi PORTB,3  ; setzt PB3 auf 0 - also "low"
          cbi PORTB,4  ; setzt PB4 auf 0
          usw.


Kann ich nicht einfach den PB5 nehmen und die LEDs dann so zusammen 
Löten wie auf deiner Zeichnung Andreas. Dann sollte das Programm so 
aussehen.

warnblink
          rcall WARTEN ; 1. Sekunde vorbei
          rcall WARTEN ; 2. Sekunde vorbei
          rcall WARTEN ; 3. Sekunde vorbei
          sbi PORTB,5  ; setzt PB5 auf 1 - also "high"
          rcall WARTEN ; 1 sekunde warten
          cbi PORTB,5  ; setzt PB5 auf 0 - also "low"
          rcall WARTEN ; 1 sekunde warten
          sbi PORTB,5  ; setzt PB5 auf 1 - also "high"
          rcall WARTEN ; 1 sekunde warten
          cbi PORTB,5  ; setzt PB5 auf 0 - also "low"
          usw.



Oder hat der IC dann was?

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke bis jetzt mal für eure Geduld mit mir.

Ich mach das ganze ( glaub ich mal ) schwieriger als es ist.


Ich hab es schon mal im anderen Beitrag gesagt:

Ich kann CNC Fräsen, NC Drehen, Computertechnik und noch anderes. Aber 
bei Mikrocontroller scheitert es zum ersten mal bei mir, es zu lernen.


ich bin froh das ich ein so gutes ( was sage ich, Super ) Forum habe mit 
Mitglieder. Ausnahme von ein paar :-)

Autor: Leeroybäm Oha- (andreas86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja das könntest du schon. Vorrausgesetzt du möchtest die Scheinwerfer 
und das Rücklicht blinken lassen.

Im Assembler-Programm fehlt noch eine Kleinigkeit: du wolltes damit das 
normale "Licht" direkt beim einschalten der Betriebsspannung angeht.

Also wenn du es so zusammen lötest wie ich das dir gezeichnet habe und 
du den PB5 ein/aus schalten lässt bei warnblink - dann blinkt ja dein 
Scheinwerfer/Rücklicht - war ja nicht so gewollt, oder? - Aber 
theoretisch könntest du das auch so machen.

Nein, der µ-Controller hat da nichts dagegen!

Autor: Leeroybäm Oha- (andreas86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zum Pollin Evaluationboard: Problem beim Funktionstest auf dem Board 
selber ist halt damit die vorhandenen Taster und LED's auf keinen Pin 
der 8 poligen ATtiny Fassung geführt ist.

Wenn du etwas mit dem Board selber ausprobieren möchtest, verwende einen 
ATtiny 2312 oder größer, nehm die passende include-Datei und ändere die 
Port's im Programm: z.B. Taster 1 liegt auf PORTD,2.

Autor: Dominik H. (super_flummy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So ich hab mir das nochmal überdacht, ich mach es so wie du es mir 
geschrieben hast: Mit-


          rcall WARTEN ; 1. Sekunde vorbei
          rcall WARTEN ; 2. Sekunde vorbei
          rcall WARTEN ; 3. Sekunde vorbei
          sbi PORTB,3  ; setzt PB3 auf 1 - also "high"
          sbi PORTB,4  ; setzt PB4 auf 1
          rcall WARTEN ; 1 sekunde warten
          cbi PORTB,3  ; setzt PB3 auf 0 - also "low"
          cbi PORTB,4  ; setzt PB3 auf 0

und nehme denn PB5 Anschluss für das Dauerlicht Scheinwerfer ( Vorne ) 
Scheinwerfer ( Hinten ).

Da muss ich ja dann nichts weiter machen als PB5 auf ( dauer ein ) zu 
programmieren.

So oder?:

sbi PORTB,5 ; setzt PB5 auf 1 - also "high"


Mehr brauche ich da ja nicht.


das schreibe ich gleich an den Anfang des Programms

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist eigentlich ein Attiny12 S? ich finde nur die Attiny12 L und so.

Finde den überhaupt nicht. oder ist das so eine SMD form.

Wie kann ich eigentlich eine IC in SMD Bauform Brennen? Die normalen 
stecke ich halt in denn Sockel Aber die SMD Bauweise ist anderes.

Gibt es eine Erweiterung auf SMD ICs brennen für das Evalutionboard 
2.01?
oder muss ich mir für SMD selber eine Vorrichtung bauen?

Gruß
Dominik

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>oder muss ich mir für SMD selber eine Vorrichtung bauen?

Ja.

Oliver

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dominik H. schrieb:

> Wie kann ich eigentlich eine IC in SMD Bauform Brennen? Die normalen
> stecke ich halt in denn Sockel Aber die SMD Bauweise ist anderes.

Ganz einfach. Platine layouten, IC einloeten und die ISP-Leitungen als 
Wannenstecker rausfuehren. Dann mit einem beliebigen ISP-Dongle 
programmieren.

Autor: M. W. (hobbyloet)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dominik H. schrieb:
> Ich kann CNC Fräsen, NC Drehen, Computertechnik und noch anderes. Aber
> bei Mikrocontroller scheitert es zum ersten mal bei mir, es zu lernen.

Das glaube ich nicht!
Du bist mit Adminstatus, auf ner Dose im Internet unterwegs!
Hast Du so geschrieben.

Was CNC-Fräsen angeht, da musste mal ein selbst gefertiges Teil 
vorstellen.

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. W. schrieb:
>
> Was CNC-Fräsen angeht, da musste mal ein selbst gefertiges Teil
> vorstellen.

Hier mal ein Projekt mit Bild. Und das 2. Projekt nur der CNC Code da 
ich das Werkstück nicht mehr habe.


Projekt 1. Putzdeckel:

http://img21.imageshack.us/img21/6316/zwischenabla...

CNC Programm :

http://img21.imageshack.us/img21/5706/document1.tif


Projekt 2. Kühlkörper.

CNC Programm :

http://img21.imageshack.us/img21/3015/document2.tif


Die Projekte wurden an einer Maho 600C Maschine abgearbeitet. Ich stehe 
dafür gerade das das meine Programmierung war ( falls einer meint das 
kann nicht von mir sein oder so )

Ich Denke das ich mich nicht weiter zur Rechenschaft ziehen lassen muss. 
Ich kann CNC und Vertick.

Frage beantwortet M. W. (hobbyloet)???


Gruß
Dominik

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dominik H. schrieb:
> Was ist eigentlich ein Attiny12 S? ich finde nur die Attiny12 L und so.
>
> Gruß
> Dominik


???????????????????

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann ich den für das vorhaben benutzen???

http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=A36...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weis nicht mehr genau aber ich glaub das hier mal die rede von einer 
Festspannung war, die ich für den IC brauche. Kann das sein ?

Autor: Thomas H. (smithers78)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Attiny will ja auch leben...
Schau doch mal im Datenblatt unter "Electrical Characteristics". Müsste 
sich dann "Supply Voltage", "Vcc" o.ä. nennen.
Dürfte so zwischen 3.0 und 5.5 V liegen. Wo nimmste denn deinen 
eigentlich her?

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas H. schrieb:
Wo nimmste denn deinen eigentlich her?

???

Autor: Thomas H. (smithers78)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Wort "Saft" hat gefehlt.. Will sagen: Woher kommt denn die Spannung?
Wenns ein ATTINY12 (ohne zusatz) wird brauchst du 8 MhZ irgendwas 
zwischen 4 und 5.5 V.

Autor: Dominik H. (super_flummy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das steht unter Electrical Characteristics

Autor: Thomas H. (smithers78)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da steht z.B. das MAXimum von 6V. Weniger geht natürlich auch. Wie viel 
weniger steht auf Seite 1 des DB oder auch auf Seite 75...

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für meinen 8 MHz sind 4,0 - 5,5 V Ok

Autor: Thomas H. (smithers78)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja dann musst Du Dich ja nur noch drum kümmern, dass Du die irgendwoher 
bekommst, die besagten 5V...
Das ist dann natürlich auch die Spannung, die an den Ausgängen bei 
High-Pegel anliegt. Wäre evtl. für die Auslegung von 
(LED-)Vorwiderständen an Deiner Blink-Schaltung zu berücksichtigen.

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann ich die Schaltung für die Festspannung benutzen?

Wäre genau das richtige so weit ich es sehe.

Hab auch 9 V Eingang, und 5 V Ausgang zum IC die ich dann brauche.

http://sol.ea.rbs.schule.ulm.de/sol/eoffline/sites...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.
Ist eine Standardlösung, wenn man einen Trafo + Gleichrichter hat.

Schau mal zb hier
http://www.mikrocontroller.net/articles/AVR-Tutori...

Na, erkennst du den Chip wieder?

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Ja.
> Ist eine Standardlösung, wenn man einen Trafo + Gleichrichter hat.
>
> Schau mal zb hier
> http://www.mikrocontroller.net/articles/AVR-Tutori...
>
> Na, erkennst du den Chip wieder?

Ist der Gleiche



Wenn ich da schon eine 100nF Kondensator drin habe, brauche ich dann vor 
den IC keinen mehr, oder doch?

Autor: Thomas H. (smithers78)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage tritt i.d.R. philosophische bis quantenmechanische 
Diskusssionen los. Wenn Du Platz hast, mach auch einen davor, wenn Du 
keinen hast, dann lass ihn weg. Wird i.d.R. genauso funktionieren. Für 
Deine Anwendung ist es relativ egal, ob der vor dem 7805 nu da ist oder 
nicht.
Du solltest aber dahinter sowsie am uc auf jeden Fall 100 nF möglichst 
nah an den Vcc und GND-Pins haben.

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann mach ich einen rein. Ist eh in SMD Bauform. dann sind die 2 mm auch 
noch drin :-)

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andere Frage noch. in der Schalung von Andreas ( ganz oben ) sind BC849 
er Transistoren drin. würden da BC846 er auch gehen?

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS Die kann ich nehmen gel?

Ebay-Artikel Nr. 220419297341

Wie so ich frage ist: weil mir die letzten 2 ziffern nach L7805/ CV 
unklar sind.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yip, geht auch. Ube max sind bei den 846ern 5V, das geht also noch. 
http://www.datasheetcatalog.org/datasheet/GeneralS...

Autor: Dominik H. (super_flummy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was vor oder nach dem 7805 steht ist relativ egal... Herstellerkürzel 
und Ausführung. Nur wenn's 78L05 heisst, ist es was anderes. Das ist 
dann der kleine Bruder mit 5V aber weniger Ausgangsstrom. Aber diese 
Fragen kann alle ein Datenblatt beantworten...

Autor: Matthias Larisch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Üblicherweise dürfte es dich übrigens günstiger kommen, wenn du deine 
Bauteile neu & nicht alle einzeln über Ebay bestellst :-) Reichelt und 
CSD-Elektronik sind da für die Hobbybastler erstmal günstige Adressen.

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.