Archiv verlassen und diese Seite im Standarddesign anzeigen : Attiny13 als 555er Timer
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
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
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
Hi,
das ist genau das was ich Suche!!! Super danke :) hat denn jemand das prog schon getestet ob es klappt???
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
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
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.
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.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.