Go Down

Topic: Dividieren mit Kommernachstellen? (Read 2363 times) previous topic - next topic

bendoben

Guten Tag,
Ich bin noch recht neu im Thema Arduino und wollte fragen, warum mein Code nicht den Status durch 2,55 teilen kann.
Ich habe schon versucht die Zahlen im float oder double zu definieren, jedoch klappt auch nicht
Es wird nur der Status durch 2 genommen, da der Bildschirm 127 % anzeigt.
Vielleicht habt ihr eine Lösung: ;)

Code: [Select]
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

//Green
int brightnessG = 0;
int StatusG = 0;
int StatusG2 = 0;
int fadeGREEN = 5;
int ledPinG = 7;

//Rot
int brightness = 0;
int StatusR = 0;
int StatusR2 = 0;
int fadeROT = 1;
int ledPin = 6;  // LED connected to digital pin 9

void setup()  {
 lcd.begin(16, 2);  // Print a message to the LCD.
 Serial.begin(9600);          //  setup serial

 
}

void loop()  {


 // set the brightness of pin 9:
 analogWrite(ledPin, brightness);    
 analogWrite(ledPinG, brightnessG);
 
 // change the brightness for next time through the loop:
 brightness = brightness + fadeROT;
 StatusR = StatusR + fadeROT;
 StatusR2 = StatusR / 2,55;
 
 brightnessG = brightnessG + fadeGREEN;
 StatusG = StatusG + fadeGREEN;
 StatusG2 = StatusG / 2,55;

lcd.print("R");
lcd.print(" ");
lcd.print(StatusR2);
lcd.print("%");
lcd.print(" ");
lcd.print("G");
lcd.print(" ");
lcd.print(StatusG2);
lcd.print("%");
Serial.println(StatusR);
delay (40);
lcd.clear();
 

 // reverse the direction of the fading at the ends of the fade:
 if (brightness == 0 || brightness == 255) {
   fadeROT = -fadeROT ;
 }
  if (brightnessG == 0 || brightnessG == 255) {
   fadeGREEN = -fadeGREEN ;
 }    
 // wait for 30 milliseconds to see the dimming effect    
 delay(30);  

}


sth77

Vielleicht eine ganz triviale Sache: Statt "2,55" erst mal "2.55" probieren...
Mein verwaister Arduino-Blog: http://www.sth77.de/ - letzter Eintrag: Diamex-ISP in der irgendwann mal aktuellen Arduino-IDE 1.6.4

bendoben

jap, dass war das Problem.

Vielen Dank.

bendoben

Gibt es eine Möglichkeit die PWM höher als 255 laufen zu lassen?
Gruß Ben

sth77

Nein. Das ist eine 8Bit-PWM, 255 entspricht einer Duty-Cycle von 100%.
Mein verwaister Arduino-Blog: http://www.sth77.de/ - letzter Eintrag: Diamex-ISP in der irgendwann mal aktuellen Arduino-IDE 1.6.4

Joghurt

Alternativ könntest Du Deine fade-Summanden und die Status-Variablen als Kommazahlen definieren und den Fades einen Wert kleiner 1 zuweisen. Dann hättest Du auch mehr Schritte, bis das PWM-Maximum erreicht ist...

Go Up