Guest User

Untitled

a guest
Jan 18th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. #include "Arduino.h"
  2.  
  3. void initVariant() __attribute__((weak));
  4. void initVariant() { }
  5.  
  6. const int PIN_TEMP_COLLIBRATION = A3;
  7. const int PIN_TEMP_HEATER = A5;
  8.  
  9. const int PIN_PWM_HEATER = 11;
  10.  
  11. unsigned int CF_TEMP_SETTED = 200;
  12. unsigned int CF_PWM_AMPLITUDE = 255;
  13.  
  14. int getTemperatureHeater();
  15. void customPrintLn(String type, int message);
  16.  
  17. unsigned char encoder_CLK;
  18. unsigned char encoder_DT;
  19. unsigned char encoder_CLK_ = 0;
  20.  
  21. // Interrupts 6 priority
  22. ISR(PCINT2_vect)
  23. {
  24. encoder_CLK = digitalRead(4);
  25. encoder_DT = digitalRead(5);
  26. if((!encoder_CLK) && (encoder_CLK_))
  27. {
  28. if(encoder_DT){ if(CF_TEMP_SETTED >= 50) CF_TEMP_SETTED -= 5; }
  29. else { if(CF_TEMP_SETTED <= 390) CF_TEMP_SETTED += 5; }
  30. customPrintLn("TEMP_SETTED", CF_TEMP_SETTED);
  31. }
  32. encoder_CLK_ = encoder_CLK;
  33. }
  34.  
  35. int main(void)
  36. {
  37. init();
  38. initVariant();
  39.  
  40. *digitalPinToPCMSK(4) |= bit(digitalPinToPCMSKbit(4));
  41. *digitalPinToPCMSK(5) |= bit(digitalPinToPCICRbit(5));
  42. PCIFR |= bit(digitalPinToPCICRbit(4)) | bit(digitalPinToPCICRbit(5));
  43. PCICR |= bit(digitalPinToPCICRbit(4)) | bit(digitalPinToPCICRbit(5));
  44.  
  45. Serial.begin(115200);
  46. do
  47. {
  48. if(getTemperatureHeater() < (int) CF_TEMP_SETTED)
  49. {
  50. if((CF_TEMP_SETTED - getTemperatureHeater()) < 16 && (CF_TEMP_SETTED - getTemperatureHeater()) > 6) CF_PWM_AMPLITUDE = 100;
  51. else if((CF_TEMP_SETTED - getTemperatureHeater()) < 8 && (CF_TEMP_SETTED - getTemperatureHeater()) > 4) CF_PWM_AMPLITUDE = 80;
  52. else if((CF_TEMP_SETTED - getTemperatureHeater()) < 4) CF_PWM_AMPLITUDE = 45;
  53. else CF_PWM_AMPLITUDE = 230;
  54. }
  55. else CF_PWM_AMPLITUDE = 0;
  56.  
  57. analogWrite(PIN_PWM_HEATER, CF_PWM_AMPLITUDE);
  58.  
  59. customPrintLn("TEMP", getTemperatureHeater());
  60. customPrintLn("TEMP_SETTED", CF_TEMP_SETTED);
  61. customPrintLn("PWM", CF_PWM_AMPLITUDE);
  62.  
  63. delay(500);
  64.  
  65. if(serialEventRun) serialEventRun();
  66. }
  67. while (true);
  68.  
  69. return 0;
  70. }
  71.  
  72. int getTemperatureHeater()
  73. {
  74. return map(((analogRead(PIN_TEMP_HEATER) + analogRead(PIN_TEMP_COLLIBRATION)) - 512), 0, 430, 25, 310);
  75. //надо бы сюда еще constrain() накинуть
  76. }
  77.  
  78. void customPrintLn(String type, int message)
  79. {
  80. Serial.print("$");
  81. Serial.print(type);
  82. Serial.print(": ");
  83. Serial.print(message);
  84. Serial.println(";");
  85. }
Add Comment
Please, Sign In to add comment