Ми встановили тобі комп'ютер в комп'ютер для того щоб ти міг кодити в Arduino IDE поки кодиш в Eclipse
Довелось розрулювати ситуацію коли ноутбуку поміняли материнську плату після чого кулер в ньому почав працювати постійно на максимальних оборотах.
Ноутбук досить специфічний дорогий тому прийшлось викручуватись як могли. Рішення попадає в розряд “мутінгу”
Цей безпредел було вирішено фіксити arduino (тому що дешева як борщ тай рука набита).
За годинку на столі зкрутився макет, намалювалась схемка
Принцип роботи:
1. За допомогою терморезистора вимірюємо температуру навколишнього середовища
2. Встановлюємо швидкість оборотів вентилятора за допомогою генератора імпульсів напряму в куллер (синій дріт)
Через день Олег зібрав ноут із встановленим жучком
Накидав скетч
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <PWM.h> int fan = 3; int32_t frequency = 25000; // desired frequency in Hertz byte state = 0; void setup() { InitTimersSafe(); bool success = SetPinFrequencySafe(fan, frequency); Serial.begin(9600); } void loop() { int temp = analogRead(A0); if (temp < 200) {temp = 200;}; if (temp > 400) {temp = 400;}; int fan_pwm = map(temp, 400, 200, 0, 255); pwmWrite(fan, fan_pwm); Serial.print(temp); Serial.print(" temp\t"); Serial.print(fan_pwm); Serial.print(" pwm\n"); state^=1; digitalWrite(13, state); delay(1000); } |
Для правильної роботи скетчу необхідно встановити частоту імпульсів в 25 кілогерц замість 16-ти мегагерц встановлених по замовчуванню (швидкість процесора)
як не дивно стандартного простого методу цього зробити немає =(
Але блін це ж ардуїнка і для кожного завдання є своя гамно-ліба ну на крайняк моцний костиль.
Arduino PWM Frequency Library v_05
знаю що текст трохи вузькоспеціалізований , але то таке тренування перед цікавішою статейкою про змащувач ланцюга