Advertisement
Guest User

Untitled

a guest
Sep 1st, 2017
5,593
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1.  
  2.  
  3. uint16_t fans[6][2]={
  4. {A5,11},
  5. {A4,10},
  6. {A3,9},
  7. {A2,6},
  8. {A1,5},
  9. {A0,3},
  10. };
  11.  
  12. double cor_fact[6]={0.15,0.15,0.20,0.20,0.15,0};
  13. double min_fan[6]={0.13,0.14,0.15,0.15,0.14,0.13};
  14.  
  15. void setup() {
  16. uint8_t i;
  17. for(i=0;i<6;i++){
  18. pinMode(fans[i][0], INPUT);
  19. pinMode(fans[i][1], OUTPUT);
  20. }
  21. Serial.begin(115200);
  22. Serial.println("HP fan proxy");
  23.  
  24. }
  25.  
  26.  
  27. void loop() {
  28. uint8_t i;
  29. uint16_t ana_in;
  30. double pwm,out;
  31. uint8_t pwm_out;
  32. for(i=0;i<6;i++){
  33. ana_in=analogRead(fans[i][0]);
  34. //5V=1023
  35. //3.3V=673
  36. //inverted PWM so 1-
  37. pwm = (double)(715-ana_in)/715;
  38. if((pwm>0.2)&&(pwm <0.5)){
  39. out = pwm-cor_fact[i];
  40. if (out<min_fan[i]) {
  41. out = min_fan[i];
  42. }
  43. } else {
  44. out = pwm;
  45. }
  46. pwm_out=255-out*255;
  47. analogWrite(fans[i][1],pwm_out);
  48. Serial.print(" Fan[");Serial.print(i);Serial.print("] iLO:");Serial.print(pwm*100);Serial.print("% Me:");Serial.print(out*100);Serial.print("% Diff:");Serial.print((pwm-out)*100);Serial.println("%");
  49. }
  50. Serial.println("---");
  51. delay(1000); // wait for a second
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement