Geschwindigkeit von LED Lauflicht mit Poti regeln in Bascom

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 26 12 2025  15:29:27      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Geschwindigkeit von LED Lauflicht mit Poti regeln in Bascom
Suche nach: led (32778)

    







BID = 465397

Drecksack

Gesprächig



Beiträge: 154
 

  


Hallöchen

Nun habe ich also mein erstes Programm geschrieben. ein led lauflicht.

ich habe ja jetzt einen festen wert zum pausieren zwischen den led´s eingegeben. Was muß ich machen, damit ich mit einem poti am avr die geschwindigkeit des Lauflichts regle? oder wie gehe ich vor?


Danke für eure hilfe

Der Drecksack

BID = 465403

Her Masters Voice

Inventar


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 5312
Wohnort: irgendwo südlich von Berlin

 

  

einfach den festen Wert durch einen Variablen ersetzen und gut. Wenn man den variablen Wert aus dem Messergebnis eines AD-Wandlers gewinnt, kann man auch ein Poti auswerten und zur Geschwindigkeitseinstellung nutzen.

_________________
Tschüüüüüüüs

Her Masters Voice
aka
Frank

***********************************
Der optimale Arbeitspunkt stellt sich bei minimaler Rauchentwicklung ein...
***********************************

BID = 465404

DonComi

Inventar



Beiträge: 8604
Wohnort: Amerika

Edit: Schlechten Beitrag entfernt, da ich telefonierte, während ich schrieb


Im Prinzip reicht es, ein Poti als var. Spannungsteiler zu beschalten und den Schleifer an einen ADC-Eingang anschließen. Du kannst dann z.b. xmal den Wert mit einem Timer digitalisieren und dann als Verzögerungswert benutzen.

[ Diese Nachricht wurde geändert von: DonComi am 20 Okt 2007 15:45 ]

BID = 465405

Drecksack

Gesprächig



Beiträge: 154

eine Variable setzt ich mit DIM...oder? und wie geht es dann weiter? Ich wäre um hilfe dankbar, das steht in meinem Lehrbuch nämlich nicht drin...

BID = 465406

DonComi

Inventar



Beiträge: 8604
Wohnort: Amerika

O Weia.

Ich würde mich vorerst mit der Syntax und den Grundlagen über Basic informieren. So ist das zum Scheitern verurteilt.

Dim Variable As Datentyp ist die allgemeine Syntax.

_________________

BID = 465407

Drecksack

Gesprächig



Beiträge: 154

Mache ich parallel hierzu. i weiß, ich sollte ganz vorne anfangen, tu ich auch. aber ich schau halt schon in die zukunft....Naja, mehr oder minder

Der Drecksack

BID = 465409

Drecksack

Gesprächig



Beiträge: 154

Wie füge ich eigentlich einen Code ein? Einfach so wie ich das mache oder wie geht es sonst noch?

Ich habe bei meinem Lauflich folgendes Problem.
Das lauflicht läuft, wie es soll.
Dann drücke ich den Taster, und alle leds sollen leuchten. tun sie auch. aber nur wenn ich den taster lange drücke.
Sehe ich das richtig, das mich diese wait angaben speziell mein Hauptprogramm bremsen? wie würdet ihr das machen.Was ich mir gerade überlegt habe, den Tastendruck als externen interrupt auszuführen.
Oder wie meint ihr das

Hier der Bascom code


$regfile = "m8def.dat"
$crystal = 3686400
Declare Sub Tastendruck 'Sub deklarieren

Ddrd = &B11100000 'PD5, 6, 7 Als Ausgang definieren
Portd.4 = 1 'Pullup von PD4 einschalten

'---------------------------------------------------------------
Do
Debounce Pind.4 , 0 , Tastendruck , Sub 'entprellt PD4

Portd.7 = 1 'setzt PD7 auf high
Waitms 900 'wartet
Portd.7 = 0 'setzt PD7 auf low

Portd.6 = 1 'setzt PD6 auf high
Waitms 900 'wartet
Portd.6 = 0 'setzt PD6 auf low

Portd.5 = 1 'setzt PD5 auf high
Waitms 900 'wartet
Portd.5 = 0 'setzt PD5 auf low

Loop
'----------------------------
Sub Tastendruck

Portd.7 = 1 'schaltet led ein
Portd.6 = 1 'schaltet led ein
Portd.5 = 1 'schaltet led ein
Wait 2 'wartet 2 sek

End Sub

End


BID = 465410

DonComi

Inventar



Beiträge: 8604
Wohnort: Amerika



Find ich gut, nicht das du mich falsch verstehst.

