PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Attiny13 als 555er Timer



X1CR
30.01.2010, 19:32
Guten Abend.

Möchte gerne einen 555er mit attiny13 ersetzen der nur als taktgeber dienen soll. (L297 Ansteuerung)

Einstellbar über Poti am Eingang 0-5V. Ausgang 0-xxxHz (0/5V TTL)

Habe leider überhaupt keine Erfahrung mit Progr. und vorallem nicht mit analog eingang des Tinys.

Bitte hiermit um Hilfe.

Danke für alles!!!

radbruch
30.01.2010, 20:03
Hallo

Wieviel soll xxxHz denn sein?

Wenn du "überhaupt keine Erfahrung mit Progr." hast, warum hast du durch die Wahl dieser Rubrik die Programmiersprache auf Bascom beschränkt?

Grundsätzlich sollte das ohne großen Aufwand umsetzbar sein, wenn man die maximal benötigte Frequenz kennt ;) Einfachster Ansatz wäre wohl eine Zählschleife deren Startwert aus dem ADC-Wert gebildet wird.

Gruß

mic

X1CR
30.01.2010, 20:09
Hi, Radbruch!

Habe Bascom mit myMultiprog V1.06 als möglichkeit zum Programmieren.

xxxHz... genau weiß ich das noch nicht. Ist abhängig vom Schrittmotor (schrittweite, mögliche drehzahl) deswegen möchte ich das mit einem attiny machen um ohne herumzulöten die Frequenz ändern zu können.

Wenn du dich vielleicht erinnern kannst wir hatten schon einmal das vergnügen. RC5 senden mit Attiny13.

lg
Harry

radbruch
31.01.2010, 00:02
Wenn du dich vielleicht erinnern kannst...Upps, dank deiner freundlichen Unterstützung kann ich mich jetzt erinnern ;)

Dann bleiben wir mal beim Bascom. So aus der Hüfte würde ich mal folgendes vorschlagen:

'Takt für Schrittmotor erzeugen mit ATtiny13 30.1.2010 mic'

'Achtung! Das ist ein eher theoretischer Code den ich noch nicht getestet habe!'

' Poti zwischen Vcc und GND, Schleifer an Pin 1 (ADC0/PB5)
' Frequenzausgang an Pin2 (PB3)

'Einstellungen -----------------------------------------------------------------'

'Wir verwenden einen tiny13'
$regfile = "ATtiny13.dat"
'der mit internen 1,2 MHZ getaktet wird (Fuse Takt/8 gesetzt = Auslieferzustand!)'
$crystal = 1200000
'Weitere, von mir noch nicht geprüfte Compileranweisungen:'
$hwstack = 32
$swstack = 8
$framesize = 8

Dim I As Integer

Config Portb.5 = Input ' Poti Pin1
Config Portb.3 = Output ' Takt Pin2

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

'Hauptprogramm -----------------------------------------------------------------'
Do
I = 1024 - getadc(0)
Do
Waitms 1
Decr I
Loop Until I = 0
Toggle Portb.3
Loop

Mit AVCC als Referenzspannung kann das Poti direkt zwischen Vcc und GND angeschlossen werden. Der Schleifer kommt an Pin 1 des Tiny13, der Wert für die gemessene Spannung liegt dann zwischen 0 und 1023. Übel ist nun die Umrechnung des eingelesenen Wertes in die Ausgabefrequenz. Der Ansatz hier geht über die Periodendauer die mit waitms festgelegt wird. Bei ADC=1023 (Potianschlag eine Seite) wären das bei einer ms pro Halbwelle ca. 500Hz, bei ADC=0 (Anschlag andere Seite) ca. 1/2 Hz. Die Wandelzeit des ADC wird dabei ignoriert.

Alles nur Theorie zu später Stunde...

Gruß

mic

X1CR
02.02.2010, 18:25
Hi, Mic

Erstmal danke für deine Bemühungen! Werde am WE testen!

Versteh ich das richtig das 5V an einem Eingang 1024 (Was auch immer) ist?

lg
Harry

021aet04
03.02.2010, 10:57
Das verstehst du richtig. 0V entspricht dem Wert 0. 5V entspricht dem Wert 1023. Dies wären 10Bit.

MfG Hannes

Netway
27.10.2010, 13:58
Hi,
das ist genau das was ich Suche!!! Super danke :) hat denn jemand das prog schon getestet ob es klappt???

Flo72
28.10.2010, 20:02
Hallo Leute,

Der oben geschriebene Code funktioniert prima!
Hätte da trotzdem noch eine Frage an die Experten:
Wollte Code dahingehend umschreiben, damit ich eine funktionierende Doppelblitzer Schaltung (abwechselnde Folge,Frequenz wie oben einstellbar) hinbekomme.
Nach mehreren Versuchen mit weiteren waitms und toggle Befehlen kam ich leider nicht zu einem zufriedenstellendem Ergebnis [-(
Einen weiteren Ausgangsport habe ich selbstverständlich definiert!

Um Hilfe währe ich sehr dankbar...!

Gruß Flo

radbruch
28.10.2010, 20:58
Hallo

"eine funktionierende Doppelblitzer Schaltung (abwechselnde Folge,Frequenz wie oben einstellbar) "

Kannst du das verständlicher formulieren?

Gruß

mic

Flo72
29.10.2010, 13:42
Hallo,

Sorry für die unverständliche Formulierung....

Gemeint hatte ich eine Blaulicht (Blitzer!) Schaltung für mein Modellauto,die abwechselnd blinkt (in Doppelfolge),wie sie ähnlich auf dem Dach eines Polizeiautos zu finden ist. Natürlich mit der obigen Frequenzeinstellung mittels eines Potis, um die Blinkfolge nach Geschmack einstellen zu können.

Etwa so:

Led1: an aus an aus dann Led2: an aus an aus loop

Ohne einstellbare Frequenz habe ich einfaches Programm mit waitms Befehlen geschrieben, das ich eben mit obigem Programm verknüpfen wollte. Scheitere leider dabei an den toggle Befehlen!

Danke vorab...

Gruß Flo

hunni
29.10.2010, 15:54
pass auf, da machste einfach einen N-MOSFET und einen P-MOSFET an den Tigger( also da wo 1,0,1,0 usw. rauskommt) ausgang deines ATTINY und dann hast du bei automatisch das invertiert mit dem P-MOSFET. Ansonsten kannste auch einfach zweiten Pin ansteuern und über eine If-Anweisung sagen, wenn Pin1 =0 dann Pin2 = 1 else anders herum ^^ geht glaube ich sogar noch besser.

hunni
29.10.2010, 15:56
Sorry, bitte nicht die "^^" falsch verstehen, ich möchte mich nicht über dich lustig machen, sondern darüber, das ich schreibe und beim schreiben mir gerade noch ne lösung eingefallen ist, die eigentlich noch einfacher ist. Also bitte nicht falsch verstehen.