Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2.  
  3. #define RX 3 // *** D3, Pin 2
  4. #define TX 4 // *** D4, Pin 3
  5. SoftwareSerial Serial(RX, TX);
  6.  
  7. int analogPin= A0;
  8. int raw= 0;
  9. int Vin= 5.0;
  10. float Vout= 0;
  11. float R1= 330;
  12. float R2= 0;
  13. float buffer= 0;
  14. //PWM code
  15. int fanpwm= 9; // Declare fanpwm to be attiny pb0-pin5
  16. int writeValue; // Use this variable for writing to fanpwm
  17. int rawtemp;
  18. //safety code
  19. int tempMax = 632; // the maximum temperature before power kill safty
  20. int safety = 13; // Main relay enable-disable Safety disable (currently TEST led)
  21.  
  22. void setup()
  23. {
  24. pinMode(fanpwm, OUTPUT); //set fanpwm to be an OUTPUT
  25. pinMode(safety, OUTPUT); //set safety control pin to be an output
  26. Serial.begin(9600);
  27. }
  28.  
  29. void loop ()
  30.  
  31. {
  32. raw= analogRead(analogPin);
  33. if(raw)
  34. {
  35. buffer= raw * Vin;
  36. Vout= (buffer)/1024.0;
  37. buffer= (Vin/Vout) -1;
  38. R2= R1 * buffer;
  39. writeValue = map(raw, 585, 615, 0, 255);
  40. writeValue = constrain(writeValue, 64, 255);
  41.  
  42. //safety code
  43. if(raw > tempMax) { // if temp is higher than tempMax
  44. digitalWrite(safety, LOW); // turn on safety (TURN off main relay and send Estop code)
  45. } else { // else turn on Relay (thumbs up all is good)
  46. digitalWrite(safety, HIGH);
  47. }
  48.  
  49. analogWrite(fanpwm, writeValue); //Write to the fanpwm control speed by temp
  50. Serial.print("raw = ");
  51. Serial.println(raw);
  52. Serial.print("Vout: ");
  53. Serial.println(Vout);
  54. Serial.print("R2: ");
  55. Serial.println(R2);
  56. Serial.print("writeValue = ");
  57. Serial.println(writeValue);
  58. delay(1000);
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement