Sowtware suche

OP (Firma: XxX) #3648250
Lesenswert?

Hallo
Ich wollte eine schaltung mit 5 Eingängen (r,g,b,master,strob)die 
Eingangsspannung reicht bis 5 volt. wenn ich zu Beispiel den master 
hochziehe ( 5 volt), dann soll der ausgang für die roten led per pwm 
einen takt haben der halt linear zur eingangspannung ist( also vom 
eingang r) ( 5 volt = 100% und 1 volt = 20%). Wenn ich den master kanal 
auf die hälfte stelle und r voll anmache sollen halt nur 50% rauskommen. 
Der 5 kanal ist der strobo der von 1-20 herz reichen soll. Kann mir jmd. 
Beim schaltplan und der software helfen. Analog wäre auch gut.

Danke für eure Bemühungen.
Niclas
(Firma: Schweigstill IT) Persönliche Seite #3648256
Lesenswert?

Glaubst Du ernsthaft, dass irgendjemand darauf Lust hat, Dein wirres 
Geschreibsel zu untersuchen, ob es irgendwelche verwertbaren 
Informationen enthält. Schließlich willst DU etwas von uns und nicht 
umgekehrt.

Also formuliere Deine Anfrage noch einmal in verständlichem Deutsch. Und 
strukturiere sie so, dass Dritte sie verstehen können.
Gast #3648269
Lesenswert?

Niclas Weber schrieb:
> wenn ich zu Beispiel den master
> hochziehe ( 5 volt), dann soll der ausgang für die roten led per pwm
> einen takt haben der halt linear zur eingangspannung ist( also vom
> eingang r) ( 5 volt = 100% und 1 volt = 20%). Wenn ich den master kanal
> auf die hälfte stelle und r voll anmache sollen halt nur 50% rauskommen.

Nenn es einfach "Multiplikation"
Gast #3648284
Lesenswert?

Hallo Niclas,
anbei ein Codebeispiel. Plattform wäre ein Arduino.

Gruß Zock.
1
// Eingänge defininieren
2
int inputStrob  = 2;     // Strob digital pin 2
3
int inputR = A0;
4
int inputG = A1;
5
int inputB = A2;
6
int inputMaster = A3;
7

8
// Ausgänge definieren
9
int ledPinR = 9;    // LED R digital pin 9
10
int ledPinG = 10;   // LED G digital pin 10
11
int ledPinB = 11;   // LED B digital pin 11
12

13
// Zwischenwerte
14
int outR;
15
int outG;
16
int outB;
17
int master;
18
int strob;
19

20
void setup()  {
21

22
  // Strob als Eingang
23
  pinMode(inputStrob, INPUT); 
24
}
25

26
void loop()  {
27

28
   // Master einlesen
29
   master = analogRead(inputMaster) / 4; 
30

31
   // 3 Farben einlesen und mit dem Master multiplizieren,
32
   // dann auf 0..255 skalieren
33
   outR = (analogRead(inputR) / 4 * master) / 256; 
34
   outG = (analogRead(inputG) / 4 * master) / 256; 
35
   outB = (analogRead(inputB) / 4 * master) / 256; 
36

37
   // Strob einlesen
38
   strob = digitalRead(inputStrob);
39

40
   // mit Strob die LEDs ein/ausschalten
41
   if (strob == LOW) {
42
      outR = 0;
43
      outG = 0;
44
      outB = 0;
45
   }
46

47
   // LEDs ansteuern
48
   analogWrite(ledPinR, outR); 
49
   analogWrite(ledPinG, outG); 
50
   analogWrite(ledPinB, outB); 
51

52
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren