loetstelle.net
Lötstelle Userforum
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Fahrradtachometer über Attiny13 steuern
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> BASCOM
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Franjo



Anmeldungsdatum: 03.04.2011
Beiträge: 6
Wohnort: Koeln

BeitragVerfasst am: So 03.Apr 2011 20:59:41    Titel: Fahrradtachometer über Attiny13 steuern Bauteile finden Antworten mit Zitat

Hallo zusammen,

ich habe mir überlegt, meinen Fahrradtachometer nicht mit Spannungsimpulsen über einen externen Magneten zu versorgen, sondern die Spannungsimpulse eines Fahrraddynamos zu nutzen. Diese Impulse variieren je nach Fahrraddynamo pro Umdrehung. Ein Shimano-Dynamo z.B. sendet 28 Impulse, davon 14 als postive Halbwelle. Als Leerlaufspannung erhalte ich grob bei einer Erhöhung um 1km/h auch etwa 1 V mehr Spannung. Ich möchte deshalb mit Hilfe eines Zählers 14 Halbwellen zählen und dann einen Impuls an den Tachometer weitergeben. Aus den Beiträgen in diesem Forum habe ich mir Code herausgesucht und nach meinen Bedürfnissen umgeschrieben. Kann jemand mal über den Code schauen und mir mitteilen, ob er so funktioniert?

Code:
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 16
$swstack = 10
$framesize = 16


Dim ImpulseVomDynamo As Byte

SignalZumTachometer Alias Portb.3
Config SignalZumTachometer = Output

SignalVomDynamo Alias Pinb.4
Config SignalVomDynamo = Input
 
Portb.4 = 0


Main:

    If ImpulseVomDynamo = 14 Then
       ImpulseVomDynamo = 0
        SignalZumTachometer = 1
        Waitms 100
        SignalZumTachometer = 0
    End If

    'Debounce SignalVomDynamo, 0 , OnSignalVomDynamo
     'Hier dürfte das Signal vom Dynamo sauber genug sein, es ist eine    'Sinuswelle, die durch eine Z-Diode auf einen Wert von x V begrenzt 'wird. Über die Höhe von x bin ich mir jedoch noch nicht im Klaren, ich 'schätze so etwa 2,5 bis 3 V

Goto Main
End


OnSignalVomDynamo

    Incr ImpulseVomDynamo

Goto Main

PS: Einen großen Dank an gerold für seine sehr gut verständliche Einführung in die Welt der Atmel-Controller
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BellaD



Anmeldungsdatum: 03.12.2006
Beiträge: 1708
Wohnort: Klinik der misshandelten Kuscheltiere

BeitragVerfasst am: So 03.Apr 2011 21:37:05    Titel: Bauteile finden Antworten mit Zitat

moin
Code:
'Debounce SignalVomDynamo, 0 , OnSignalVomDynamo

debounce vertrödelt bei bascom 20msec je aufruf , daher könnten dir Impulse verloren gehen.
Besser wäre es einen Timer als Zähler für die Imp. zu benutzen,da er aber nur einen hat und der vielleicht noch für was anderes gebraucht wird,
würde ich den AnalogComperator dafür gebrauchen.
Referenzspannung an einen Pin, dein aufbereitetes Signal an den anderen und im Interup des AIN dann hochzählen.

_________________
Eine Weiterverbreitung ohne ausdrückliche Genehmigung ist untersagt. Für Schäden, lehnen wir jegliche Haftung ab.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Franjo



Anmeldungsdatum: 03.04.2011
Beiträge: 6
Wohnort: Koeln

BeitragVerfasst am: So 03.Apr 2011 22:10:26    Titel: Bauteile finden Antworten mit Zitat

Erst mal Danke für die schnelle Antwort.
Da ich den Debounce-Befehl sehr wahrscheinlich nicht benötige, habe ich ihn auskommentiert. Ich bin absoluter Neuling und kann leider mit Deinen Alternativvorschlägen ohne tieferes Verständnis nicht viel anfangen. Würde mein Code denn ohne die " Debounce" - Zeile noch funktionieren?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BellaD



Anmeldungsdatum: 03.12.2006
Beiträge: 1708
Wohnort: Klinik der misshandelten Kuscheltiere

BeitragVerfasst am: Mo 04.Apr 2011 20:31:55    Titel: Bauteile finden Antworten mit Zitat

moin

ich hab gerade mal nachgelesen der Debounce befehl ist konfigurierbar

Config Debounce = 5 'when the config statement is not used a default of 25mS will be used but we override to use 5 mS

http://avrhelp.mcselec.com/index.html

mfg

_________________
Eine Weiterverbreitung ohne ausdrückliche Genehmigung ist untersagt. Für Schäden, lehnen wir jegliche Haftung ab.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sam



Anmeldungsdatum: 13.10.2008
Beiträge: 401

BeitragVerfasst am: Mo 04.Apr 2011 20:43:28    Titel: Bauteile finden Antworten mit Zitat

Da wird man mit Debounce nicht weit kommen. Dafür ist das Ganze einfach zu schnell. Da solltest du mit externen Interrupts arbeiten.
Du musst auf jeden Fall die Spannung verstärken und begrenzen (Transistor und Z-Diode). Dann wartest du auf eine Flanke und startest einen Timer. Bei der nächsten Flanke wertest du den Timer aus. Wenn der Timer überläuft gehst du von Stillstand aus.

_________________
„Zwei Dinge sind unendlich, das Universum und
die menschliche Dummheit, aber bei dem
Universum bin ich mir noch nicht ganz sicher.“
Albert Einstein
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Alv



Anmeldungsdatum: 23.06.2009
Beiträge: 1145
Wohnort: Braunschweig

BeitragVerfasst am: Mo 04.Apr 2011 20:44:16    Titel: Re: Fahrradtachometer über Attiny13 steuern Bauteile finden Antworten mit Zitat

Möglicherweise könnte man das auch ohne aufwendige Schaltung oder µC hinbekommen, indem man einfach den Radumfang im Tacho den 18 Impulsen anpaßt...

Wenn ich jetzt richtig geschätzt habe, dann müßte bei einem 28" Rad mit 2000 mm Umfang der Radumfang im Tacho auf 110mm eingestellt werden.

_________________
bd. Alv
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Franjo



Anmeldungsdatum: 03.04.2011
Beiträge: 6
Wohnort: Koeln

BeitragVerfasst am: Mo 04.Apr 2011 22:12:07    Titel: Bauteile finden Antworten mit Zitat

Zunächst nochmals Danke für die Antworten.

@ALV: Natürlich könnte diese Aufgabe auch einfacher erledigt werden. Ich möchte allerdings die Arbeitsweise dieser Mikrocomputer kennenlernen, um evtl. andere, anspruchsvollere Projekte angehen zu können ( ein ASURO wartet bereits ).

Ich habe den Code heute mal kompilieren lassen, bis auf eine unbedeutende Fehlermeldung hat das BASCOM AVR-Programm den Code auch angenommen. Ohne einen Eingangsimpuls kann ich den Code allerdings mit der Simulation nicht testen. Gibt es irgendeine Möglichkeit, den Port PB4 mit einem Rechtecksignal 5 Vss anzusteuern und dann zu sehen, was an PB3 in Richtung Tachometer ausgegeben wird?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Franjo



Anmeldungsdatum: 03.04.2011
Beiträge: 6
Wohnort: Koeln

BeitragVerfasst am: Mo 04.Apr 2011 22:42:35    Titel: Bauteile finden Antworten mit Zitat

Ich habe mal ausgerechnet, wieviele Impulse im Bereich von 1 km/h und 80 km/h erzeugt werden:

Ein 28 – Zoll- Rad legt pro Umdrehung einen Weg von 2174 mm zurück (http://de.wikipedia.org/wiki/Abrollumfang#Fahrr.C3.A4der).
Währenddessen werden 14 positive Halbwellen mit 14 ansteigenden Flanken erzeugt. Pro Flanke entspricht dies einem Weg von 0,1552 m.Fahre ich mit 1 km/h, so erzeuge ich pro Sekunde 1,78 Impulse ( 1000m/2,714m*14Imp/s/3600s).
Bei 80 km/h sind es dann 143,1 Impulse pro Sekunde. Am Ausgang entstünden dann etwa 10 Impulse pro Sekunde.

Ob diese Impulsfolge noch von dem vorgestellten Programm verarbeitet werden kann, weiß ich nicht, ich werde deshalb versuchen, mich in die Programmierung von Interrupts einzulesen. Sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Franjo



Anmeldungsdatum: 03.04.2011
Beiträge: 6
Wohnort: Koeln

BeitragVerfasst am: Di 05.Apr 2011 13:52:09    Titel: Bauteile finden Antworten mit Zitat

So, hier nun der erste Versuch, mein Problem mit Interrupts zu lösen:

Code:
$regfile = "attiny13.dat"
$crystal = 4000000
$hwstack = 16
$swstack = 10
$framesize = 16


Dim Signalvomdynamo As Byte
SignalVomDynamo = 0

Config Pinb.0 = Input
Config Int0 = Rising
Signalzumtachometer Alias Portb.4
Config Signalzumtachometer = Output
Enable Interrupts
Enable Int0
On Int0 Zaehlen

Do

If Signalvomdynamo = 14 Then
      Signalvomdynamo = 0
   Signalzumtachometer = 1
   Waitms 50
   Signalzumtachometer = 0
End If

Loop

Zaehlen:

    Incr SignalVomDynamo

Return

End


Könnte mal jemand drüber schauen? Bascom - AVR meldet beim Kompilieren keinen Fehler

Wenn im Extremfall 180 Impulse/s ankommen, reichen dann 4MHz Takt für die Weiterverarbeitung aus?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sam



Anmeldungsdatum: 13.10.2008
Beiträge: 401

BeitragVerfasst am: Mi 06.Apr 2011 15:57:04    Titel: Bauteile finden Antworten mit Zitat

Sieht soweit gut aus. Du könntest die Abfrage der Variable in der Hauptschleife komplett in die ISR (Zaehlen) setzen und den Controller in der Hauptschleife schlafen legen. Würde Strom sparen. Bei 4MHz langweilt sich der Controller zu Tode.
_________________
„Zwei Dinge sind unendlich, das Universum und
die menschliche Dummheit, aber bei dem
Universum bin ich mir noch nicht ganz sicher.“
Albert Einstein
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
caargoo



Anmeldungsdatum: 27.05.2007
Beiträge: 25
Wohnort: Ö - B

BeitragVerfasst am: Mi 06.Apr 2011 16:31:29    Titel: Bauteile finden Antworten mit Zitat

Hallo!

Ich bezweifle stark, daß Du den Tiny mit 4MHz zum Laufen kriegst.

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hotzenplotz



Anmeldungsdatum: 14.03.2008
Beiträge: 2212
Wohnort: /sda3/home

BeitragVerfasst am: Do 07.Apr 2011 07:33:25    Titel: Bauteile finden Antworten mit Zitat

>>Ich bezweifle stark, daß Du den Tiny mit 4MHz zum Laufen kriegst.

Wieso denn das nicht ?

_________________
Lasst uns Spass haben...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
caargoo



Anmeldungsdatum: 27.05.2007
Beiträge: 25
Wohnort: Ö - B

BeitragVerfasst am: Do 07.Apr 2011 17:50:28    Titel: Bauteile finden Antworten mit Zitat

Hallo!

Im Eingangspost hat er 1.2MHz angegeben, was ja so richtig ist, für einen
neuen Tiny.
Weiter unten schreibt er dann 4MHz.
Nun gut wenn er einen Quarzoszillator nimmt, ist's ja gut. Ich bin von
einem Quarz ausgegangen und das funktioniert nicht.

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hotzenplotz



Anmeldungsdatum: 14.03.2008
Beiträge: 2212
Wohnort: /sda3/home

BeitragVerfasst am: Do 07.Apr 2011 21:06:24    Titel: Bauteile finden Antworten mit Zitat

>>Ich bin von einem Quarz ausgegangen und das funktioniert nicht.

Jau, da hast Du Recht, die 8-Beiner koennen keine Quarze und haben auch noch so krumme interne RCs. Daran habe ich nicht gedacht.

_________________
Lasst uns Spass haben...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Franjo



Anmeldungsdatum: 03.04.2011
Beiträge: 6
Wohnort: Koeln

BeitragVerfasst am: Do 07.Apr 2011 22:23:18    Titel: Bauteile finden Antworten mit Zitat

Danke für die Antworten und den Hinweis, dass es nur mit 1,2 Mhz funktioniert ! Zu dem Bereich muss ich wohl noch einiges lesen.
Es wird ein wenig dauern, bis ich die Schaltung samt Peripherie soweit aufgebaut habe, dass ich sie testen kann. Dann werde ich aber berichten, ob es funktioniert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Anzeige






Verfasst am: Heute 12:25:30    Titel: Bauteile finden

Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> BASCOM Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen


Powered by phpBB 2.x © 2001, 2002 phpBB Group

Sie sind Besucher Nr. 1200818
©opyright by Markus Vohburger 2005 All Rights reserved