Guten Tag! Ich bin mal wieder am Werk ;). Kann man in Bascom sozusagen ne IF->Then clause bilden bei der die Condition=1 ist wenn die geforderte Condition eine bestimmte Zeit erreicht hat? Also so irgendwie? -> If Pina.7 =1 for 100ms Then ... End If Ich hoffe ihr könnt mir helfen ;). Gruß Marvin
Hallo ; vieleicht hilft für deine Anwendung auch der Befehl debounce ! Gruß Peter
Aujaaaaa! Endlich funktioniert's mit dem Taster ;). Danke! Jezt ist mir aber noch was aufgefallen. Kann ich Portd.5 nicht als output und anschliesen als PWM-Port benutzen? Weil mein kleines Programm soll die LED für ca. 2 sec anhalten und dann langsam runterdimmen.. wills aber nicht. Könnt/est ihr/du mir da vielleicht (nochmal) helfen?? ;) Gruß Marvin
Hannes Lux schrieb: > Marvin, wie isst man einen Elefanten? > > ... Falschrum durch ein Fernglas gucken und dann runter damit.
Marvin K. schrieb: > Naja^^ Klein machen und kochen =P Richtig, in kleinen Stücken... Also zerlege Dein Problem in kleine Stücke, die Du dann separat "kochst". LED für eine bestimmte Zeit an und dabei dimmen erfordert mehrere Schritte. - PWM für LED einrichten - PWM langsam hochfahren (darin LED gemäß Tastgrad ein/aus schalten) - Einschaltdauer einhalten (Zeitverzögerung) - PWM langsam auf 0 herunterfahren (darin LED wieder gemäß Tastgrad ein/aus schalten) Wenn der MC in der Zwischenzeit nix Anderes tun soll, dann kann man die einzelnen Schritte gemütlich nacheinander ausführen, der MC ist dabei über 98% seiner Rechenzeit damit beschäftigt, CPU-Takte zu zählen... Sollte der Controller nebenher auch noch Tasten abfragen oder andere Dinge erledigen müssen, dann wird es Zeit für einen Timer-Interrupt, der als Zeitgeber die einzelnen (quasi nebeneinander ablaufenden) Jobs aufruft, von denen jeder Job immer nur einen Schritt macht und sich seinen Fortschritt in Zustandsvariablen merkt (Zustandsautomat, state-machine). ...
Jaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!! Ich habs geschafft!! Damit ihr mal seht wie umständlich ich es mache;
1 | $regfile = "m32def.dat" |
2 | $framesize = 32 |
3 | $swstack = 32 |
4 | $hwstack = 32 |
5 | $crystal = 1000000 |
6 | |
7 | Dim Hochdimmen As Byte |
8 | Dim Runterdimmen As Byte |
9 | Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 |
10 | Hochdimmen = 0 |
11 | Runterdimmen = 255 |
12 | |
13 | 'TASTER1 an PA7 |
14 | Taster1 Alias Pina.7 |
15 | Config Taster1 = Input |
16 | Porta.7 = 1 'PullUp-Widerstand einschalten |
17 | |
18 | |
19 | Do |
20 | Debounce Taster1 , 0 , On_taster1 , Sub |
21 | Loop |
22 | |
23 | End |
24 | |
25 | |
26 | On_taster1: |
27 | Do |
28 | Incr Hochdimmen |
29 | Compare1a = Hochdimmen |
30 | Waitms 2 |
31 | Loop Until Hochdimmen = 255 |
32 | Waitms 1000 |
33 | Do |
34 | Decr Runterdimmen |
35 | Compare1a = Runterdimmen |
36 | Waitms 10 |
37 | Loop Until Runterdimmen = 0 |
38 | |
39 | |
40 | Return |
Danke euch!! Gruß Marvin
Hmm schöner Code ;) werd ich mir mal genauer ansehen und vielleicht ein paar sachen ausbauen ;D. Wenn ich jetzt einen Motor ansteuern will gerade z.B. einen 12 Voplt Lüfter der bei 12V 0,33A zieht was bräuchte ich da fürn transistor? Würde da n BC337 gehen?
>Lüfter der bei 12V 0,33A zieht was bräuchte ich da fürn transistor? >Würde da n BC337 gehen? Der sollte gehen. Gruss Helmi
Marvin K. schrieb: > Wenn ich jetzt einen Motor ansteuern will gerade z.B. einen 12 Voplt > Lüfter der bei 12V 0,33A zieht was bräuchte ich da fürn transistor? > Würde da n BC337 gehen? Für einen echten DC-Motor mit 330mA würde der schon etwas knapp werden, da der Motor beim Anlaufen höheren Strom ziehen kann. Da sollte ein LL-HexFET (z.B. IRLU024N) die bessere Lösung sein. Stichwort Lüfter: PC-Lüfter sind keine klassischen DC-Motoren sondern BLDC-Motoren mit integrierter Elektronik. Sie sind daher für Drehzahlsteuerung per PWM (fast) ungeeignet. ...
Jop ich hab da shcon n paar sachen gelesen mit den Lüftern.. Wie wärs mit so nem kleinen Modellmotor der immer z.B. in so kleinen Windrädchen drin ist, geht da der BC337? Dann hab ich noch n Großer 120mm Lüfter. Der braucht bei 12V 1,3A ist aber pwm-steuerbar. Kann man Schrittmotoren eigendlich acuh pwm steuern oder macht man das in der Loop in der Jede Spule an/aus geschaltet wird mit den zwischenzeiten? Viele Worte.. :D Gruß Marvin
>Wie wärs mit so nem kleinen Modellmotor der immer z.B. in so kleinen >Windrädchen drin ist, geht da der BC337? Miss doch mal die Stromaufnahme sonst kann man dazu nichts sagen. Die Luefter mit Elektronikmotor haben auch einen Blockierschutz von daher duerfte die Stromaufnahme nicht allzu sehr steigen. Bei einem normalen Kollektormotor steigt der Strom im Blockierfall. >Kann man Schrittmotoren eigendlich acuh pwm steuern oder macht man das >in der Loop in der Jede Spule an/aus geschaltet wird mit den >zwischenzeiten? Ja kann man. Nennt sich dann Feinschrittbetrieb. So kannst du auch Zwischenpositionen erreichen durch unterschiedliche Stroeme in den Wicklungen. Gruss Helmi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.