INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
PWM Algorithmus aber wie?
06.10.2013, 17:14
Beitrag #1
PWM Algorithmus aber wie?
Hallo Ihr Experten da draussen Big Grin

Ich hätte da mal ein Problem. Zusammen mit meinem akuten Geldmangel wären das dann schon 2, aber das Eine kann man zumindest lösen... hoffe ich Idea

Nehmen wir an, ich möchte eine LED ansteuern und diese blinkt im vorgegebenen Takt 1 Sekunde an, dann eine Sekunde aus.

Nun möchte ich aber, wenn eine Taste gedrückt und gehalten wird, das sich der Puls
um den Wert 1 verlängert und zwar bei jedem Durchlauf (ich gehe davon aus das die Schlaufe ständig durchlaufen / abgefragt wird UND sich die Pause immer um der Wert 1 verkleinert.

Es verhält sich praktisch wie eine PWM, deren Puls / Pause-Verhältniss durch drücken einer Taste verändert werden kann.

Ich weiss, das iss jetzt ein bissel blöd ausgedrückt. Aber eventuell kann man ja durch weitere Kommunikation Details klären.

Als letztes wäre noch folgendes gut. Nehmen wir an durch betätigen des Tasters hätte der Puls nun eine Länge von 1,5 Sekunden (ich mach das mit dem delay Befehl als dann delay (1500) und die Pause hat dann logischer Weise einen Wert von delay (500) dann müssten diese Werte so eingestellt erhalten bleiben.

Also drücken der Taste Puls rauf, Pause runter. Loslassen der Taste, der eingestellte Wert bleibt erhalten.

Ich hab mal ein kleines Sketch geschrieben, komme aber nicht weiter.
Ich möchte nicht das der Eindruck entsteht ich suche jemanden der die Arbeit für mich macht, aber ich brauche echt Hilfe.

Hier mal der "Falsche Weg Sketch" und zwar nur den void loop Teil:
void loop()
{

val = digitalRead (pin38);
if (val == HIGH){
digitalWrite(LED, HIGH);
delay (1000); // + 1 hier bitte immer 1 dazu, Puls länger
digitalWrite(LED, LOW);
delay (1000); // - 1 hier 1 abziehen, Pause kleiner
}
else{
digitalWrite(LED, HIGH);
delay (1000); // gespeicherten Wert
digitalWrite(LED, LOW);
delay (1000); // gespeicherten Wert
}
}


Vielen Dank und bin für Tips echt dankbar, bin noch Anfänger... Angry

Gruß
Dirk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.10.2013, 16:26
Beitrag #2
RE: PWM Algorithmus aber wie?
Hallo, du Überspannungsableiter. Big Grin

Vergiss mal das delay, die schrecklichste aller Funktionen. Dann nimmst du am besten eine Boolvariable x und toggelst sie nach Zeit y ( x = !x ). y ist mit 1000 vorbesetzt und wird dann per Tastendruck in einem sinnvollen Takt inkrementiert oder dekrementiert. Thats all. Das kriegst du hin. Aber denke daran: du musst eine Bremse einbauen, sonst bist du schnell im Stundenbereich.

Gruß, Stefan . . . . . . //Wo mein Kölbchen dampft, da bin ich unverkrampft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.10.2013, 16:42
Beitrag #3
RE: PWM Algorithmus aber wie?
Hallo Stefan,

Zitat: Vergiss mal das delay, die schrecklichste aller Funktionen.

Ich sehe schon, ich muss noch ne Menge lernen. Ich lese mich mal ein die Boolvariable.

Früher, da gab es so einen Brotkasten... der hies C64 :-)
Wenn ich bedenke wie viele Stunden ich da in Basic programmiert habe und jetzt bekomme ich sowas nicht hin :-(((
Liegt das am Alter ???

Jedenfalls vielen Dank für den Tip, ich setze mich gleich mal am WE hin.

Gruß
Dirk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Can-Bus Shield ok, aber keine Daten Clubsport 38 1.546 01.09.2016 14:17
Letzter Beitrag: Clubsport
  DMX Signal mit Arduino empfangen, aber wie? mat21his 4 671 28.01.2016 16:20
Letzter Beitrag: ardu_arne
  Kein ASCII Table aber iwas mit HEX Wampo 4 557 05.11.2015 00:16
Letzter Beitrag: Wampo
  USBhost mit keyboard gefunden, funktioniert aber nicht wie's soll HaWe 0 546 05.08.2015 14:26
Letzter Beitrag: HaWe
  Kurzschluss verhindern, aber Strom nicht beeinflussen Cray-1 0 565 05.12.2014 17:53
Letzter Beitrag: Cray-1
  Switch Case, LEDs bleiben an, Bedingung aber falsch luto92 4 1.450 16.11.2014 16:52
Letzter Beitrag: luto92
  Algorithmus für Gaußsche Glockenkurve gesucht mops 3 943 29.09.2014 21:42
Letzter Beitrag: Thorsten Pferdekämper
  Arduino Bildschirm Programmieren (Aber wie) Julius386 2 1.813 29.04.2014 12:28
Letzter Beitrag: Julius386
  Mega 2560 + GPS Shield 3.1 - SD.init liefert false, funktioniert aber trotzdem Geminy 13 4.647 13.01.2014 21:48
Letzter Beitrag: Geminy
  Arduino Sketch für ENC28J60 vorhanden. Muss aber für W5100 Ethernet Shield.. :-( ElektroMatze 0 2.513 18.12.2013 16:35
Letzter Beitrag: ElektroMatze

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste