Zählen

Hallo. Ich bin absoluter afänger im bereich arduino und c programmierung. Mein Projekt:
Arduino Nano.
A2 =digital in
D5 =pwm out
Vin = +9v
Gnd= -
Die pwm Spannung D5 sollte sich bei jedem 4. Impuls an A2 um 0.1v erhöen.
4.Impulse 0.1v
8. Impulse 0.2v
12. Impuls 0.3v
Usw.....
Bis 5 v
Wie kann ich das realisieren.
Mit der Hardware komme ich zurecht.
Nur die Programmierung macht Probleme.
Kann mir da bitte jemand weiter helfen?

Hi

Wie Du einen Pin abgefragt bekommst, ist Dir bekannt?
Wenn das Signal von einem mechanischem Taster kommt, wirst Du entprellen müssen, sonst 'siehst' Du das tasten mehrfach.
Ok, Du kannst den Taster einlesen und eine Variable dadurch hochzählen.
Nun musst Du nur beim Hochzählen diesen neuen Wert ausgeben.

Da der PWM-Wert nur bis 255 ansteigen kann, musst Du überprüfen, ob Du weiter hoch zählen darfst.

Die Beispiele in der IDE sollten Deine Teilprobleme eigentlich abdecken - schaue Da Mal rein.

MfG

Die pwm Spannung D5 sollte sich bei jedem 4. Impuls an A2 um 0.1v erhöen.

Das wird schon schwierig....

Wie stellst du dir die Erzeugung von 0.1V aus einer pulsierenden 5V Spannung vor.

Das mit dem entprellen bekomme ich hin.
Ich werde eine pull-down Wiederstand einbauen.
Dann beginnen meine Probleme. Bin eben nur Elektriker.
Vom programmieren hab ich keine Ahnung.

Gruß

Vom programmieren hab ich keine Ahnung.

Dann ist das jetzt die Gelegenheit für dich, das zu ändern.

Wiederstand ?
Widerstand !

Ich werde eine pull-down Wiederstand einbauen.

Wozu?

Pulldown ist zum entprellen des Tasters.

combie:
Das wird schon schwierig....

Wie stellst du dir die Erzeugung von 0.1V aus einer pulsierenden 5V Spannung vor.

0.1 Volt= 5,1
0,2 Volt=10,2

PWM ist keine Gleichspannung sondern eine gepulste 5V Spannung. Der Mittelwert der Spannung geht von 0V bis 5V in ca 20mV ( genau 19,608mV falls die 5V wirklich 5,000V sind) Schritten.

Grüße Uwe

Rudispiess:
Pulldown ist zum entprellen des Tasters.

NEIN.
Ein Pulldown macht daß der Eingng den Zustand des Tasters richtig erkennt.
Grüße Uwe

0.1 Volt= 5,1
0,2 Volt=10,2

verstehe ich nicht.
Bei 5V also 255,0V?

Grüße Uwe

verstehe ich nicht.

Ich verstehe 5/255 * 5V = 0,1V

Was sind das für Impulse die reinkommen?

Das sind Impulse von einem Taster.l die da rein kommen.

Hallo,

es gibt da sicher mehrere Ansätze hier mal meiner.

Du erkennst erst mal entprellt die Flanke von dem betätigten Taster. Dazu gibts mehrere Wege. Damit zählst du eine byteVariable von 0 bis 4. immer wenn sie bei 4 angekommen setzt du sie zurück auf 0 und erhöst eine zweite float Variabe um 12,75 solange die < 255 ist. Aus der float Variablen machst du eine int Variable die du dann mit analogWrite auf den pwm pin gibst.

der Umweg mit der float Variablen ist nötig da du 5V auf 50 Schritte aufteilen willst. 5V entspricht aber einem digitalen wert von 255. Also 255/50=12,75 = 5.1 je 0,1V.

dann must du dir noch überlegen was du vorhast wenn Du oben angekommen bist.

Heinz

Rudispiess:
0.1 Volt= 5,1
0,2 Volt=10,2

Bitte erklähre was das bedeuten soll.
Grüße Uwe

entprellen kannst du mit einem Widerstand nichts, der ob PullDown oder PullUp hilft nur einen definierten Zustand an einem offenen (Taster nicht geschlossen) Eingang zu erhalten, da brauchst Du mindestens ein RC Glied. Eleganter und sicherer geht das mit Software z.B. Debounce Lib. Und JEDER Taster/Schalter prellt mehr oder weniger, auch die von denen behauptet wird sie würden es nicht tun.

Gruß

Rainer

Rentner:
255/50=12,75

Entsorge mal deinen Taschenrechner. :wink:

Rudispiess:
Das sind Impulse von einem Taster.l die da rein kommen.

Gut, dann brauchst du keinen Interrupt nutzen. Nur Taster entprellen und Flanke erkennen. Ich denke etwas Recherche im Netz wird dich zu Beispielcodes bringen.

muekno:
Eleganter und sicherer geht das mit Software z.B. Debounce Lib.

Es reicht vollkommen, den Taster nur alle paar ms abzufragen. Eine Lib braucht's dafür nicht.

Mahimus:
Entsorge mal deinen Taschenrechner. :wink:

ups !!
gut das ich die Gleichung mit drangeschrieben hatte sonst hätte jeder gedacht es handelt ich um einen intergalagtischen Faktor . Wird geändert

danke Gruß Heinz

Im sketch schreibt man das

analogWrite (ledPin, 5.1); =0.1v
analogWrite (ledPin, 127); =2.5v
Usw bis
analogWrite(ledPin, 255) ; =5v