Aber ich würde erstmal wirklich die Grundlagen von Basic lernen. Denn um den ADC zu benutzen benötigst du mehr als nur eine Variable. (OK, in Bascom gibts bestimmt auch dazu vorgefertigte Funktionen, sodass du vermutlich nichtmal irgendwelche ADC-Register beschreiben musst), aber früher oder später wirst du auch mehr Hardwarenähe bekommen und dann wirds schwer.

_________________

BID = 465413

DonComi

Inventar



Beiträge: 8604
Wohnort: Amerika

Ich würde sowas so realisieren:

Den Timer initialisieren, mit vorberechneten Inhalten für die Zählregister. Zum Beispiel so berechnet, dass er alle x ms überläuft oder den Timer im Compare-Modus laufen lassen.

Jedenfalls wird dann periodisch ein Interrupt ausgeführt, in dem ich dann z.b. ein Bit immer weiterschiebe. So ist die CPU nicht damit beschäftig, Zeit totzuschalgen sondern kann 99% andere Aufgaben erfüllen und nur für extrem kurze Zeit das Lauflicht bedienen.

Taster etc. würd ich auch an einen ext. INT anschließen, solange ich den nicht anderweitig benutze. Sonst kann man sowas auch wieder in einen Timerinterrup auslagen, z.b. 100 mal pro Sekunde den Tasterwert abfragen.

(Bascom ist diesbezüglich grot... Debounce und Waitms sind einigermaßen resourcenfressend und sinnlos und im µC-Bereich nicht wirklich sinnvoll...)

_________________

BID = 465414

Drecksack

Gesprächig



Beiträge: 154


Nix verstehen. Ich glaube, ich mach mein Roland Walter lehrbuch erstmal durch und dann sehen wir mal weiter.

WO eigne ich mir eigentlich die Grundlagen von basic an? gibt es da gute bücher? Denn vor der Glotze sitzen und lesen strengt an....ihr kennt das bestimmt
Im "Notfall" würde ich dann doch vor der Glotze hocken und lesen....
Habt ihr basic-lern-links?


Der achso Dreckige Sack

BID = 465545

PhyMaLehrer

Schriftsteller



Beiträge: 911
Wohnort: Leipzig

Zum "Lauflicht mit Timer-Interrupt" lies mal ab Seite 81 in deinem Lehrbuch. Dort geht es bei Timer 0 zwar darum, daß der "Piepser" zum Tönen gebracht wird. Wenn du die Sache mit dem Timer aber verstanden hast, wirst du es sicher fertigbringen, die Schaltvorgänge in so großen Abständen ausführen zu lassen, daß eine statt des Piepsers angeschlossene LED sichtbar blinkt.
Wenn es so weit ist, sehen wir weiter.

Und hier mal noch eine Erklärung, warum du den Taster so lange drücken mußt, bis alle LEDs leuchten:
Der Befehl Debounce steht als erster in einer Schleife. Danach werden die drei LEDs der Reihe nach für jeweils 0,9 s geschaltet. Dann kommt wieder der Befehl Debounce usw.
Wenn du nun irgendwann die Taste kurz drückst, kann es sein, daß gar nichts passiert, denn der µC ist gerade mit den LEDs beschäftigt. Wenn du lange genug drückst, wird der Schaltvorgang dann ausgelöst, wenn die Abfrage der Taste mit Debounce wieder an der Reihe ist. Das kann im ungünstigsten Fall eben 2,7 s dauern, denn erst müssen die drei LED-Schaltungen abgearbeitet werden.

Richtig, ein externer Interrupt wäre eine wesentliche Verbesserung. Er würde den µC anweisen, alles stehen und liegen zu lassen und sofort alle LEDs für die gewünschte Zeit anzuschalten.

Aber nun erst einmal zum Timer-Interrupt-Blinken... Viel Erfolg dabei!

BID = 465657

Drecksack

Gesprächig



Beiträge: 154

Hallo
Danke für die Erklärung. Habe mir schon fast sowas in der art gedacht, daß mit den 2,7 sec warten.....

Ich sehe auch, daß ich da nicht groß weiter komme. Ich mache ertmal kleine schritte.
Als erstes projekt nehme ich mir dann vor, einen Timer mit lcd für mein belichtungsgerät zu bauen. Habe schon eine komplette doku dazu gefunden, nur ist die nicht in bascom geschrieben und wenn ich es übernehme dann lern ich auch nix dabei.

Also.
Bis demnächst und dankeschön.


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 17 Beiträge im Durchschnitt pro Tag       heute wurden bisher 6 Beiträge verfasst
© x sparkkelsputz        Besucher : 187964189   Heute : 22644    Gestern : 18748    Online : 346        26.12.2025    15:29
13 Besucher in den letzten 60 Sekunden        alle 4.62 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.047924041748